Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f220e3a394 | |||
| 1d9348b701 | |||
| d96dff988e | |||
| 9966a33524 | |||
| 7fb0ee1659 | |||
| d15d0989a3 | |||
| 704c99e418 | |||
| 9ccc068333 | |||
| 6b0a6a268e | |||
| c7da930556 | |||
| e9e2eba9b5 | |||
| 423dcaf53e | |||
| a01086ff28 | |||
| 76e651cf19 | |||
| eaee50511a | |||
| d1832917bc | |||
| 277799088f | |||
| 0398fbdbd1 |
21
changelog.md
21
changelog.md
@@ -1,5 +1,26 @@
|
|||||||
# 13.0
|
# 13.0
|
||||||
|
|
||||||
|
## 13.0.37 - Le bonheur des zyglutes d'Illisys
|
||||||
|
|
||||||
|
- Corrections v14
|
||||||
|
- correction du problème liè à Foundry 14 qui peut empêcher d'utiliser les fenêtres de jets à cause de migrations mal effectuées
|
||||||
|
- Les bon moments sont affichés en tooltip sur le moral
|
||||||
|
- Les modifications de coeurs fonctionnent de nouveau
|
||||||
|
- Le refoulement est remis à zéro après avoir refoulé et reçu un souffle
|
||||||
|
|
||||||
|
## 13.0.36 - Les rêveries d'Illisys
|
||||||
|
|
||||||
|
- Corrections v14
|
||||||
|
- les attaques à distance n'empèchent plus la fenêtre d'attaque de s'ouvrir
|
||||||
|
- les commandes (/help, ...) fonctionnent en v14
|
||||||
|
- Les feuilles d'acteurs ne s'ouvrent plus lors d'un changement (par exemple en cas d'encaissement)
|
||||||
|
- Les jeux sont correctement affichés
|
||||||
|
- Ajout d'une gravité de blessure sur les encaissement d'entités
|
||||||
|
- Amélioration de champs numériques: ajout de min et max quand c'est utile
|
||||||
|
- correction pour cuisiner depuis l'équipement
|
||||||
|
- les boutons dans les listes d'équipement sont mieux affichés sans retour à la ligne
|
||||||
|
|
||||||
|
|
||||||
## 13.0.35 - Les travaux d'Illisys
|
## 13.0.35 - Les travaux d'Illisys
|
||||||
|
|
||||||
- Correction du recul contre une entité de cauchemar (qui utilise le rêve comme force)
|
- Correction du recul contre une entité de cauchemar (qui utilise le rêve comme force)
|
||||||
|
|||||||
@@ -1120,49 +1120,27 @@ body {
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .equipement-nom {
|
.system-foundryvtt-reve-de-dragon .equipement-nom {
|
||||||
flex-grow: 3;
|
flex-grow: 4;
|
||||||
|
flex-shrink: 2;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
justify-content: center;
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
display: ruby;
|
display: ruby;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .equipement-valeur {
|
.system-foundryvtt-reve-de-dragon .equipement-valeur {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
flex-grow: 1.5;
|
flex-grow: 1;
|
||||||
|
flex-shrink: 1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .equipement-detail {
|
.system-foundryvtt-reve-de-dragon .equipement-detail {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
align-items: center;
|
flex-shrink: 1;
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon span.equipement-detail-buttons {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 1.5;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
min-width: max-content;
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon .equipement-button {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 0.5;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon :is(.item-actions-controls, .equipement-actions) {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 1.2;
|
|
||||||
align-items: end;
|
|
||||||
justify-content: flex-end;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.system-foundryvtt-reve-de-dragon .liste-equipement :is(.equipement-actions, .item-actions-controls) {
|
|
||||||
flex-grow: 2;
|
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .blessure-control {
|
.system-foundryvtt-reve-de-dragon .blessure-control {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
@@ -1526,9 +1504,20 @@ body {
|
|||||||
.system-foundryvtt-reve-de-dragon .competence-list .item-controls.hidden-controls {
|
.system-foundryvtt-reve-de-dragon .competence-list .item-controls.hidden-controls {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
.system-foundryvtt-reve-de-dragon .competence-header .item-actions-controls {
|
||||||
|
flex-shrink: 2;
|
||||||
|
flex-grow: 2;
|
||||||
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .item-actions-controls,
|
.system-foundryvtt-reve-de-dragon .item-actions-controls,
|
||||||
.system-foundryvtt-reve-de-dragon .item-controls {
|
.system-foundryvtt-reve-de-dragon .item-controls {
|
||||||
vertical-align: super;
|
margin: 0;
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-shrink: 1;
|
||||||
|
align-items: end;
|
||||||
|
text-align: right;
|
||||||
|
min-width: max-content;
|
||||||
|
flex-basis: fit-content;
|
||||||
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
.system-foundryvtt-reve-de-dragon .item-actions-controls img,
|
.system-foundryvtt-reve-de-dragon .item-actions-controls img,
|
||||||
.system-foundryvtt-reve-de-dragon .item-controls img {
|
.system-foundryvtt-reve-de-dragon .item-controls img {
|
||||||
|
|||||||
@@ -393,49 +393,27 @@
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
.equipement-nom {
|
.equipement-nom {
|
||||||
flex-grow: 3;
|
flex-grow: 4;
|
||||||
|
flex-shrink: 2;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
justify-content: center;
|
|
||||||
text-align: left;
|
text-align: left;
|
||||||
display: ruby;
|
display: ruby;
|
||||||
}
|
}
|
||||||
.equipement-valeur {
|
.equipement-valeur {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
flex-grow: 1.5;
|
flex-grow: 1;
|
||||||
|
flex-shrink: 1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.equipement-detail {
|
.equipement-detail {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
align-items: center;
|
flex-shrink: 1;
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
span.equipement-detail-buttons {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 1.5;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
min-width: max-content;
|
||||||
}
|
|
||||||
.equipement-button {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 0.5;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
:is(.item-actions-controls, .equipement-actions) {
|
|
||||||
margin: 0;
|
|
||||||
flex-grow: 1.2;
|
|
||||||
align-items: end;
|
|
||||||
justify-content: flex-end;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.liste-equipement :is(.equipement-actions, .item-actions-controls) {
|
|
||||||
flex-grow: 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.blessure-control {
|
.blessure-control {
|
||||||
@@ -848,12 +826,20 @@
|
|||||||
.competence-list .item-controls.hidden-controls {
|
.competence-list .item-controls.hidden-controls {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
.competence-header .item-actions-controls{
|
||||||
|
flex-shrink: 2;
|
||||||
|
flex-grow: 2;
|
||||||
|
}
|
||||||
.item-actions-controls,
|
.item-actions-controls,
|
||||||
.item-controls {
|
.item-controls {
|
||||||
vertical-align: super;
|
margin: 0;
|
||||||
// a {
|
flex-grow: 1;
|
||||||
// }
|
flex-shrink: 1;
|
||||||
|
align-items: end;
|
||||||
|
text-align: right;
|
||||||
|
min-width: max-content;
|
||||||
|
flex-basis: fit-content;
|
||||||
|
vertical-align: baseline;
|
||||||
img {
|
img {
|
||||||
vertical-align: text-bottom;
|
vertical-align: text-bottom;
|
||||||
display: inline;
|
display: inline;
|
||||||
|
|||||||
218
module/actor.js
218
module/actor.js
@@ -256,7 +256,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
console.log('perte de rêve des enchantements', toUpdate)
|
console.log('perte de rêve des enchantements', toUpdate)
|
||||||
const messageUpdates = await Promise.all(
|
const messageUpdates = await Promise.all(
|
||||||
toUpdate.map(async it => await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-pertereve-enchantement-chateaudormant.hbs`, it)))
|
toUpdate.map(async it => await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-pertereve-enchantement-chateaudormant.hbs`, it)))
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: messageUpdates.reduce(Misc.joining('<br>'))
|
content: messageUpdates.reduce(Misc.joining('<br>'))
|
||||||
})
|
})
|
||||||
@@ -322,8 +322,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await this.setBonusPotionSoin(0);
|
await this.setBonusPotionSoin(0);
|
||||||
}
|
}
|
||||||
await this.resetInfoSommeil()
|
await this.resetInfoSommeil()
|
||||||
ChatMessage.create(message);
|
await ChatMessage.create(message)
|
||||||
setTimeout(() => this.sheet.render(), 20)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async _recuperationSante(message) {
|
async _recuperationSante(message) {
|
||||||
@@ -364,7 +363,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
const message = {
|
const message = {
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: ""
|
content: ""
|
||||||
};
|
}
|
||||||
|
|
||||||
await this._recuperationSante(message)
|
await this._recuperationSante(message)
|
||||||
await this._recupereMoralChateauDormant(message)
|
await this._recupereMoralChateauDormant(message)
|
||||||
@@ -375,12 +374,12 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await this.retourSust(message)
|
await this.retourSust(message)
|
||||||
await this.$perteReveEnchantementsChateauDormants()
|
await this.$perteReveEnchantementsChateauDormants()
|
||||||
await this.$suppressionLancementsSort()
|
await this.$suppressionLancementsSort()
|
||||||
await RdDCoeur.applyCoeurChateauDormant(this, message);
|
await RdDCoeur.applyCoeurChateauDormant(this, message)
|
||||||
if (message.content != "") {
|
if (message.content != "") {
|
||||||
message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`;
|
message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`
|
||||||
ChatMessage.create(message);
|
await ChatMessage.create(message)
|
||||||
}
|
}
|
||||||
await this.resetInfoSommeil();
|
await this.resetInfoSommeil()
|
||||||
}
|
}
|
||||||
|
|
||||||
async resetInfoSommeil() {
|
async resetInfoSommeil() {
|
||||||
@@ -536,37 +535,36 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!options.grisReve) {
|
if (!options.grisReve) {
|
||||||
ChatMessage.create(message);
|
await ChatMessage.create(message)
|
||||||
}
|
}
|
||||||
if (options.chateauDormant) {
|
if (options.chateauDormant) {
|
||||||
await this.$dormirChateauDormant();
|
await this.$dormirChateauDormant()
|
||||||
}
|
}
|
||||||
setTimeout(() => this.sheet.render(), 20)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async reveilReveDeDragon(message, heures) {
|
async reveilReveDeDragon(message, heures) {
|
||||||
const restant = Math.max(this.system.sommeil?.heures - heures, 0)
|
const restant = Math.max(this.system.sommeil?.heures - heures, 0)
|
||||||
if (restant > 0) {
|
if (restant > 0) {
|
||||||
await this.update({ 'system.sommeil': { heures: restant } });
|
await this.update({ 'system.sommeil': { heures: restant } })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async $dormirDesHeures(message, heures, options) {
|
async $dormirDesHeures(message, heures, options) {
|
||||||
const dormi = { heures: 0, etat: 'dort', jetsReve: [] };
|
const dormi = { heures: 0, etat: 'dort', jetsReve: [] };
|
||||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||||
await this.$recupererEthylisme(message);
|
await this.$recupererEthylisme(message)
|
||||||
if (options.grisReve) {
|
if (options.grisReve) {
|
||||||
await this.$recupererFatigue(message);
|
await this.$recupererFatigue(message)
|
||||||
}
|
}
|
||||||
else if (!this.system.sommeil?.insomnie) {
|
else if (!this.system.sommeil?.insomnie) {
|
||||||
await this.$recupererFatigue(message);
|
await this.$recupererFatigue(message)
|
||||||
await this.$jetRecuperationReve(dormi, message);
|
await this.$jetRecuperationReve(dormi, message)
|
||||||
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
||||||
await this.$jetRecuperationReve(dormi, message);
|
await this.$jetRecuperationReve(dormi, message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dormi;
|
return dormi
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -583,7 +581,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: `Pas de récupération de rêve (${reve} points ignorés)`
|
content: `Pas de récupération de rêve (${reve} points ignorés)`
|
||||||
})
|
})
|
||||||
@@ -891,7 +889,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await competence.update({ 'system.xp': toXp })
|
await competence.update({ 'system.xp': toXp })
|
||||||
await ExperienceLog.add(this, XP_TOPIC.XP, fromXp, toXp, competence.name, true)
|
await ExperienceLog.add(this, XP_TOPIC.XP, fromXp, toXp, competence.name, true)
|
||||||
if (toXp > fromXp) {
|
if (toXp > fromXp) {
|
||||||
RdDUtility.checkThanatosXP(competence)
|
await RdDUtility.checkThanatosXP(competence)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -907,7 +905,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await competence.update({ 'system.xp_sort': toXpSort })
|
await competence.update({ 'system.xp_sort': toXpSort })
|
||||||
await ExperienceLog.add(this, XP_TOPIC.XPSORT, fromXpSort, toXpSort, competence.name, true)
|
await ExperienceLog.add(this, XP_TOPIC.XPSORT, fromXpSort, toXpSort, competence.name, true)
|
||||||
if (toXpSort > fromXpSort) {
|
if (toXpSort > fromXpSort) {
|
||||||
RdDUtility.checkThanatosXP(competence)
|
await RdDUtility.checkThanatosXP(competence)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -972,7 +970,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async actionRefoulement(item) {
|
async actionRefoulement(item) {
|
||||||
const refoulement = item?.system.refoulement ?? 0;
|
const refoulement = item?.system.refoulement ?? 0
|
||||||
if (refoulement > 0) {
|
if (refoulement > 0) {
|
||||||
RdDConfirm.confirmer({
|
RdDConfirm.confirmer({
|
||||||
settingConfirmer: "confirmation-refouler",
|
settingConfirmer: "confirmation-refouler",
|
||||||
@@ -980,8 +978,8 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
title: 'Confirmer la refoulement',
|
title: 'Confirmer la refoulement',
|
||||||
buttonLabel: 'Refouler',
|
buttonLabel: 'Refouler',
|
||||||
onAction: async () => {
|
onAction: async () => {
|
||||||
await this.ajouterRefoulement(refoulement, `une queue ${item.name}`);
|
await this.ajouterRefoulement(refoulement, `une queue ${item.name}`)
|
||||||
await item.delete();
|
await item.delete()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -989,16 +987,18 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async ajouterRefoulement(value = 1, refouler) {
|
async ajouterRefoulement(value = 1, refouler) {
|
||||||
let refoulement = this.system.reve.refoulement.value + value
|
const refoulement = this.system.reve.refoulement.value + value
|
||||||
const roll = new Roll("1d20")
|
const roll = new Roll("1d20")
|
||||||
await roll.evaluate()
|
await roll.evaluate()
|
||||||
await roll.toMessage({ flavor: `${this.name} refoule ${refouler} pour ${value} points de refoulement (total: ${refoulement})` })
|
await roll.toMessage({ flavor: `${this.name} refoule ${refouler} pour ${value} points de refoulement (total: ${refoulement})` })
|
||||||
if (roll.total <= refoulement) {
|
if (roll.total <= refoulement) {
|
||||||
refoulement = 0
|
await this.update({ "system.reve.refoulement.value": 0 })
|
||||||
await this.ajouterSouffle({ chat: true })
|
await this.ajouterSouffle({ chat: true })
|
||||||
}
|
}
|
||||||
await this.update({ "system.reve.refoulement.value": refoulement })
|
else {
|
||||||
return roll;
|
await this.update({ "system.reve.refoulement.value": refoulement })
|
||||||
|
}
|
||||||
|
return roll
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -1007,7 +1007,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
//souffle.id = undefined; //TBC
|
//souffle.id = undefined; //TBC
|
||||||
await this.createEmbeddedDocuments('Item', [souffle])
|
await this.createEmbeddedDocuments('Item', [souffle])
|
||||||
if (options.chat) {
|
if (options.chat) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: this.name + " subit un Souffle de Dragon : " + souffle.name
|
content: this.name + " subit un Souffle de Dragon : " + souffle.name
|
||||||
})
|
})
|
||||||
@@ -1017,22 +1017,19 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async ajouterQueue(options = { chat: false }) {
|
async ajouterQueue(options = { chat: false }) {
|
||||||
let queue;
|
const thanatos = this.system.reve.reve.thanatosused;
|
||||||
if (this.system.reve.reve.thanatosused) {
|
const queue = (thanatos ? await RdDRollTables.getOmbre() : await RdDRollTables.getQueue())
|
||||||
queue = await RdDRollTables.getOmbre();
|
if (thanatos) {
|
||||||
await this.update({ "system.reve.reve.thanatosused": false })
|
await this.update({ "system.reve.reve.thanatosused": false })
|
||||||
}
|
}
|
||||||
else {
|
await this.createEmbeddedDocuments('Item', [queue])
|
||||||
queue = await RdDRollTables.getQueue();
|
|
||||||
}
|
|
||||||
await this.createEmbeddedDocuments('Item', [queue]);
|
|
||||||
if (options.chat) {
|
if (options.chat) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: this.name + " subit une Queue de Dragon : " + queue.name
|
content: this.name + " subit une Queue de Dragon : " + queue.name
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return queue;
|
return queue
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -1096,14 +1093,14 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async reinsertionAleatoire(raison, accessible = tmr => true) {
|
async reinsertionAleatoire(raison, accessible = tmr => true) {
|
||||||
const innaccessible = this.buildTMRInnaccessible();
|
const innaccessible = this.buildTMRInnaccessible()
|
||||||
let tmr = await TMRUtility.getTMRAleatoire(tmr => accessible(tmr) && !innaccessible.includes(tmr.coord));
|
let tmr = await TMRUtility.getTMRAleatoire(tmr => accessible(tmr) && !innaccessible.includes(tmr.coord))
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `${raison} : ré-insertion aléatoire.`,
|
content: `${raison} : ré-insertion aléatoire.`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
})
|
||||||
await this.forcerPositionTMRInconnue(tmr);
|
await this.forcerPositionTMRInconnue(tmr)
|
||||||
return tmr;
|
return tmr
|
||||||
}
|
}
|
||||||
|
|
||||||
async forcerPositionTMRInconnue(tmr) {
|
async forcerPositionTMRInconnue(tmr) {
|
||||||
@@ -1167,7 +1164,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
async jetEndurance(resteEndurance = undefined) {
|
async jetEndurance(resteEndurance = undefined) {
|
||||||
const result = super.jetEndurance(resteEndurance);
|
const result = super.jetEndurance(resteEndurance);
|
||||||
if (result.jetEndurance == 1) {
|
if (result.jetEndurance == 1) {
|
||||||
ChatMessage.create({ content: await this._gainXpConstitutionJetEndurance() });
|
await ChatMessage.create({ content: await this._gainXpConstitutionJetEndurance() })
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1188,7 +1185,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
const jetMoral = await this._jetDeMoral(situation, bonmoment)
|
const jetMoral = await this._jetDeMoral(situation, bonmoment)
|
||||||
const finMessage = (jetMoral.ajustement == 0 ? "Vous gardez votre moral" : jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral");
|
const finMessage = (jetMoral.ajustement == 0 ? "Vous gardez votre moral" : jetMoral.ajustement > 0 ? "Vous gagnez du moral" : "Vous perdez du moral");
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${SITUATION_MORAL[situation] ?? situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
content: `${finMessage} - jet ${jetMoral.succes ? "réussi" : "manqué"} en situation ${SITUATION_MORAL[situation] ?? situation} (${jetMoral.jet}/${jetMoral.difficulte}).`
|
||||||
})
|
})
|
||||||
@@ -1214,22 +1211,22 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async moralIncDec(ajustement, bonmoment = "") {
|
async moralIncDec(ajustement, bonmoment = "") {
|
||||||
let moral = parseInt(this.system.compteurs.moral.value)
|
const moral = parseInt(this.system.compteurs.moral.value);
|
||||||
if (ajustement != 0) {
|
if (ajustement != 0) {
|
||||||
if (ajustement > 0 && bonmoment != "" && bonmoment != undefined) {
|
|
||||||
await this.update({ 'system.compteurs.bonmoments': [...this.system.compteurs.bonmoments, bonmoment] })
|
|
||||||
}
|
|
||||||
const moralTheorique = moral + ajustement
|
const moralTheorique = moral + ajustement
|
||||||
if (moralTheorique > 3) { // exaltation
|
const newExaltation = parseInt(this.system.compteurs.exaltation.value) + Math.max(0, moralTheorique - 3)
|
||||||
const exaltation = parseInt(this.system.compteurs.exaltation.value) + moralTheorique - 3
|
const newDissolution = parseInt(this.system.compteurs.dissolution.value) + Math.max(0, - moralTheorique - 3)
|
||||||
await this.update({ 'system.compteurs.exaltation.value': exaltation })
|
const newMoral = Math.max(-3, Math.min(moralTheorique, 3))
|
||||||
|
const moralUpdates = {
|
||||||
|
'system.compteurs.exaltation.value': newExaltation,
|
||||||
|
'system.compteurs.dissolution.value': newDissolution,
|
||||||
|
'system.compteurs.moral.value': newMoral
|
||||||
}
|
}
|
||||||
if (moralTheorique < -3) { // dissolution
|
if (ajustement > 0 && bonmoment != "" && bonmoment != undefined && !this.system.compteurs.bonmoments.includes(bonmoment)) {
|
||||||
const dissolution = parseInt(this.system.compteurs.dissolution.value) - 3 - moralTheorique
|
moralUpdates['system.compteurs.bonmoments'] = [...this.system.compteurs.bonmoments, bonmoment]
|
||||||
await this.update({ 'system.compteurs.dissolution.value': dissolution })
|
|
||||||
}
|
}
|
||||||
moral = Math.max(-3, Math.min(moralTheorique, 3));
|
await this.update(moralUpdates)
|
||||||
await this.update({ 'system.compteurs.moral.value': moral })
|
return newMoral
|
||||||
}
|
}
|
||||||
return moral
|
return moral
|
||||||
}
|
}
|
||||||
@@ -1492,7 +1489,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
exaltation: exaltation
|
exaltation: exaltation
|
||||||
};
|
};
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-transformer-stress.hbs`, stressRollData)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-transformer-stress.hbs`, stressRollData)
|
||||||
});
|
});
|
||||||
@@ -1559,7 +1556,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
xp: carac.xp
|
xp: carac.xp
|
||||||
}
|
}
|
||||||
if (display) {
|
if (display) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-carac-xp.hbs`, checkXp)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-carac-xp.hbs`, checkXp)
|
||||||
});
|
});
|
||||||
@@ -1571,7 +1568,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async checkCompetenceXP(compName, newXP, display = true) {
|
async checkCompetenceXP(compName, newXP, display = true) {
|
||||||
return this.getCompetence(compName)?.checkCompetenceXP( newXP, display)
|
return this.getCompetence(compName)?.checkCompetenceXP(newXP, display)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -1594,7 +1591,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
ChatUtility.blindMessageToGM({ content: content })
|
ChatUtility.blindMessageToGM({ content: content })
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: content
|
content: content
|
||||||
});
|
});
|
||||||
@@ -1698,22 +1695,22 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
isMauvaiseRencontre() { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective'
|
async isMauvaiseRencontre() { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective'
|
||||||
let addMsg = "";
|
let addMsg = ""
|
||||||
let rencSpecial = EffetsDraconiques.mauvaiseRencontre(this);
|
let rencSpecial = EffetsDraconiques.mauvaiseRencontre(this)
|
||||||
if (rencSpecial) {
|
if (rencSpecial) {
|
||||||
if (rencSpecial.type != 'souffle') {
|
if (rencSpecial.type != 'souffle') {
|
||||||
this.deleteEmbeddedDocuments('Item', [rencSpecial.id]); // Suppression dans la liste des queues
|
await this.deleteEmbeddedDocuments('Item', [rencSpecial.id]) // Suppression dans la liste des queues
|
||||||
addMsg = " La queue a été supprimée de votre fiche automatiquement";
|
addMsg = " La queue a été supprimée de votre fiche automatiquement"
|
||||||
} else {
|
} else {
|
||||||
addMsg = " Vous devez gérer manuellement le décompte de mauvaises rencontres.";
|
addMsg = " Vous devez gérer manuellement le décompte de mauvaises rencontres."
|
||||||
}
|
}
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: "Vous êtes sous le coup d'une Mauvaise Rencontre en Persective." + addMsg,
|
content: "Vous êtes sous le coup d'une Mauvaise Rencontre en Persective." + addMsg,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
return rencSpecial;
|
return rencSpecial
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -1723,7 +1720,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: `Vous êtes sous le coup d'Inertie Draconique : vous perdrez ${countInertieDraconique + 1} cases de Fatigue par déplacement au lieu d'une.`,
|
content: `Vous êtes sous le coup d'Inertie Draconique : vous perdrez ${countInertieDraconique + 1} cases de Fatigue par déplacement au lieu d'une.`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
return countInertieDraconique + 1;
|
return countInertieDraconique + 1;
|
||||||
}
|
}
|
||||||
@@ -1731,11 +1728,11 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async checkSoufflePeage(tmr) {
|
async checkSoufflePeage(tmr) {
|
||||||
if ((tmr.type == 'pont' || tmr.type == 'cite') && EffetsDraconiques.isPeage(this)) {
|
if ((tmr.type == 'pont' || tmr.type == 'cite') && EffetsDraconiques.isPeage(this)) {
|
||||||
await this.reveActuelIncDec(-1);
|
await this.reveActuelIncDec(-1)
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: "Vous êtes sous le coup d'un Péage : l'entrée sur cette case vous a coûté 1 Point de Rêve (déduit automatiquement).",
|
content: "Vous êtes sous le coup d'un Péage : l'entrée sur cette case vous a coûté 1 Point de Rêve (déduit automatiquement).",
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1761,7 +1758,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
if (reveActuel > rollData.depenseReve) {
|
if (reveActuel > rollData.depenseReve) {
|
||||||
// Incrémenter/gére le bonus de case
|
// Incrémenter/gére le bonus de case
|
||||||
RdDItemSort.incrementBonusCase(this, selectedSort, rollData.tmr.coord)
|
await RdDItemSort.incrementBonusCase(this, selectedSort, rollData.tmr.coord)
|
||||||
|
|
||||||
if (rollData.isSortReserve) {
|
if (rollData.isSortReserve) {
|
||||||
await this.sortMisEnReserve(selectedSort, rollData.competence, rollData.tmr.coord, Number(selectedSort.system.ptreve_reel))
|
await this.sortMisEnReserve(selectedSort, rollData.competence, rollData.tmr.coord, Number(selectedSort.system.ptreve_reel))
|
||||||
@@ -1794,7 +1791,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await RdDRollResult.displayRollData(rollData, this, 'chat-resultat-sort.hbs')
|
await RdDRollResult.displayRollData(rollData, this, 'chat-resultat-sort.hbs')
|
||||||
|
|
||||||
if (reveActuel == 0) { // 0 points de reve
|
if (reveActuel == 0) { // 0 points de reve
|
||||||
ChatMessage.create({ content: this.name + " est réduit à 0 Points de Rêve, et tombe endormi !" })
|
await ChatMessage.create({ content: this.name + " est réduit à 0 Points de Rêve, et tombe endormi !" })
|
||||||
}
|
}
|
||||||
if (!rollData.isSortReserve || !rolled.isSuccess) {
|
if (!rollData.isSortReserve || !rolled.isSuccess) {
|
||||||
this.tmrApp?.close()
|
this.tmrApp?.close()
|
||||||
@@ -2157,7 +2154,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
async appelDestinee(onSuccess = () => { }, onEchec = () => { }) {
|
async appelDestinee(onSuccess = () => { }, onEchec = () => { }) {
|
||||||
let destinee = this.system.compteurs.destinee?.value ?? 0;
|
let destinee = this.system.compteurs.destinee?.value ?? 0;
|
||||||
if (destinee > 0) {
|
if (destinee > 0) {
|
||||||
ChatMessage.create({ content: `<span class="rdd-roll-part">${this.name} a fait appel à la Destinée !</span>` });
|
await ChatMessage.create({ content: `<span class="rdd-roll-part">${this.name} a fait appel à la Destinée !</span>` });
|
||||||
await this.update({ 'system.compteurs.destinee.value ': destinee - 1 })
|
await this.update({ 'system.compteurs.destinee.value ': destinee - 1 })
|
||||||
onSuccess()
|
onSuccess()
|
||||||
}
|
}
|
||||||
@@ -2192,10 +2189,10 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
if (this.checkDesirLancinant()) {
|
if (this.checkDesirLancinant()) {
|
||||||
// Cas de désir lancinant, pas d'expérience sur particulière
|
// Cas de désir lancinant, pas d'expérience sur particulière
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `Vous souffrez au moins d'un Désir Lancinant, vous ne pouvez pas gagner d'expérience sur une Particulière tant que le désir n'est pas assouvi`,
|
content: `Vous souffrez au moins d'un Désir Lancinant, vous ne pouvez pas gagner d'expérience sur une Particulière tant que le désir n'est pas assouvi`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
})
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2323,15 +2320,15 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
countMonteeLaborieuse() { // Return +1 par queue/ombre/souffle Montée Laborieuse présente
|
async countMonteeLaborieuse() { // Return +1 par queue/ombre/souffle Montée Laborieuse présente
|
||||||
let countMonteeLaborieuse = EffetsDraconiques.countMonteeLaborieuse(this);
|
let countMonteeLaborieuse = EffetsDraconiques.countMonteeLaborieuse(this);
|
||||||
if (countMonteeLaborieuse > 0) {
|
if (countMonteeLaborieuse > 0) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `Vous êtes sous le coup d'une Montée Laborieuse : vos montées en TMR coûtent ${countMonteeLaborieuse} Point de Rêve de plus.`,
|
content: `Vous êtes sous le coup d'une Montée Laborieuse : vos montées en TMR coûtent ${countMonteeLaborieuse} Point de Rêve de plus.`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return countMonteeLaborieuse;
|
return countMonteeLaborieuse
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -2374,9 +2371,9 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
async _doDisplayTMR(mode) {
|
async _doDisplayTMR(mode) {
|
||||||
let isRapide = mode == "rapide";
|
let isRapide = mode == "rapide";
|
||||||
if (mode != "visu") {
|
if (mode != "visu") {
|
||||||
let minReveValue = (isRapide && !EffetsDraconiques.isDeplacementAccelere(this) ? 3 : 2) + this.countMonteeLaborieuse();
|
let minReveValue = (isRapide && !EffetsDraconiques.isDeplacementAccelere(this) ? 3 : 2) + (await this.countMonteeLaborieuse())
|
||||||
if (this.getReveActuel() < minReveValue) {
|
if (this.getReveActuel() < minReveValue) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `Vous n'avez les ${minReveValue} Points de Reve nécessaires pour monter dans les Terres Médianes`,
|
content: `Vous n'avez les ${minReveValue} Points de Reve nécessaires pour monter dans les Terres Médianes`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
});
|
});
|
||||||
@@ -2418,15 +2415,16 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
if (!viewOnly) {
|
if (!viewOnly) {
|
||||||
await this.supprimerSignesDraconiques(it => it.system.ephemere && it.system.duree == '1 round', { render: false })
|
await this.supprimerSignesDraconiques(it => it.system.ephemere && it.system.duree == '1 round', { render: false })
|
||||||
await this.setEffect(STATUSES.StatusDemiReve, false)
|
await this.setEffect(STATUSES.StatusDemiReve, false)
|
||||||
ChatUtility.tellToUserAndGM(message)
|
await ChatUtility.tellToUserAndGM(message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async supprimerSignesDraconiques(filter = it => true, options = { render: true }) {
|
async supprimerSignesDraconiques(filter = it => true, options = { render: true }) {
|
||||||
const signes = this.itemTypes[ITEM_TYPES.signedraconique].filter(filter)
|
const ids = this.itemTypes[ITEM_TYPES.signedraconique].filter(filter)
|
||||||
if (signes.length > 0) {
|
.map(it => it.id)
|
||||||
this.deleteEmbeddedDocuments("Item", signes.map(item => item.id), options)
|
if (ids.length > 0) {
|
||||||
|
await this.deleteEmbeddedDocuments("Item", ids, options)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2464,9 +2462,9 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
verifierForceMin(item) {
|
async verifierForceMin(item) {
|
||||||
if (item.type == 'arme' && item.system.force > parseInt(this.system.carac.force.value)) {
|
if (item.type == 'arme' && item.system.force > parseInt(this.system.carac.force.value)) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `<strong>${this.name} s'est équipé(e) de l'arme ${item.name}, mais n'a pas une force suffisante pour l'utiliser normalement </strong>
|
content: `<strong>${this.name} s'est équipé(e) de l'arme ${item.name}, mais n'a pas une force suffisante pour l'utiliser normalement </strong>
|
||||||
(${item.system.force} nécessaire pour une Force de ${this.system.carac.force.value})`
|
(${item.system.force} nécessaire pour une Force de ${this.system.carac.force.value})`
|
||||||
});
|
});
|
||||||
@@ -2480,7 +2478,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await item.update({ "system.equipe": isEquipe })
|
await item.update({ "system.equipe": isEquipe })
|
||||||
this.computeEncTotal()
|
this.computeEncTotal()
|
||||||
if (isEquipe)
|
if (isEquipe)
|
||||||
this.verifierForceMin(item)
|
await this.verifierForceMin(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2742,25 +2740,25 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async consommerPotionSoin(potion) {
|
async consommerPotionSoin(potion) {
|
||||||
potion.alias = this.name;
|
potion.alias = this.name
|
||||||
potion.supprimer = true;
|
potion.supprimer = true
|
||||||
|
|
||||||
if (potion.system.magique) {
|
if (potion.system.magique) {
|
||||||
// Gestion de la résistance:
|
// Gestion de la résistance:
|
||||||
potion.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8);
|
potion.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8)
|
||||||
if (potion.rolled.isEchec) {
|
if (potion.rolled.isEchec) {
|
||||||
await this.reveActuelIncDec(-1);
|
await this.reveActuelIncDec(-1);
|
||||||
potion.guerisonData = await this.buildPotionGuerisonList(potion.system.puissance);
|
potion.guerisonData = await this.buildPotionGuerisonList(potion.system.puissance)
|
||||||
potion.guerisonMinutes = potion.guerisonData.pointsConsommes * 5;
|
potion.guerisonMinutes = potion.guerisonData.pointsConsommes * 5
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!potion.system.magique || potion.rolled.isSuccess) {
|
if (!potion.system.magique || potion.rolled.isSuccess) {
|
||||||
await this.setBonusPotionSoin(potion.system.herbebonus);
|
await this.setBonusPotionSoin(potion.system.herbebonus)
|
||||||
}
|
}
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-soin.hbs`, potion)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-soin.hbs`, potion)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async setBonusPotionSoin(bonus) {
|
async setBonusPotionSoin(bonus) {
|
||||||
@@ -2794,10 +2792,10 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
if (!potion.system.magique || potion.rolled.isSuccess) {
|
if (!potion.system.magique || potion.rolled.isSuccess) {
|
||||||
this.bonusRepos = potion.system.herbebonus;
|
this.bonusRepos = potion.system.herbebonus;
|
||||||
}
|
}
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-repos.hbs`, potion)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-repos.hbs`, potion)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -2819,7 +2817,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
await this.createEmbeddedDocuments('Item', [newPotion])
|
await this.createEmbeddedDocuments('Item', [newPotion])
|
||||||
await this.diminuerQuantiteObjet(herbeData._id, herbeData.nbBrins)
|
await this.diminuerQuantiteObjet(herbeData._id, herbeData.nbBrins)
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.hbs`, {
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.hbs`, {
|
||||||
alias: this.getAlias(),
|
alias: this.getAlias(),
|
||||||
@@ -2837,19 +2835,19 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async consommerPotionGenerique(potion) {
|
async consommerPotionGenerique(potion) {
|
||||||
potion.alias = this.name;
|
potion.alias = this.name
|
||||||
|
|
||||||
if (potion.system.magique) {
|
if (potion.system.magique) {
|
||||||
// Gestion de la résistance:
|
// Gestion de la résistance:
|
||||||
potion.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8);
|
potion.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8);
|
||||||
if (potion.rolled.isEchec) {
|
if (potion.rolled.isEchec) {
|
||||||
await this.reveActuelIncDec(-1);
|
await this.reveActuelIncDec(-1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-generique.hbs`, potion)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-generique.hbs`, potion)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -2912,7 +2910,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
let draconique = Draconique.all().find(it => it.match(item));
|
let draconique = Draconique.all().find(it => it.match(item));
|
||||||
if (draconique) {
|
if (draconique) {
|
||||||
await draconique.onActorCreateOwned(this, item)
|
await draconique.onActorCreateOwned(this, item)
|
||||||
this.notifyGestionTeteSouffleQueue(item, draconique.manualMessage());
|
await this.notifyGestionTeteSouffleQueue(item, draconique.manualMessage());
|
||||||
}
|
}
|
||||||
await this.setInfoSommeilInsomnie();
|
await this.setInfoSommeilInsomnie();
|
||||||
}
|
}
|
||||||
@@ -2968,8 +2966,8 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
notifyGestionTeteSouffleQueue(item, manualMessage = true) {
|
async notifyGestionTeteSouffleQueue(item, manualMessage = true) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: `${this.name} a reçu un/une ${item.type}: ${item.name}, qui ${manualMessage ? "n'est pas" : "est"} géré(e) automatiquement. ${manualMessage ? manualMessage : ''}`
|
content: `${this.name} a reçu un/une ${item.type}: ${item.name}, qui ${manualMessage ? "n'est pas" : "est"} géré(e) automatiquement. ${manualMessage ? manualMessage : ''}`
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -169,10 +169,11 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async finDeRoundSuppressionEffetsTermines(options) {
|
async finDeRoundSuppressionEffetsTermines(options) {
|
||||||
for (let effect of this.getEffects()) {
|
const effects = this.getEffects();
|
||||||
|
for (let effect of effects) {
|
||||||
if (effect.duration.type !== 'none' && (effect.duration.remaining <= 0 || options.terminer)) {
|
if (effect.duration.type !== 'none' && (effect.duration.remaining <= 0 || options.terminer)) {
|
||||||
await effect.delete();
|
await effect.delete()
|
||||||
ChatMessage.create({ content: `${this.getAlias()} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` });
|
await ChatMessage.create({ content: `${this.getAlias()} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -615,7 +616,7 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
|||||||
RdDPossessionV2.rollAttaquePossession(this)
|
RdDPossessionV2.rollAttaquePossession(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
verifierForceMin(item) { }
|
async verifierForceMin(item) { }
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async encaisser() { await RdDEncaisser.encaisser(this) }
|
async encaisser() { await RdDEncaisser.encaisser(this) }
|
||||||
@@ -675,10 +676,10 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
|||||||
if (!encaissement.hasPlayerOwner && encaissement.endurance != 0) {
|
if (!encaissement.hasPlayerOwner && encaissement.endurance != 0) {
|
||||||
encaissement = foundry.utils.duplicate(encaissement)
|
encaissement = foundry.utils.duplicate(encaissement)
|
||||||
encaissement.isGM = true
|
encaissement.isGM = true
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getGMs(),
|
whisper: ChatUtility.getGMs(),
|
||||||
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-resultat-encaissement.hbs', encaissement)
|
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-resultat-encaissement.hbs', encaissement)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export class RdDBaseActorSangSheet extends RdDBaseActorReveSheet {
|
|||||||
async jetEndurance() {
|
async jetEndurance() {
|
||||||
const endurance = this.actor.getEnduranceActuelle()
|
const endurance = this.actor.getEnduranceActuelle()
|
||||||
const result = await this.actor.jetEndurance(endurance);
|
const result = await this.actor.jetEndurance(endurance);
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `Jet d'Endurance : ${result.jetEndurance} / ${endurance}
|
content: `Jet d'Endurance : ${result.jetEndurance} / ${endurance}
|
||||||
<br>${this.actor.name} a ${result.sonne ? 'échoué' : 'réussi'} son Jet d'Endurance ${result.sonne ? 'et devient Sonné' : ''}`,
|
<br>${this.actor.name} a ${result.sonne ? 'échoué' : 'réussi'} son Jet d'Endurance ${result.sonne ? 'et devient Sonné' : ''}`,
|
||||||
whisper: ChatUtility.getOwners(this.actor)
|
whisper: ChatUtility.getOwners(this.actor)
|
||||||
|
|||||||
@@ -351,11 +351,10 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async jetDeVie() {
|
async jetDeVie() {
|
||||||
if (this.isDead()) {
|
if (this.isDead()) {
|
||||||
ChatMessage.create({
|
return await ChatMessage.create({
|
||||||
content: `Jet de Vie: ${this.getAlias()} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`,
|
content: `Jet de Vie: ${this.getAlias()} est déjà mort, ce n'est pas la peine d'en rajouter !!!!!`,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
})
|
})
|
||||||
return
|
|
||||||
}
|
}
|
||||||
const jetDeVie = await RdDDice.roll("1d20");
|
const jetDeVie = await RdDDice.roll("1d20");
|
||||||
const sConst = this.getSConst();
|
const sConst = this.getSConst();
|
||||||
@@ -380,7 +379,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
|
|||||||
else if (prochainJet > 0) {
|
else if (prochainJet > 0) {
|
||||||
msgText += `<br>Prochain jet de vie dans ${prochainJet} ${isCritique ? 'round' : 'minute'}${prochainJet > 1 ? 's' : ''} ${isCritique ? '(état critique)' : '(état grave)'}`
|
msgText += `<br>Prochain jet de vie dans ${prochainJet} ${isCritique ? 'round' : 'minute'}${prochainJet > 1 ? 's' : ''} ${isCritique ? '(état critique)' : '(état grave)'}`
|
||||||
}
|
}
|
||||||
ChatMessage.create({
|
return await ChatMessage.create({
|
||||||
content: msgText,
|
content: msgText,
|
||||||
whisper: ChatUtility.getOwners(this)
|
whisper: ChatUtility.getOwners(this)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
renderAfterDelay(currentCounter) {
|
renderAfterDelay(currentCounter) {
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
if (currentCounter == this.refreshDelayCounter) {
|
if (currentCounter == this.refreshDelayCounter) {
|
||||||
this.sheet?.render(true)
|
this.sheet?.render()
|
||||||
this.refreshDelayCounter = 0
|
this.refreshDelayCounter = 0
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -450,7 +450,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
msg = "Vous n'avez pas assez d'argent pour payer cette somme !";
|
msg = "Vous n'avez pas assez d'argent pour payer cette somme !";
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: msg
|
content: msg
|
||||||
})
|
})
|
||||||
@@ -494,7 +494,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
await Monnaie.optimiserFortune(this, sols + this.getFortune());
|
await Monnaie.optimiserFortune(this, sols + this.getFortune());
|
||||||
|
|
||||||
RdDAudio.PlayContextAudio("argent"); // Petit son
|
RdDAudio.PlayContextAudio("argent"); // Petit son
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
content: `Vous avez reçu <strong>${sols} Sols</strong> ${fromActor ? " de " + fromActor.name : ''}, qui ont été ajoutés à votre argent.`
|
content: `Vous avez reçu <strong>${sols} Sols</strong> ${fromActor ? " de " + fromActor.name : ''}, qui ont été ajoutés à votre argent.`
|
||||||
})
|
})
|
||||||
@@ -548,7 +548,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
}
|
}
|
||||||
const chatAchatItem = foundry.utils.duplicate(achat.vente);
|
const chatAchatItem = foundry.utils.duplicate(achat.vente);
|
||||||
chatAchatItem.quantiteTotal = quantite;
|
chatAchatItem.quantiteTotal = quantite;
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
user: achat.userId,
|
user: achat.userId,
|
||||||
speaker: { alias: (acheteur ?? vendeur).getAlias() },
|
speaker: { alias: (acheteur ?? vendeur).getAlias() },
|
||||||
whisper: ChatUtility.getOwners(this),
|
whisper: ChatUtility.getOwners(this),
|
||||||
@@ -893,7 +893,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
system: { description: this.system.description }
|
system: { description: this.system.description }
|
||||||
}
|
}
|
||||||
renderTemplate('systems/foundryvtt-reve-de-dragon/templates/post-actor.hbs', chatData)
|
renderTemplate('systems/foundryvtt-reve-de-dragon/templates/post-actor.hbs', chatData)
|
||||||
.then(html => ChatMessage.create(RdDUtility.chatDataSetup(html, modeOverride)));
|
.then(async html => await ChatMessage.create(RdDUtility.chatDataSetup(html, modeOverride)));
|
||||||
}
|
}
|
||||||
|
|
||||||
actionImpossible(action) {
|
actionImpossible(action) {
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ export class RdDEntite extends RdDBaseActorReve {
|
|||||||
if (this.isEntiteNonIncarnee()) {
|
if (this.isEntiteNonIncarnee()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
encaissement.isEntiteIncarnee = true
|
||||||
const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance);
|
const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance);
|
||||||
foundry.utils.mergeObject(encaissement, { resteEndurance: perteEndurance.newValue, endurance: perteEndurance.perte })
|
foundry.utils.mergeObject(encaissement, { resteEndurance: perteEndurance.newValue, endurance: perteEndurance.perte })
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export class RdDTextEditor {
|
|||||||
$(html).on("click", '.roll-text', async event => await RdDTextEditor.rollText(event))
|
$(html).on("click", '.roll-text', async event => await RdDTextEditor.rollText(event))
|
||||||
}
|
}
|
||||||
|
|
||||||
static async enrichHTML(text, object, options = {showlink:true}) {
|
static async enrichHTML(text, object, options = { showlink: true }) {
|
||||||
const context = {
|
const context = {
|
||||||
text,
|
text,
|
||||||
object,
|
object,
|
||||||
@@ -70,9 +70,7 @@ export class RdDTextEditor {
|
|||||||
options: { showLink: false }
|
options: { showLink: false }
|
||||||
},
|
},
|
||||||
param)
|
param)
|
||||||
ChatMessage.create({
|
await ChatMessage.create({ content: text })
|
||||||
content: text
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -116,20 +116,20 @@ export class ChatUtility {
|
|||||||
return messageData
|
return messageData
|
||||||
}
|
}
|
||||||
|
|
||||||
static tellToUser(message) {
|
static async tellToUser(message) {
|
||||||
ChatMessage.create({ content: message, user: game.user.id, whisper: [game.user.id] });
|
await ChatMessage.create({ content: message, user: game.user.id, whisper: [game.user.id] });
|
||||||
}
|
}
|
||||||
|
|
||||||
static tellToGM(message) {
|
static async tellToGM(message) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
user: game.user.id,
|
user: game.user.id,
|
||||||
content: message,
|
content: message,
|
||||||
whisper: ChatUtility.getGMs()
|
whisper: ChatUtility.getGMs()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static tellToUserAndGM(message) {
|
static async tellToUserAndGM(message) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
user: game.user.id,
|
user: game.user.id,
|
||||||
content: message,
|
content: message,
|
||||||
whisper: ChatUtility.getUserAndGMs()
|
whisper: ChatUtility.getUserAndGMs()
|
||||||
|
|||||||
@@ -71,28 +71,32 @@ export class RdDCoeur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async applyCoeurChateauDormant(actor, message) {
|
static async applyCoeurChateauDormant(actor, message) {
|
||||||
const newSuivants = foundry.utils.duplicate(actor.system.subacteurs.suivants)
|
|
||||||
let count = 0
|
let count = 0
|
||||||
newSuivants.forEach(async link => {
|
let ajustMoral = 0
|
||||||
const suivant = game.actors.get(link.id)
|
const newSuivants = actor.system.subacteurs.suivants.filter(link => game.actors.get(link.id) != undefined)
|
||||||
const prochainCoeur = link.prochainCoeur ?? 0;
|
.map(link => {
|
||||||
const coeurCourant = link.coeur ?? 0;
|
const suivant = game.actors.get(link.id)
|
||||||
const diff = prochainCoeur - coeurCourant
|
const prochainCoeur = link.prochainCoeur ?? 0
|
||||||
if (diff < 0) {
|
const coeurCourant = link.coeur ?? 0
|
||||||
await actor.moralIncDec(-4);
|
const diff = prochainCoeur - coeurCourant
|
||||||
link.coeur = Math.max(0, coeurCourant - 1)
|
if (diff < 0) {
|
||||||
link.prochainCoeur = link.coeur
|
ajustMoral -= 4
|
||||||
message.content += `<br>Votre cœur brisé pour ${suivant.name} vous fait perdre 4 points de moral, il vous reste ${link.coeur} points de Cœur.`
|
link.coeur = Math.max(0, coeurCourant - 1)
|
||||||
count++
|
link.prochainCoeur = link.coeur
|
||||||
}
|
message.content += `<br>Votre cœur brisé pour ${suivant.name} vous fait perdre 4 points de moral, il vous reste ${link.coeur} points de Cœur.`
|
||||||
else if (diff > 0) {
|
count++
|
||||||
link.coeur = Math.min(prochainCoeur, 4)
|
}
|
||||||
message.content += `<br>Votre cœur bat fort, vous avez maintenant ${link.coeur} points de Cœur pour ${suivant.name}.`
|
if (diff > 0) {
|
||||||
link.prochainCoeur = link.coeur
|
link.coeur = Math.min(prochainCoeur, 4)
|
||||||
count++
|
message.content += `<br>Votre cœur bat fort, vous avez maintenant ${link.coeur} points de Cœur pour ${suivant.name}.`
|
||||||
}
|
link.prochainCoeur = link.coeur
|
||||||
|
count++
|
||||||
|
}
|
||||||
|
return foundry.utils.duplicate(link)
|
||||||
|
})
|
||||||
|
if (ajustMoral != 0) {
|
||||||
|
await actor.moralIncDec(ajustMoral, 'Coeur')
|
||||||
}
|
}
|
||||||
)
|
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
await actor.update({ 'system.subacteurs.suivants': newSuivants });
|
await actor.update({ 'system.subacteurs.suivants': newSuivants });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export class Distance {
|
|||||||
static isVisible(token, defenderToken) {
|
static isVisible(token, defenderToken) {
|
||||||
// TODO: regarder les StatusEffect aveuglé?
|
// TODO: regarder les StatusEffect aveuglé?
|
||||||
if (Distance.$isToken(token) && Distance.$isToken(defenderToken)) {
|
if (Distance.$isToken(token) && Distance.$isToken(defenderToken)) {
|
||||||
return canvas.effects.visibility.testVisibility(defenderToken.getCenterPoint(), { object: token })
|
return canvas.visibility.testVisibility(defenderToken.getCenterPoint(), { object: token })
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { TMRUtility } from "./tmr-utility.js";
|
|||||||
export class DialogCreateSigneDraconique extends Dialog {
|
export class DialogCreateSigneDraconique extends Dialog {
|
||||||
|
|
||||||
static async createSigneForActors() {
|
static async createSigneForActors() {
|
||||||
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
|
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ ephemere: true });
|
||||||
let dialogData = {
|
let dialogData = {
|
||||||
signe: signe,
|
signe: signe,
|
||||||
tmrs: TMRUtility.buildSelectionTypesTMR(signe.system.typesTMR),
|
tmrs: TMRUtility.buildSelectionTypesTMR(signe.system.typesTMR),
|
||||||
@@ -38,23 +38,23 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async _onCreerSigneActeurs() {
|
async _onCreerSigneActeurs() {
|
||||||
await this.html.find("[name='signe.system.ephemere']").change();
|
await this.html.find("[name='signe.system.ephemere']").change()
|
||||||
await this.html.find(".signe-xp-sort").change();
|
await this.html.find(".signe-xp-sort").change()
|
||||||
this.validerSigne();
|
this.validerSigne()
|
||||||
this.dialogData.actors.filter(it => it.selected)
|
await Promise.all(this.dialogData.actors.filter(it => it.selected)
|
||||||
.map(it => game.actors.get(it.id))
|
.map(it => game.actors.get(it.id))
|
||||||
.forEach(actor => this._createSigneForActor(actor, this.dialogData.signe));
|
.map(async actor => await this._createSigneForActor(actor, this.dialogData.signe)))
|
||||||
}
|
}
|
||||||
|
|
||||||
async _createSigneForActor(actor, signe) {
|
async _createSigneForActor(actor, signe) {
|
||||||
actor.createEmbeddedDocuments("Item", [signe]);
|
await actor.createEmbeddedDocuments("Item", [signe]);
|
||||||
ChatMessage.create({
|
await ChatMessage.createChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(actor),
|
whisper: ChatUtility.getOwners(actor),
|
||||||
content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.hbs", {
|
content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.hbs", {
|
||||||
signe: signe,
|
signe: signe,
|
||||||
alias: actor.getAlias()
|
alias: actor.getAlias()
|
||||||
})
|
})
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
validerSigne() {
|
validerSigne() {
|
||||||
@@ -81,7 +81,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setSigneAleatoire() {
|
async setSigneAleatoire() {
|
||||||
const newSigne = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
|
const newSigne = await RdDItemSigneDraconique.randomSigneDraconique({ ephemere: true });
|
||||||
|
|
||||||
this.html.find("[name='signe.name']").val(newSigne.name);
|
this.html.find("[name='signe.name']").val(newSigne.name);
|
||||||
this.html.find("[name='signe.system.valeur.norm']").val(newSigne.system.valeur.norm);
|
this.html.find("[name='signe.system.valeur.norm']").val(newSigne.system.valeur.norm);
|
||||||
@@ -92,7 +92,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
this.html.find("[name='signe.system.ephemere']").prop("checked", newSigne.system.ephemere);
|
this.html.find("[name='signe.system.ephemere']").prop("checked", newSigne.system.ephemere);
|
||||||
this.dialogData.tmrs = TMRUtility.buildSelectionTypesTMR(newSigne.system.typesTMR);
|
this.dialogData.tmrs = TMRUtility.buildSelectionTypesTMR(newSigne.system.typesTMR);
|
||||||
this.dialogData.tmrs.forEach(t => {
|
this.dialogData.tmrs.forEach(t => {
|
||||||
this.html.find(`[data-tmr-name='${t.name}']`).prop( "checked", t.selected);
|
this.html.find(`[data-tmr-name='${t.name}']`).prop("checked", t.selected);
|
||||||
})
|
})
|
||||||
this.setEphemere(newSigne.system.ephemere);
|
this.setEphemere(newSigne.system.ephemere);
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
onSelectTmr(event) {
|
onSelectTmr(event) {
|
||||||
const tmrName = this.html.find(event.currentTarget)?.data("tmr-name");
|
const tmrName = this.html.find(event.currentTarget)?.data("tmr-name");
|
||||||
const onTmr = this.dialogData.tmrs.find(it => it.name == tmrName);
|
const onTmr = this.dialogData.tmrs.find(it => it.name == tmrName);
|
||||||
if (onTmr){
|
if (onTmr) {
|
||||||
onTmr.selected = event.currentTarget.checked;
|
onTmr.selected = event.currentTarget.checked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ export class RdDItemCompetence extends RdDItem {
|
|||||||
archetypeWarning: newNiv > this.system.niveau_archetype
|
archetypeWarning: newNiv > this.system.niveau_archetype
|
||||||
}
|
}
|
||||||
if (display) {
|
if (display) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this.actor),
|
whisper: ChatUtility.getOwners(this.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-competence-xp.hbs`, xpData)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-actor-competence-xp.hbs`, xpData)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -153,10 +153,10 @@ export class RdDItemSort extends RdDItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static incrementBonusCase(actor, sort, coord) {
|
static async incrementBonusCase(actor, sort, coord) {
|
||||||
let bonuscase = RdDItemSort.calculBonuscase(sort, coord)
|
let bonuscase = RdDItemSort.calculBonuscase(sort, coord)
|
||||||
|
|
||||||
actor.updateEmbeddedDocuments('Item', [{ _id: sort._id, 'system.bonuscase': bonuscase }]);
|
await actor.updateEmbeddedDocuments('Item', [{ _id: sort._id, 'system.bonuscase': bonuscase }]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -627,14 +627,14 @@ export class RdDItem extends Item {
|
|||||||
system: { description: this.system.description },
|
system: { description: this.system.description },
|
||||||
properties: this.getProprietes(),
|
properties: this.getProprietes(),
|
||||||
}
|
}
|
||||||
renderTemplate(this.getChatItemTemplate(), chatData).then(html => {
|
renderTemplate(this.getChatItemTemplate(), chatData).then(async html => {
|
||||||
let chatOptions = RdDUtility.chatDataSetup(html, modeOverride);
|
let chatOptions = RdDUtility.chatDataSetup(html, modeOverride);
|
||||||
ChatMessage.create(chatOptions)
|
await ChatMessage.create(chatOptions)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
getChatItemTemplate() {
|
getChatItemTemplate() {
|
||||||
return 'systems/foundryvtt-reve-de-dragon/templates/post-item.hbs';
|
return 'systems/foundryvtt-reve-de-dragon/templates/post-item.hbs'
|
||||||
}
|
}
|
||||||
|
|
||||||
static propertyIfDefined(name, val, condition = true) {
|
static propertyIfDefined(name, val, condition = true) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export class RdDItemArmure extends RdDItem {
|
|||||||
if (deterioration >= 10) {
|
if (deterioration >= 10) {
|
||||||
deterioration -= 10;
|
deterioration -= 10;
|
||||||
protection = this.calculProtectionDeterioree();
|
protection = this.calculProtectionDeterioree();
|
||||||
ChatMessage.create({ content: `Votre armure ${this.name} s'est détériorée, elle protège maintenant de ${protection}` });
|
await ChatMessage.create({ content: `Votre armure ${this.name} s'est détériorée, elle protège maintenant de ${protection}` });
|
||||||
}
|
}
|
||||||
await this.update({
|
await this.update({
|
||||||
'system.deterioration': deterioration,
|
'system.deterioration': deterioration,
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export class RdDItemBlessure extends RdDItem {
|
|||||||
}
|
}
|
||||||
await this.createBlessure(actor, gravite)
|
await this.createBlessure(actor, gravite)
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
//TODO: hbs
|
//TODO: hbs
|
||||||
content: `Blessure ${definition.label} appliquée à ${actor.name}<br>Perte d'endurance : ${lostEndurance} (${definition.endurance})<br>Perte de Vie : ${definition.vie}`,
|
content: `Blessure ${definition.label} appliquée à ${actor.name}<br>Perte d'endurance : ${lostEndurance} (${definition.endurance})<br>Perte de Vie : ${definition.vie}`,
|
||||||
whisper: ChatUtility.getOwners(actor)
|
whisper: ChatUtility.getOwners(actor)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export class RdDItemMaladie extends RdDItem {
|
|||||||
const souffrance = mal.system.identifie
|
const souffrance = mal.system.identifie
|
||||||
? `de ${mal.name}`
|
? `de ${mal.name}`
|
||||||
: `d'un mal inconnu`
|
: `d'un mal inconnu`
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(mal.actor),
|
whisper: ChatUtility.getOwners(mal.actor),
|
||||||
content: `${mal.actor.name} souffre ${souffrance} (${Misc.typeName('Item', mal.type)}): vérifiez que les effets ne se sont pas aggravés !`
|
content: `${mal.actor.name} souffre ${souffrance} (${Misc.typeName('Item', mal.type)}): vérifiez que les effets ne se sont pas aggravés !`
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ class _10_4_6_ServicesEnCommerces extends Migration {
|
|||||||
}
|
}
|
||||||
async transformInventaireCommerce(service) {
|
async transformInventaireCommerce(service) {
|
||||||
const serviceItems = (service.system.items ?? []);
|
const serviceItems = (service.system.items ?? []);
|
||||||
const commerceItems = await Promise.all(serviceItems.map(async (it) => { return await this.transformToItemBoutique(it); }));
|
const commerceItems = await Promise.all(serviceItems.map((it) => this.transformToItemBoutique(it)))
|
||||||
return commerceItems.concat(Monnaie.monnaiesStandard());
|
return commerceItems.concat(Monnaie.monnaiesStandard());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -434,7 +434,7 @@ class _10_7_0_MigrationBlessures extends Migration {
|
|||||||
'system.blessures.graves.liste': [],
|
'system.blessures.graves.liste': [],
|
||||||
'system.blessures.critiques.liste': []
|
'system.blessures.critiques.liste': []
|
||||||
})
|
})
|
||||||
}));
|
}))
|
||||||
}
|
}
|
||||||
creerBlessure(gravite, graviteTexte, blessure, timestamp) {
|
creerBlessure(gravite, graviteTexte, blessure, timestamp) {
|
||||||
const dateBlessure = timestamp.addJours(-blessure.jours);
|
const dateBlessure = timestamp.addJours(-blessure.jours);
|
||||||
@@ -786,6 +786,6 @@ export class Migrations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compareVersions(a, b) {
|
compareVersions(a, b) {
|
||||||
return isNewerVersion(a.version, b.version) ? 1 : isNewerVersion(b.version, a.version) ? -1 : 0;
|
return foundry.utils.isNewerVersion(a.version, b.version) ? 1 : foundry.utils.isNewerVersion(b.version, a.version) ? -1 : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ export class Misc {
|
|||||||
return text.charAt(0).toLowerCase() + text.slice(1);
|
return text.charAt(0).toLowerCase() + text.slice(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static stripHtml(html)
|
||||||
|
{
|
||||||
|
const tmp = document.createElement("DIV")
|
||||||
|
tmp.innerHTML = html
|
||||||
|
return tmp.textContent || tmp.innerText || ""
|
||||||
|
}
|
||||||
|
|
||||||
static toSignedString(number) {
|
static toSignedString(number) {
|
||||||
const value = parseInt(number)
|
const value = parseInt(number)
|
||||||
const isPositiveNumber = value != NaN && value > 0;
|
const isPositiveNumber = value != NaN && value > 0;
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ export class Apprecier {
|
|||||||
|
|
||||||
async rollMoral(moral = undefined) {
|
async rollMoral(moral = undefined) {
|
||||||
if (this.raisons.length > 0) {
|
if (this.raisons.length > 0) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this.actor),
|
whisper: ChatUtility.getOwners(this.actor),
|
||||||
content: 'Pas de jet de moral:' + Misc.concat(this.raisons.map(r => `<br> - ${r}`))
|
content: 'Pas de jet de moral:' + Misc.concat(this.raisons.map(r => `<br> - ${r}`))
|
||||||
})
|
})
|
||||||
@@ -176,7 +176,6 @@ export class Apprecier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
moral = moral ?? this.appreciation.moral
|
moral = moral ?? this.appreciation.moral
|
||||||
// TODO: jet de moral
|
|
||||||
await this.actor.jetDeMoral(moral, this.appreciation.bonmoment)
|
await this.actor.jetDeMoral(moral, this.appreciation.bonmoment)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,8 +199,8 @@ export class RdDCombatManager extends Combat {
|
|||||||
<div>
|
<div>
|
||||||
Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}.
|
Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}.
|
||||||
</div>`
|
</div>`
|
||||||
ChatMessage.create({ content: msg });
|
ChatMessage.create({ content: msg })
|
||||||
game.combat.setInitiative(combatant._id, initData.init);
|
game.combat.setInitiative(combatant._id, initData.init)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -610,7 +610,7 @@ export class RdDCombat {
|
|||||||
async proposerAjustementTirLancer(rollData) {
|
async proposerAjustementTirLancer(rollData) {
|
||||||
if (['tir', 'lancer'].includes(rollData.competence.system.categorie)) {
|
if (['tir', 'lancer'].includes(rollData.competence.system.categorie)) {
|
||||||
if (this.defender.isEntiteBlurette()) {
|
if (this.defender.isEntiteBlurette()) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: `<strong>La cible est une blurette, l'arme à distance sera perdue dans le blurêve`,
|
content: `<strong>La cible est une blurette, l'arme à distance sera perdue dans le blurêve`,
|
||||||
whisper: ChatUtility.getGMs()
|
whisper: ChatUtility.getGMs()
|
||||||
})
|
})
|
||||||
@@ -625,7 +625,7 @@ export class RdDCombat {
|
|||||||
},
|
},
|
||||||
Distance.ajustements(_token, defenderToken, { arme: rollData.arme, main: rollData.competence.system.categorie })
|
Distance.ajustements(_token, defenderToken, { arme: rollData.arme, main: rollData.competence.system.categorie })
|
||||||
)
|
)
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-info-distance.hbs', info),
|
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-info-distance.hbs', info),
|
||||||
whisper: ChatUtility.getGMs()
|
whisper: ChatUtility.getGMs()
|
||||||
})
|
})
|
||||||
@@ -756,7 +756,7 @@ export class RdDCombat {
|
|||||||
let rollData = this._prepareAttaque(competence, arme)
|
let rollData = this._prepareAttaque(competence, arme)
|
||||||
console.log("RdDCombat.attaque >>>", rollData)
|
console.log("RdDCombat.attaque >>>", rollData)
|
||||||
if (arme) {
|
if (arme) {
|
||||||
this.attacker.verifierForceMin(arme);
|
await this.attacker.verifierForceMin(arme);
|
||||||
}
|
}
|
||||||
await this.proposerAjustementTirLancer(rollData)
|
await this.proposerAjustementTirLancer(rollData)
|
||||||
|
|
||||||
|
|||||||
@@ -27,20 +27,8 @@ const rddRollNumeric = /^(\d+)\s*([\+\-]?\d+)?\s*(s)?/;
|
|||||||
export class RdDCommands {
|
export class RdDCommands {
|
||||||
|
|
||||||
static init() {
|
static init() {
|
||||||
const rddCommands = new RdDCommands();
|
game.system.rdd.commands = new RdDCommands()
|
||||||
game.system.rdd.commands = rddCommands;
|
Hooks.on("chatMessage", (chatLog, message, msg) => game.system.rdd.commands.onChatMessage(message, msg))
|
||||||
|
|
||||||
Hooks.on("chatMessage", (html, content, msg) => {
|
|
||||||
if (content[0] == '/') {
|
|
||||||
let regExp = /(\S+)/g;
|
|
||||||
let commands = content.match(regExp);
|
|
||||||
if (rddCommands.processChatCommand(commands, content, msg)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
@@ -216,6 +204,17 @@ export class RdDCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
onChatMessage(message, msg = {}) {
|
||||||
|
const content = Misc.stripHtml(message)
|
||||||
|
if (content[0] == '/') {
|
||||||
|
const commands = content.match(/(\S+)/g)
|
||||||
|
if (this.processChatCommand(commands, content, msg)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
/* Manage chat commands */
|
/* Manage chat commands */
|
||||||
processChatCommand(commandLine, content = '', msg = {}) {
|
processChatCommand(commandLine, content = '', msg = {}) {
|
||||||
@@ -368,7 +367,7 @@ export class RdDCommands {
|
|||||||
|
|
||||||
const carac = params[0];
|
const carac = params[0];
|
||||||
const competence = length > 1 ? '/' + Misc.join(params.slice(1, length), ' ') : ''
|
const competence = length > 1 ? '/' + Misc.join(params.slice(1, length), ' ') : ''
|
||||||
ChatMessage.create({ content: `@roll[${carac}${competence}/${diff}]` })
|
await ChatMessage.create({ content: `@roll[${carac}${competence}/${diff}]` })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export class RdDMeteo {
|
|||||||
meteo.nuage.description = RdDMeteo.nuage(meteo.nuage.force);
|
meteo.nuage.description = RdDMeteo.nuage(meteo.nuage.force);
|
||||||
meteo.pluie.description = RdDMeteo.pluie(meteo.pluie.force);
|
meteo.pluie.description = RdDMeteo.pluie(meteo.pluie.force);
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-resultat-meteo.hbs', meteo),
|
content: await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-resultat-meteo.hbs', meteo),
|
||||||
whisper: ChatUtility.getGMs()
|
whisper: ChatUtility.getGMs()
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
await PixiTMR.init()
|
await PixiTMR.init()
|
||||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.hbs', tmrData);
|
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.hbs', tmrData);
|
||||||
if (tmrData.mode != 'visu' && !game.user.isGM) {
|
if (tmrData.mode != 'visu' && !game.user.isGM) {
|
||||||
ChatMessage.create({ content: actor.name + " est monté dans les TMR en mode : " + tmrData.mode, whisper: ChatUtility.getGMs() });
|
await ChatMessage.create({ content: actor.name + " est monté dans les TMR en mode : " + tmrData.mode, whisper: ChatUtility.getGMs() });
|
||||||
}
|
}
|
||||||
return new RdDTMRDialog(html, actor, tmrData)
|
return new RdDTMRDialog(html, actor, tmrData)
|
||||||
}
|
}
|
||||||
@@ -138,7 +138,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
this.html.find('img.tmr-move').click(event => this.deplacementTMR(this.html.find(event.currentTarget)?.data('move')));
|
this.html.find('img.tmr-move').click(event => this.deplacementTMR(this.html.find(event.currentTarget)?.data('move')));
|
||||||
|
|
||||||
// Gestion du cout de montée en points de rêve
|
// Gestion du cout de montée en points de rêve
|
||||||
await this.actor.reveActuelIncDec(this.calculCoutMonteeTMR());
|
await this.actor.reveActuelIncDec(await this.calculCoutMonteeTMR());
|
||||||
this.cumulFatigue += this.fatigueParCase;
|
this.cumulFatigue += this.fatigueParCase;
|
||||||
|
|
||||||
// Le reste...
|
// Le reste...
|
||||||
@@ -305,8 +305,8 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
await this.$checkQuitterTMR();
|
await this.$checkQuitterTMR();
|
||||||
}
|
}
|
||||||
|
|
||||||
calculCoutMonteeTMR() {
|
async calculCoutMonteeTMR() {
|
||||||
return ((this.tmrdata.isRapide && !EffetsDraconiques.isDeplacementAccelere(this.actor)) ? -2 : -1) - this.actor.countMonteeLaborieuse();
|
return ((this.tmrdata.isRapide && !EffetsDraconiques.isDeplacementAccelere(this.actor)) ? -2 : -1) - (await this.actor.countMonteeLaborieuse())
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -501,7 +501,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
rencData.poesie = { extrait: result.poesie, reference: result.reference };
|
rencData.poesie = { extrait: result.poesie, reference: result.reference };
|
||||||
rencData.message = this.$formatMessageRencontre(rencData, result.message);
|
rencData.message = this.$formatMessageRencontre(rencData, result.message);
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this.actor),
|
whisper: ChatUtility.getOwners(this.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-rencontre-tmr.hbs`, rencData)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-rencontre-tmr.hbs`, rencData)
|
||||||
});
|
});
|
||||||
@@ -653,7 +653,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
this.restoreTMRAfterAction()
|
this.restoreTMRAfterAction()
|
||||||
if (myRoll == 7) {
|
if (myRoll == 7) {
|
||||||
ChatUtility.tellToUser(myRoll + ": Rencontre en " + coordTMR);
|
ChatUtility.tellToUser(myRoll + ": Rencontre en " + coordTMR);
|
||||||
return await game.system.rdd.rencontresTMR.getRencontreAleatoire(tmr, this.actor.isMauvaiseRencontre())
|
return await game.system.rdd.rencontresTMR.getRencontreAleatoire(tmr, await this.actor.isMauvaiseRencontre())
|
||||||
} else {
|
} else {
|
||||||
ChatUtility.tellToUser(myRoll + ": Pas de rencontre en " + coordTMR);
|
ChatUtility.tellToUser(myRoll + ": Pas de rencontre en " + coordTMR);
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -708,7 +708,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rollData.poesie = await Poetique.getExtrait();
|
rollData.poesie = await Poetique.getExtrait();
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this.actor),
|
whisper: ChatUtility.getOwners(this.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.hbs`, rollData)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.hbs`, rollData)
|
||||||
});
|
});
|
||||||
@@ -728,16 +728,16 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
isCaseHumide(tmr) {
|
isCaseHumide(tmr) {
|
||||||
if (!(TMRUtility.isCaseHumide(tmr) || this.isCaseHumideAdditionelle(tmr))) {
|
if (!(TMRUtility.isCaseHumide(tmr) || this.isCaseHumideAdditionelle(tmr))) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
if (this.isCaseMaitrisee(tmr.coord)) {
|
if (this.isCaseMaitrisee(tmr.coord)) {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: tmr.label + ": cette case humide est déja maitrisée grâce à votre Tête <strong>Quête des Eaux</strong>",
|
content: tmr.label + ": cette case humide est déja maitrisée grâce à votre Tête <strong>Quête des Eaux</strong>",
|
||||||
whisper: ChatUtility.getOwners(this.actor)
|
whisper: ChatUtility.getOwners(this.actor)
|
||||||
});
|
})
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -747,16 +747,16 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
content: tmr.label + ": Vous êtes sous le coup d'une Impraticabilité des Ponts : ce pont doit être maîtrisé comme une case humide.",
|
content: tmr.label + ": Vous êtes sous le coup d'une Impraticabilité des Ponts : ce pont doit être maîtrisé comme une case humide.",
|
||||||
whisper: ChatUtility.getOwners(this.actor)
|
whisper: ChatUtility.getOwners(this.actor)
|
||||||
});
|
});
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
if (this.isCaseInondee(tmr.coord)) {
|
if (this.isCaseInondee(tmr.coord)) {
|
||||||
ChatMessage.create({
|
ChatMessage.create({
|
||||||
content: tmr.label + ": cette case est inondée, elle doit être maîtrisée comme une case humide.",
|
content: tmr.label + ": cette case est inondée, elle doit être maîtrisée comme une case humide.",
|
||||||
whisper: ChatUtility.getOwners(this.actor)
|
whisper: ChatUtility.getOwners(this.actor)
|
||||||
});
|
});
|
||||||
return true;
|
return true
|
||||||
}
|
}
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -825,7 +825,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
rollData.souffle = await this.actor.ajouterSouffle({ chat: false })
|
rollData.souffle = await this.actor.ajouterSouffle({ chat: false })
|
||||||
}
|
}
|
||||||
rollData.poesie = await Poetique.getExtrait()
|
rollData.poesie = await Poetique.getExtrait()
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(this.actor),
|
whisper: ChatUtility.getOwners(this.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.hbs`, rollData)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-maitrise-tmr.hbs`, rollData)
|
||||||
})
|
})
|
||||||
@@ -876,7 +876,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
const reserveSecurite = EffetsDraconiques.isReserveEnSecurite(this.actor);
|
const reserveSecurite = EffetsDraconiques.isReserveEnSecurite(this.actor);
|
||||||
const reserveExtensible = this.isReserveExtensible(coord);
|
const reserveExtensible = this.isReserveExtensible(coord);
|
||||||
if (!EffetsDraconiques.isUrgenceDraconique(this.actor) && (reserveSecurite || reserveExtensible)) {
|
if (!EffetsDraconiques.isUrgenceDraconique(this.actor) && (reserveSecurite || reserveExtensible)) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-demande-declencher-sort.hbs`, {
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-demande-declencher-sort.hbs`, {
|
||||||
actor: this.actor,
|
actor: this.actor,
|
||||||
sorts: sorts,
|
sorts: sorts,
|
||||||
@@ -892,13 +892,13 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
lancerSortEnReserve(coord, sortId) {
|
async lancerSortEnReserve(coord, sortId) {
|
||||||
const sort = this.getSortsReserve(coord)
|
const sort = this.getSortsReserve(coord)
|
||||||
.find(it => it.id == sortId);
|
.find(it => it.id == sortId);
|
||||||
if (sort) {
|
if (sort) {
|
||||||
this.processSortReserve(sort);
|
await this.processSortReserve(sort);
|
||||||
} else {
|
} else {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
content: "Une erreur est survenue : impossible de récupérer le sort en réserve demandé.",
|
content: "Une erreur est survenue : impossible de récupérer le sort en réserve demandé.",
|
||||||
whisper: ChatUtility.getOwners(this.actor)
|
whisper: ChatUtility.getOwners(this.actor)
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -132,9 +132,9 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-derivee.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-derivee.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-creature.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-entitee.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-entitee.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-total.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/comp-creature.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/comp-creature.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/comp-possession.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/comp-possession.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/carac-total.hbs',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/competence.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/competence.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/competence-categorie.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/competence-categorie.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/xp-competences.hbs',
|
||||||
@@ -173,6 +173,7 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/liens-vehicules.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.hbs',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/actor/tooltip-bonmoments.hbs',
|
||||||
//Items
|
//Items
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete-script.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete-script.hbs',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete.hbs',
|
||||||
@@ -300,6 +301,7 @@ export class RdDUtility {
|
|||||||
Handlebars.registerHelper('grammar-un', str => Grammar.articleIndetermine(str));
|
Handlebars.registerHelper('grammar-un', str => Grammar.articleIndetermine(str));
|
||||||
Handlebars.registerHelper('grammar-accord', (genre, ...args) => Grammar.accord(genre, args));
|
Handlebars.registerHelper('grammar-accord', (genre, ...args) => Grammar.accord(genre, args));
|
||||||
Handlebars.registerHelper('json-stringify', object => JSON.stringify(object))
|
Handlebars.registerHelper('json-stringify', object => JSON.stringify(object))
|
||||||
|
Handlebars.registerHelper('escapeHtml', object => foundry.utils.escapeHTML(object))
|
||||||
|
|
||||||
// math
|
// math
|
||||||
Handlebars.registerHelper('math-sum', (...values) => values.slice(0, -1).reduce(Misc.sum(), 0))
|
Handlebars.registerHelper('math-sum', (...values) => values.slice(0, -1).reduce(Misc.sum(), 0))
|
||||||
@@ -680,7 +682,7 @@ export class RdDUtility {
|
|||||||
encaissement.dmg = dmg
|
encaissement.dmg = dmg
|
||||||
if (ReglesOptionnelles.isUsing('localisation-aleatoire')) {
|
if (ReglesOptionnelles.isUsing('localisation-aleatoire')) {
|
||||||
encaissement.dmg.loc = dmg.loc ?? await RdDUtility.getLocalisation(targetActor.type)
|
encaissement.dmg.loc = dmg.loc ?? await RdDUtility.getLocalisation(targetActor.type)
|
||||||
encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps;'
|
encaissement.dmg.loc.label = encaissement.dmg.loc.label ?? 'Corps'
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
encaissement.dmg.loc = { label: '' }
|
encaissement.dmg.loc = { label: '' }
|
||||||
@@ -689,9 +691,9 @@ export class RdDUtility {
|
|||||||
encaissement.armure = armure
|
encaissement.armure = armure
|
||||||
encaissement.penetration = dmg.penetration
|
encaissement.penetration = dmg.penetration
|
||||||
encaissement.total = jetTotal
|
encaissement.total = jetTotal
|
||||||
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20);
|
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20)
|
||||||
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20);
|
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20)
|
||||||
return encaissement;
|
return encaissement
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -750,12 +752,12 @@ export class RdDUtility {
|
|||||||
actor.tmrApp.positionnerDemiReve(coord);
|
actor.tmrApp.positionnerDemiReve(coord);
|
||||||
});
|
});
|
||||||
// Gestion spécifique des sorts en réserve multiples (ie têtes)
|
// Gestion spécifique des sorts en réserve multiples (ie têtes)
|
||||||
$(html).on("click", '.declencher-sort-reserve', event => {
|
$(html).on("click", '.declencher-sort-reserve', async event => {
|
||||||
let coord = event.currentTarget.attributes['data-tmr-coord'].value;
|
let coord = event.currentTarget.attributes['data-tmr-coord'].value;
|
||||||
let sortId = event.currentTarget.attributes['data-sort-id'].value;
|
let sortId = event.currentTarget.attributes['data-sort-id'].value;
|
||||||
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
||||||
let actor = game.actors.get(actorId);
|
let actor = game.actors.get(actorId);
|
||||||
actor.tmrApp.lancerSortEnReserve(coord, sortId);
|
await actor.tmrApp.lancerSortEnReserve(coord, sortId);
|
||||||
// TODO: supprimer le message?
|
// TODO: supprimer le message?
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -844,12 +846,12 @@ export class RdDUtility {
|
|||||||
return game.user.character;
|
return game.user.character;
|
||||||
}
|
}
|
||||||
if (msgPlayer != undefined) {
|
if (msgPlayer != undefined) {
|
||||||
msgPlayer += "<br>vous pouvez sélectionner un seul token lié à un personnage";
|
msgPlayer += "<br>vous pouvez sélectionner un seul token lié à un personnage"
|
||||||
msgPlayer += "<br>vous devez être connecté comme joueur avec un personnage sélectionné";
|
msgPlayer += "<br>vous devez être connecté comme joueur avec un personnage sélectionné";
|
||||||
ui.notifications.warn(msgPlayer);
|
ui.notifications.warn(msgPlayer);
|
||||||
ChatMessage.create({ content: msgPlayer, whisper: [game.user] });
|
ChatMessage.create({ content: msgPlayer, whisper: [game.user] })
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
static doWithSelectedActor(onSelected = () => { }, filter = actor => true) {
|
static doWithSelectedActor(onSelected = () => { }, filter = actor => true) {
|
||||||
@@ -942,9 +944,9 @@ export class RdDUtility {
|
|||||||
content: `<p>Etes vous certain de vouloir supprimer: ${item.name}?</p>`,
|
content: `<p>Etes vous certain de vouloir supprimer: ${item.name}?</p>`,
|
||||||
title: `Supprimer ${item.name}`,
|
title: `Supprimer ${item.name}`,
|
||||||
buttonLabel: "Supprimer",
|
buttonLabel: "Supprimer",
|
||||||
onAction: () => {
|
onAction: async () => {
|
||||||
console.log('Delete : ', itemId);
|
console.log('Delete : ', itemId);
|
||||||
actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
|
await actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (item.isConteneurNonVide()) {
|
if (item.isConteneurNonVide()) {
|
||||||
@@ -955,9 +957,9 @@ export class RdDUtility {
|
|||||||
'deleteall': {
|
'deleteall': {
|
||||||
icon: '<i class="fas fa-check"></i>',
|
icon: '<i class="fas fa-check"></i>',
|
||||||
label: "Supprimer conteneur et contenu",
|
label: "Supprimer conteneur et contenu",
|
||||||
callback: () => {
|
callback: async () => {
|
||||||
console.log("Delete : ", itemId);
|
console.log("Delete : ", itemId);
|
||||||
actor.deleteAllConteneur(itemId, { renderSheet: false });
|
await actor.deleteAllConteneur(itemId, { renderSheet: false });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -995,10 +997,10 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------- */
|
/*-------------------------------------------- */
|
||||||
static checkThanatosXP(item) {
|
static async checkThanatosXP(item) {
|
||||||
if (item.isCompetencePersonnage() && item.name.includes('Thanatos')) {
|
if (item.isCompetencePersonnage() && item.name.includes('Thanatos')) {
|
||||||
let message = "Vous avez mis des points d'Expérience en Thanatos !<br>Vous devez réduire manuellement d'un même montant d'XP une autre compétence Draconique.";
|
let message = "Vous avez mis des points d'Expérience en Thanatos !<br>Vous devez réduire manuellement d'un même montant d'XP une autre compétence Draconique.";
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getUserAndGMs(),
|
whisper: ChatUtility.getUserAndGMs(),
|
||||||
content: message
|
content: message
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Grammar } from "../grammar.js"
|
import { Grammar } from "../grammar.js"
|
||||||
|
import { CARACS } from "../rdd-carac.js"
|
||||||
import { ReglesOptionnelles } from "../settings/regles-optionnelles.js"
|
import { ReglesOptionnelles } from "../settings/regles-optionnelles.js"
|
||||||
import { ROLL_TYPE_SORT } from "./roll-constants.mjs"
|
import { ROLL_TYPE_SORT } from "./roll-constants.mjs"
|
||||||
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
|
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
|
||||||
@@ -20,7 +21,7 @@ export class RollPartAstrologique extends RollPartCheckbox {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isJetChance(rollData) {
|
isJetChance(rollData) {
|
||||||
return Grammar.includesLowerCaseNoAccent(rollData.current.carac.key, 'chance')
|
return Grammar.includesLowerCaseNoAccent(rollData.current.carac.key, CARACS.CHANCE)
|
||||||
}
|
}
|
||||||
|
|
||||||
$isUsingAstrologie() {
|
$isUsingAstrologie() {
|
||||||
|
|||||||
@@ -39,17 +39,17 @@ export class RollPartCuisine extends RollPartSelect {
|
|||||||
loadRefs(rollData) {
|
loadRefs(rollData) {
|
||||||
const refs = this.getRefs(rollData)
|
const refs = this.getRefs(rollData)
|
||||||
const actor = rollData.active.actor
|
const actor = rollData.active.actor
|
||||||
const cuisine = actor.getCompetence('Cuisine')
|
refs.cuisine = actor.getCompetence('Cuisine')
|
||||||
|
|
||||||
const recettes = actor.items
|
const recettes = actor.items
|
||||||
.filter(it => it.type == ITEM_TYPES.recettecuisine)
|
.filter(it => it.type == ITEM_TYPES.recettecuisine)
|
||||||
.map(it => RollPartCuisine.$extractPreparationRecette(cuisine, it))
|
.map(it => RollPartCuisine.$extractPreparationRecette(refs.cuisine, it))
|
||||||
|
|
||||||
const ingredientsBruts = actor.items
|
const ingredientsBruts = actor.items
|
||||||
.filter(it => it.getUtilisationCuisine() == 'brut')
|
.filter(it => it.getUtilisationCuisine() == 'brut')
|
||||||
.map(it => RollPartCuisine.$extractPreparationBrut(cuisine, it))
|
.map(it => RollPartCuisine.$extractPreparationBrut(refs.cuisine, it))
|
||||||
|
|
||||||
refs.preparations = [RollPartCuisine.$preparationBasique(cuisine), ...recettes, ...ingredientsBruts]
|
refs.preparations = [RollPartCuisine.$preparationBasique(refs.cuisine), ...recettes, ...ingredientsBruts]
|
||||||
if (refs.preparations.length > 0) {
|
if (refs.preparations.length > 0) {
|
||||||
this.$selectPreparation(rollData)
|
this.$selectPreparation(rollData)
|
||||||
this.$restoreSavedOptions(rollData)
|
this.$restoreSavedOptions(rollData)
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ export class RdDCalendrier extends Application {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async setNewTimestamp(newTimestamp) {
|
async setNewTimestamp(newTimestamp) {
|
||||||
const oldTimestamp = this.timestamp;
|
const oldTimestamp = this.timestamp;
|
||||||
await Promise.all(game.actors.map(async actor => await actor.onTimeChanging(oldTimestamp, newTimestamp)));
|
await Promise.all(game.actors.map(actor => actor.onTimeChanging(oldTimestamp, newTimestamp)))
|
||||||
RdDTimestamp.setWorldTime(newTimestamp);
|
RdDTimestamp.setWorldTime(newTimestamp);
|
||||||
if (oldTimestamp.indexDate + 1 == newTimestamp.indexDate && ReglesOptionnelles.isUsing("chateau-dormant-gardien")) {
|
if (oldTimestamp.indexDate + 1 == newTimestamp.indexDate && ReglesOptionnelles.isUsing("chateau-dormant-gardien")) {
|
||||||
await DialogChateauDormant.create();
|
await DialogChateauDormant.create();
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ export class EffetsRencontre {
|
|||||||
tete: context.rolled.isPart,
|
tete: context.rolled.isPart,
|
||||||
poesie: await Poetique.getExtrait()
|
poesie: await Poetique.getExtrait()
|
||||||
})
|
})
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(context.actor),
|
whisper: ChatUtility.getOwners(context.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.hbs`, context)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.hbs`, context)
|
||||||
});
|
});
|
||||||
@@ -118,7 +118,7 @@ export class EffetsRencontre {
|
|||||||
context.queues.push(await context.actor.ajouterQueue());
|
context.queues.push(await context.actor.ajouterQueue());
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(context.actor),
|
whisper: ChatUtility.getOwners(context.actor),
|
||||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.hbs`, context)
|
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.hbs`, context)
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -27,13 +27,13 @@ export class PresentCites extends Draconique {
|
|||||||
async _ajouterPresents(actor, tete) {
|
async _ajouterPresents(actor, tete) {
|
||||||
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||||
if (existants.length > 0) {
|
if (existants.length > 0) {
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(actor),
|
whisper: ChatUtility.getOwners(actor),
|
||||||
content: "Vous avez encore des présents dans des cités, vous devrez tirer une autre tête pour remplacer celle ci!"
|
content: "Vous avez encore des présents dans des cités, vous devrez tirer une autre tête pour remplacer celle ci!"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let cites = TMRUtility.filterTMR(it => it.type == 'cite');
|
let cites = TMRUtility.filterTMR(it => it.type == 'cite')
|
||||||
for (let tmr of cites) {
|
for (let tmr of cites) {
|
||||||
await this.createCaseTmr(actor, 'Présent', tmr, tete.id);
|
await this.createCaseTmr(actor, 'Présent', tmr, tete.id);
|
||||||
}
|
}
|
||||||
@@ -43,7 +43,7 @@ export class PresentCites extends Draconique {
|
|||||||
async choisirUnPresent(casetmr, onChoixPresent) {
|
async choisirUnPresent(casetmr, onChoixPresent) {
|
||||||
const presents = await game.system.rdd.rencontresTMR.getPresentsCite()
|
const presents = await game.system.rdd.rencontresTMR.getPresentsCite()
|
||||||
const buttons = {};
|
const buttons = {};
|
||||||
presents.forEach(r => buttons['present'+r.id] = { icon: '<i class="fas fa-check"></i>', label: r.name, callback: async () => onChoixPresent(r) });
|
presents.forEach(r => buttons['present' + r.id] = { icon: '<i class="fas fa-check"></i>', label: r.name, callback: async () => onChoixPresent(r) });
|
||||||
let dialog = new Dialog({
|
let dialog = new Dialog({
|
||||||
title: "Présent des cités",
|
title: "Présent des cités",
|
||||||
content: `La ${this.tmrLabel(casetmr)} vous offre un présent, faites votre choix`,
|
content: `La ${this.tmrLabel(casetmr)} vous offre un présent, faites votre choix`,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export class UrgenceDraconique extends Draconique {
|
|||||||
if (coordSortsReserve.length == 0) {
|
if (coordSortsReserve.length == 0) {
|
||||||
// La queue se transforme en idée fixe
|
// La queue se transforme en idée fixe
|
||||||
const ideeFixe = await RdDRollTables.getIdeeFixe();
|
const ideeFixe = await RdDRollTables.getIdeeFixe();
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(actor),
|
whisper: ChatUtility.getOwners(actor),
|
||||||
content: `En l'absence de sorts en réserve, l'urgence draconique de ${actor.name} se transforme en ${ideeFixe.name}`
|
content: `En l'absence de sorts en réserve, l'urgence draconique de ${actor.name} se transforme en ${ideeFixe.name}`
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ export class DialogFatigueVoyage extends Dialog {
|
|||||||
.filter(it => it.selected)
|
.filter(it => it.selected)
|
||||||
.forEach(async it => {
|
.forEach(async it => {
|
||||||
const perteFatigue = fatigueBase + it.ajustement
|
const perteFatigue = fatigueBase + it.ajustement
|
||||||
ChatMessage.create({
|
await ChatMessage.create({
|
||||||
whisper: ChatUtility.getOwners(it.actor),
|
whisper: ChatUtility.getOwners(it.actor),
|
||||||
content: await renderTemplate(
|
content: await renderTemplate(
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/voyage/chat-fatigue_voyage.hbs',
|
'systems/foundryvtt-reve-de-dragon/templates/voyage/chat-fatigue_voyage.hbs',
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"id": "foundryvtt-reve-de-dragon",
|
"id": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"version": "13.0.21",
|
"version": "13.0.36",
|
||||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.0/rddsystem.zip",
|
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.36/rddsystem.zip",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.0/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.36/system.json",
|
||||||
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "13",
|
"minimum": "13",
|
||||||
|
|||||||
@@ -13,17 +13,17 @@
|
|||||||
<li data-attribute="resistance" class="flexrow">
|
<li data-attribute="resistance" class="flexrow">
|
||||||
<span class="carac-label">Résistance</span>
|
<span class="carac-label">Résistance</span>
|
||||||
<a class="resistance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="resistance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input type="text" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" data-dtype="Number" />
|
<input type="number" data-dtype="Number" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" min="0" max="{{system.etat.resistance.max}}"/>
|
||||||
/
|
/
|
||||||
<input type="text" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input type="number" data-dtype="Number" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" min="0" {{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
|
||||||
<a class="resistance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="resistance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</li>
|
</li>
|
||||||
<li data-attribute="structure" class="flexrow">
|
<li data-attribute="structure" class="flexrow">
|
||||||
<span class="carac-label">Structure</span>
|
<span class="carac-label">Structure</span>
|
||||||
<a class="structure-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="structure-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input type="text" name="system.etat.structure.value" value="{{system.etat.structure.value}}" data-dtype="Number" />
|
<input type="number" data-dtype="Number" name="system.etat.structure.value" value="{{system.etat.structure.value}}" min="0" max="{{system.etat.structure.max}}"/>
|
||||||
/
|
/
|
||||||
<input type="text" name="system.etat.structure.max" value="{{system.etat.structure.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input type="number" data-dtype="Number" name="system.etat.structure.max" value="{{system.etat.structure.max}}" min="0" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
<a class="structure-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="structure-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -61,23 +61,23 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<span class="carac-label">Vitesse</span>
|
<span class="carac-label">Vitesse</span>
|
||||||
<input class="caracteristique streched" type="text" name="system.vitesse" value="{{system.vitesse}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="caracteristique streched" type="text" data-dtype="String" name="system.vitesse" value="{{system.vitesse}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<span class="carac-label">Bonus rames</span>
|
<span class="carac-label">Bonus rames</span>
|
||||||
<input class="caracteristique streched" type="text" name="system.bonus" value="{{system.bonus}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="caracteristique streched" type="text" data-dtype="String" name="system.bonus" value="{{system.bonus}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<span class="carac-label">Manoeuvrabilité</span>
|
<span class="carac-label">Manoeuvrabilité</span>
|
||||||
<input class="caracteristique streched" type="text" name="system.manoeuvrabilite" value="{{system.manoeuvrabilite}}" data-dtype="String" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="caracteristique streched" type="text" data-dtype="String" name="system.manoeuvrabilite" value="{{system.manoeuvrabilite}}" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<span class="carac-label">Equipage</span>
|
<span class="carac-label">Equipage</span>
|
||||||
<input class="caracteristique streched" type="text" name="system.equipage" value="{{system.equipage}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="caracteristique streched" type="number" data-dtype="Number" name="system.equipage" value="{{system.equipage}}" min="0" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<span class="carac-label">Capacité d'Encombrement</span>
|
<span class="carac-label">Capacité d'Encombrement</span>
|
||||||
<input class="caracteristique streched" type="text" name="system.capacite_encombrement" value="{{system.capacite_encombrement}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input class="caracteristique streched" type="number" data-dtype="Number" name="system.capacite_encombrement" value="{{system.capacite_encombrement}}" min="0" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -16,10 +16,12 @@
|
|||||||
{{#if (or options.isGM (gt system.attributs.protection.value 0))}}
|
{{#if (or options.isGM (gt system.attributs.protection.value 0))}}
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label for="system.attributs.protection.value" >Protection naturelle</label>
|
<label for="system.attributs.protection.value" >Protection naturelle</label>
|
||||||
<input class="derivee-value" type="number" {{#unless options.isGM}}disabled{{/unless}} name="system.attributs.protection.value" value="{{system.attributs.protection.value}}" data-dtype="number"/>
|
<input name="system.attributs.protection.value" class="derivee-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.attributs.protection.value}}" min="0" max="20" {{#unless options.isGM}}disabled{{/unless}}
|
||||||
|
/>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<li class="caracteristique flexrow list-item" >
|
<li class="caracteristique flexrow list-item" >
|
||||||
<label class="derivee-label">Malus armure</label>
|
<label class="derivee-label">Malus armure</label>
|
||||||
<input class="derivee-value" type="number" disabled value="{{calc.malusArmure}}" data-dtype="number"/>
|
<input class="derivee-value" type="number" data-dtype="Number" disabled value="{{calc.malusArmure}}" />
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
<li class="item item-blessure flexrow list-item blessure-active-{{lowercase system.label}}" data-item-id="{{id}}"
|
<li class="item item-blessure flexrow list-item blessure-active-{{lowercase system.label}}" data-item-id="{{id}}"
|
||||||
data-tooltip="Blessure {{system.label}}">
|
data-tooltip="Blessure {{system.label}}">
|
||||||
<span class="blessure-control">
|
<span class="blessure-control flexrow">
|
||||||
<img class="sheet-competence-img" src="{{img}}" />
|
<img class="sheet-competence-img" src="{{img}}" />
|
||||||
|
{{#if (gt system.gravite 0)}}
|
||||||
{{system.label}}
|
{{system.label}}
|
||||||
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
{{#if (gt system.gravite 6)}}
|
{{#if (gt system.gravite 6)}}
|
||||||
<span class="flexrow"></span>
|
<span class="flexrow"></span>
|
||||||
<span class="flexrow"></span>
|
<span class="flexrow"></span>
|
||||||
|
<span class="flexrow"></span>
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="flexrow">
|
<span class="flexrow">
|
||||||
<input type="checkbox" class="blessure-premierssoins-done" name="blessure.{{id}}.premierssoins.done" {{#if system.premierssoins.done}}checked{{/if}}/>
|
<input name="blessure.{{id}}.premierssoins.done" type="checkbox" class="blessure-premierssoins-done" {{#if system.premierssoins.done}}checked{{/if}}/>
|
||||||
{{#if system.premierssoins.done}}
|
{{#if system.premierssoins.done}}
|
||||||
{{#unless system.soinscomplets.done}}
|
{{#unless system.soinscomplets.done}}
|
||||||
<input type="text" class="blessure-premierssoins-bonus number-x2" name="blessure.{{id}}.premierssoins.bonus" data-dtype="number" value="{{system.premierssoins.bonus}}"/>
|
<input name="blessure.{{id}}.premierssoins.bonus" type="text" data-dtype="Number" class="blessure-premierssoins-bonus number-x2"
|
||||||
|
value="{{system.premierssoins.bonus}}" min="-6" max="2"/>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<label>{{system.premierssoins.tache}} / {{system.gravite}}</label>
|
<label>{{system.premierssoins.tache}} / {{system.gravite}}</label>
|
||||||
@@ -20,18 +24,22 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="flexrow">
|
<span class="flexrow">
|
||||||
{{#if system.premierssoins.done}}
|
{{#if system.premierssoins.done}}
|
||||||
<input type="checkbox" class="blessure-soinscomplets-done" name="blessure.{{id}}.system.soinscomplets.done" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
<input name="blessure.{{id}}.system.soinscomplets.done" type="checkbox" class="blessure-soinscomplets-done" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
||||||
{{#if system.soinscomplets.done}}
|
{{#if system.soinscomplets.done}}
|
||||||
<input type="text" class="blessure-soinscomplets-bonus number-x2" name="blessure.{{id}}.system.soinscomplets.bonus" data-dtype="number" value="{{system.soinscomplets.bonus}}"/>
|
<input name="blessure.{{id}}.system.soinscomplets.bonus" data-dtype="Number" type="text" class="blessure-soinscomplets-bonus number-x2"
|
||||||
{{/if}}
|
value="{{system.soinscomplets.bonus}}" min="0" max="3"/>
|
||||||
{{else}}
|
{{/if}}
|
||||||
<label>Difficulté {{system.difficulte}}</label>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
|
<span class="flexrow">
|
||||||
|
{{#unless system.soinscomplets.done}}{{system.difficulte}}{{/unless}}
|
||||||
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<span>
|
<span>
|
||||||
{{#if system.origine}}<span>Par {{system.origine}}</span>{{/if}}
|
{{#if system.origine}}<span>Par {{system.origine}}</span>{{/if}}
|
||||||
|
{{#if (regle-optionnelle 'localisation-aleatoire')}}
|
||||||
{{#if system.localisation}}<span>{{system.localisation}}</span>{{/if}}
|
{{#if system.localisation}}<span>{{system.localisation}}</span>{{/if}}
|
||||||
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -13,10 +13,14 @@
|
|||||||
|
|
||||||
<ul class="item-list alterne-list">
|
<ul class="item-list alterne-list">
|
||||||
<li class="competence-header flexrow" >
|
<li class="competence-header flexrow" >
|
||||||
<span></span>
|
<span>Soins</span>
|
||||||
<span>Premiers soins</span>
|
<span>premiers</span>
|
||||||
<span>Soins complets</span>
|
<span>complets</span>
|
||||||
|
<span>Diff</span>
|
||||||
|
<span>Source</span>
|
||||||
|
{{#if (regle-optionnelle 'localisation-aleatoire')}}
|
||||||
<span>Loc.</span>
|
<span>Loc.</span>
|
||||||
|
{{/if}}
|
||||||
<span>Actions</span>
|
<span>Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each blessures as |blessure|}}
|
{{#each blessures as |blessure|}}
|
||||||
|
|||||||
@@ -21,58 +21,58 @@
|
|||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label>{{system.compteurs.moral.label}}
|
<label data-tooltip-html="{{> "systems/foundryvtt-reve-de-dragon/templates/actor/tooltip-bonmoments.hbs"}}">{{system.compteurs.moral.label}}
|
||||||
<span>
|
<span>
|
||||||
<a class="flex-shrink moral-malheureux" data-tooltip="Jet de moral situation malheureuse"><i class="fa-regular fa-face-frown"></i></a>
|
<a class="flex-shrink moral-malheureux" data-tooltip="Jet de moral situation malheureuse"><i class="fa-regular fa-face-frown"></i></a>
|
||||||
<a class="flex-shrink moral-neutre" data-tooltip="Jet de moral situation neutre"><i class="fa-regular fa-face-meh"></i></a>
|
<a class="flex-shrink moral-neutre" data-tooltip="Jet de moral situation neutre"><i class="fa-regular fa-face-meh"></i></a>
|
||||||
<a class="flex-shrink moral-heureux" data-tooltip="Jet de moral situation heureuse"><i class="fa-regular fa-face-smile"></i></a>
|
<a class="flex-shrink moral-heureux" data-tooltip="Jet de moral situation heureuse"><i class="fa-regular fa-face-smile"></i></a>
|
||||||
</span>
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.moral.value" value="{{system.compteurs.moral.value}}" data-dtype="number"/>
|
<input name="system.compteurs.moral.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.moral.value}}" min="-3" max="3"/>
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label>{{system.compteurs.exaltation.label}}</label>
|
<label>{{system.compteurs.exaltation.label}}</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.exaltation.value" value="{{system.compteurs.exaltation.value}}" data-dtype="number"/>
|
<input name="system.compteurs.exaltation.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.exaltation.value}}" min="0"/>
|
||||||
<label>{{system.compteurs.dissolution.label}}</label>
|
<label>{{system.compteurs.dissolution.label}}</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.dissolution.value" value="{{system.compteurs.dissolution.value}}" data-dtype="number"/>
|
<input name="system.compteurs.dissolution.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.dissolution.value}}" min="0"/>
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label class="derivee-label chance-actuelle" data-tooltip="Jet de chance actuelle"><a class="roll-chance-actuelle">Chance actuelle</a></label>
|
<label class="derivee-label chance-actuelle" data-tooltip="Jet de chance actuelle"><a class="roll-chance-actuelle">Chance actuelle</a></label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.chance.value" value="{{system.compteurs.chance.value}}" data-dtype="number"/>
|
<input name="system.compteurs.chance.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.chance.value}}" />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label>Destinée</label>
|
<label>Destinée</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.destinee.value" value="{{system.compteurs.destinee.value}}" data-dtype="number"/>
|
<input name="system.compteurs.destinee.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.destinee.value}}" min="0" max="7"/>
|
||||||
<label>voyage</label>
|
<label>voyage</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.voyage.value" value="{{system.compteurs.voyage.value}}" data-dtype="number"/>
|
<input name="system.compteurs.voyage.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.voyage.value}}" min="0" max="10"/>
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label class="flexrow derivee-label">{{system.compteurs.stress.label}}
|
<label class="flexrow derivee-label">{{system.compteurs.stress.label}}
|
||||||
<a class="stress-test" data-tooltip="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
|
<a class="stress-test" data-tooltip="Transformer le stress"><i class="fa-regular fa-moon"></i></a>
|
||||||
</label>
|
</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.stress.value" value="{{system.compteurs.stress.value}}" data-dtype="number"/>
|
<input name="system.compteurs.stress.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.stress.value}}" min=""/>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
<li class="caracteristique flexrow list-item" data-tooltip="Niveau d'éthylisme">
|
||||||
|
<label for="system.compteurs.ethylisme.value">{{system.compteurs.ethylisme.label}}
|
||||||
|
{{#if system.compteurs.ethylisme.nb_doses}}({{system.compteurs.ethylisme.nb_doses}} doses){{/if}}
|
||||||
|
</label>
|
||||||
|
<select name="system.compteurs.ethylisme.value" class="derivee-value" data-dtype="Number">
|
||||||
|
{{selectOptions (RDD_CONFIG 'niveauEthylisme') selected=system.compteurs.ethylisme.value valueAttr="value" nameAttr="value" labelAttr="label"}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label>Sustentation</label>
|
<label>Sustentation</label>
|
||||||
<input class="derivee-value" type="number" disabled value="{{system.attributs.sust.value}}"/>
|
<input class="derivee-value" type="number" value="{{system.attributs.sust.value}}" disabled />
|
||||||
<label for="system.compteurs.sust.value">mangé</label>
|
<label for="system.compteurs.sust.value">mangé</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.sust.value" value="{{system.compteurs.sust.value}}" data-dtype="number"/>
|
<input name="system.compteurs.sust.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.sust.value}}" />
|
||||||
</li>
|
</li>
|
||||||
<li class="caracteristique flexrow list-item">
|
<li class="caracteristique flexrow list-item">
|
||||||
<label></label>
|
<label></label>
|
||||||
<label></label>
|
<label></label>
|
||||||
<label for="system.compteurs.eau.value">bu</label>
|
<label for="system.compteurs.eau.value">bu</label>
|
||||||
<input class="derivee-value" type="number" name="system.compteurs.eau.value" value="{{system.compteurs.eau.value}}" data-dtype="number"/>
|
<input name="system.compteurs.eau.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.eau.value}}" />
|
||||||
</li>
|
|
||||||
<li class="caracteristique flexrow list-item" data-tooltip="Niveau d'éthylisme">
|
|
||||||
<label for="system.compteurs.ethylisme.value">{{system.compteurs.ethylisme.label}}
|
|
||||||
{{#if system.compteurs.ethylisme.nb_doses}}({{system.compteurs.ethylisme.nb_doses}} doses){{/if}}
|
|
||||||
</label>
|
|
||||||
<select class="derivee-value" name="system.compteurs.ethylisme.value" data-dtype="Number">
|
|
||||||
{{selectOptions (RDD_CONFIG 'niveauEthylisme') selected=system.compteurs.ethylisme.value valueAttr="value" nameAttr="value" labelAttr="label"}}
|
|
||||||
</select>
|
|
||||||
</li>
|
</li>
|
||||||
<br>
|
<br>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
<li class="caracteristique flexrow list-item {{#if carac.isLevelUp}}xp-level-up{{/if}}" data-attribute="{{key}}">
|
<li class="caracteristique flexrow list-item {{#if carac.isLevelUp}}xp-level-up{{/if}}" data-attribute="{{key}}">
|
||||||
{{#if (eq key 'taille')}}
|
{{#if (eq key 'taille')}}
|
||||||
<span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span>
|
<span class="carac-label" name="system.carac.{{key}}.label">{{carac.label}}</span>
|
||||||
<input class="carac-value" type="number" name="carac.{{key}}" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input name="carac.{{key}}" class="carac-value" type="number" data-dtype="Number"
|
||||||
|
value="{{carac.value}}" min="0" max="40"
|
||||||
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
<label class="carac-xp"/>
|
<label class="carac-xp"/>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#if (actor-default @root.type 'carac' key 'derivee')}}
|
{{#if (actor-default @root.type 'carac' key 'derivee')}}
|
||||||
@@ -23,9 +25,12 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input class="carac-value" type="number" name="carac.{{key}}" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
<input name="carac.{{key}}" class="carac-value" type="number" data-dtype="Number"
|
||||||
|
value="{{carac.value}}" min="0" max="40"
|
||||||
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||||
<span class="carac-xp">
|
<span class="carac-xp">
|
||||||
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number"
|
<input name="system.carac.{{key}}.xp" class="carac-xp" type="number" data-dtype="Number"
|
||||||
|
value="{{carac.xp}}" min="0" max="300"
|
||||||
data-tooltip="Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter votre {{carac.label}}"
|
data-tooltip="Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter votre {{carac.label}}"
|
||||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -22,9 +22,9 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<span>
|
<span>
|
||||||
<label for="system.pourcentage">Appliquer un pourcentage sur les prix</label>
|
<label for="system.pourcentage">Appliquer un pourcentage sur les prix</label>
|
||||||
<input {{@root.disabled}} class="attribute-value" type="number" data-dtype="Number"
|
<input name="system.pourcentage" class="attribute-value" type="number" data-dtype="Number"
|
||||||
name="system.pourcentage" value="{{system.pourcentage}}"
|
value="{{system.pourcentage}}" min="20" max="500" step="5"
|
||||||
min="20" max="500" step="5"/>
|
{{@root.disabled}} />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@@ -40,13 +40,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.hbs"}}
|
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.hbs"}}
|
||||||
{{log @root.options}}
|
|
||||||
{{#unless system.illimite}}
|
|
||||||
{{#if @root.options.isObserver}}
|
{{#if @root.options.isObserver}}
|
||||||
<hr>
|
<hr>
|
||||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.hbs"}}
|
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.hbs"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/unless}}
|
|
||||||
<br>
|
<br>
|
||||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.hbs"}}
|
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.hbs"}}
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{{#unless item.parent.system.illimite}}
|
{{#unless item.parent.system.illimite}}
|
||||||
<span class="equipement-detail-buttons flexrow">
|
<span class="equipement-detail">
|
||||||
{{#unless (or (eq item.type 'service') (and (eq item.type 'conteneur') (not vide)))}}
|
{{#unless (or (eq item.type 'service') (and (eq item.type 'conteneur') (not vide)))}}
|
||||||
{{#if options.isOwner}}
|
{{#if options.isOwner}}
|
||||||
<a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input {{#unless options.isOwner}}disabled{{/unless}} type="number" data-dtype="Number"
|
<input name="items[{{item._id}}].system.quantite"
|
||||||
class="item-quantite number-x3" name="items[{{item._id}}].system.quantite"
|
class="item-quantite number-x3" type="number" data-dtype="Number"
|
||||||
value="{{item.system.quantite}}" />
|
value="{{item.system.quantite}}" {{#unless options.isOwner}}disabled{{/unless}} />
|
||||||
{{#if options.isOwner}}
|
{{#if options.isOwner}}
|
||||||
<a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@@ -30,13 +30,10 @@
|
|||||||
{{/unless}}
|
{{/unless}}
|
||||||
<span class="equipement-detail">
|
<span class="equipement-detail">
|
||||||
{{#unless (and (eq item.type 'conteneur') (not vide))}}
|
{{#unless (and (eq item.type 'conteneur') (not vide))}}
|
||||||
<input {{#unless options.isOwner}}disabled{{/unless}} type="number" data-dtype="Number"
|
<input name="items[{{item._id}}].system.cout"
|
||||||
class="input-prix number-x3 item-cout" name="items[{{item._id}}].system.cout"
|
class="input-prix number-x3 item-cout" type="number" data-dtype="Number"
|
||||||
{{#if options.isObserver}}
|
value="{{numberFormat (ifThen options.isObserver item.system.cout (calculerPrixCommercant item)) decimals=2 sign=false}}"
|
||||||
value="{{numberFormat item.system.cout decimals=2 sign=false}}"
|
{{#unless options.isOwner}}disabled{{/unless}} />
|
||||||
{{else}}
|
|
||||||
value="{{numberFormat (calculerPrixCommercant item) decimals=2 sign=false}}"
|
|
||||||
{{/if}} />
|
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
</span>
|
</span>
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=item options=@root.options}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=item options=@root.options}}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<span class="equipement-detail">Quantité</span>
|
<span class="equipement-detail">Quantité</span>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
<span class="equipement-detail">Prix (sols)</span>
|
<span class="equipement-detail">Prix (sols)</span>
|
||||||
<span class="equipement-actions">Actions</span>
|
<span class="item-actions-controls">Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each (trier inventaires) as |item id|}}
|
{{#each (trier inventaires) as |item id|}}
|
||||||
{{#unless item.estContenu}}
|
{{#unless item.estContenu}}
|
||||||
|
|||||||
@@ -8,15 +8,14 @@
|
|||||||
<img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/>
|
<img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/>
|
||||||
<span>{{comp.name}}</span>
|
<span>{{comp.name}}</span>
|
||||||
</a>
|
</a>
|
||||||
<input class="competence-carac creature-carac" type="text" compname="{{comp.name}}" name="{{comp._id}}.carac"
|
<input name="{{comp._id}}.carac" class="competence-carac creature-carac" type="number" data-dtype="Number"
|
||||||
value="{{comp.system.carac_value}}" data-dtype="number"
|
compname="{{comp.name}}" value="{{comp.system.carac_value}}"
|
||||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
|
||||||
<input class="competence-value creature-niveau" type="text" data-dtype="number"
|
<input name="{{comp._id}}.niveau" class="competence-value creature-niveau" type="text" data-dtype="Number"
|
||||||
compname="{{comp.name}}" name="{{comp._id}}.niveau"
|
compname="{{comp.name}}" value="{{plusMoins comp.system.niveau}}"
|
||||||
value="{{plusMoins comp.system.niveau}}"
|
|
||||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
||||||
/>
|
/>
|
||||||
<input class="competence-damage creature-dommages" type="text" data-dtype="number"
|
<input class="competence-damage creature-dommages" type="text" data-dtype="Number"
|
||||||
{{#if comp.isdommages}}
|
{{#if comp.isdommages}}
|
||||||
compname="{{comp.name}}" name="{{comp._id}}.dommages"
|
compname="{{comp.name}}" name="{{comp._id}}.dommages"
|
||||||
value="{{plusMoins comp.system.dommages}}"
|
value="{{plusMoins comp.system.dommages}}"
|
||||||
|
|||||||
@@ -11,14 +11,14 @@
|
|||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<input class="competence-value" type="text" compname="{{name}}" name="comp-value-{{name}}"
|
<input name="comp-value-{{name}}" class="competence-value" type="text" data-dtype="Number"
|
||||||
value="{{plusMoins system.niveau}}" data-dtype="number"
|
compname="{{name}}" value="{{plusMoins system.niveau}}"
|
||||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||||
|
|
||||||
{{#if @root.options.vueDetaillee}}
|
{{#if @root.options.vueDetaillee}}
|
||||||
<span class="competence-xp">
|
<span class="competence-xp">
|
||||||
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
|
<input name="comp-xp-{{name}}" class="competence-xp" type="text" data-dtype="Number"
|
||||||
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"
|
compname="{{name}}" value="{{numberFormat system.xp decimals=0 sign=false}}"
|
||||||
{{#unless system.isLevelUp}}
|
{{#unless system.isLevelUp}}
|
||||||
data-tooltip="Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}"
|
data-tooltip="Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}"
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
@@ -26,8 +26,8 @@
|
|||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq system.categorie 'draconic')}}
|
{{#if (eq system.categorie 'draconic')}}
|
||||||
<input class="competence-xp-sort" type="text" compname="{{name}}" name="comp-xp-sort-{{name}}"
|
<input name="comp-xp-sort-{{name}}" class="competence-xp-sort" type="text" data-dtype="Number"
|
||||||
value="{{numberFormat system.xp_sort decimals=0 sign=false}}" data-dtype="number"
|
compname="{{name}}" value="{{numberFormat system.xp_sort decimals=0 sign=false}}"
|
||||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if @root.options.vueDetaillee}}
|
{{#if @root.options.vueDetaillee}}
|
||||||
@@ -40,8 +40,9 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
<i class="far fa-circle"></i>
|
<i class="far fa-circle"></i>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input class="competence-archetype niveau-archetype" type="text" compname="{{name}}" name="comp-archetype-{{name}}"
|
<input name="comp-archetype-{{name}}" class="competence-archetype niveau-archetype" type="text" data-dtype="Number"
|
||||||
value="{{plusMoins system.niveau_archetype}}" data-dtype="number" data-tooltip="Niveau d'archétype {{plusMoins system.niveau_archetype}}"
|
compname="{{name}}" value="{{plusMoins system.niveau_archetype}}"
|
||||||
|
data-tooltip="Niveau d'archétype {{plusMoins system.niveau_archetype}}"
|
||||||
{{#if (not @root.options.vueArchetype)}}disabled{{/if}} />
|
{{#if (not @root.options.vueArchetype)}}disabled{{/if}} />
|
||||||
</div>
|
</div>
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
<label class="compteur">
|
<label class="compteur">
|
||||||
<a class="jet-vie" name="system.sante.vie.label" data-tooltip="Faire un jet de vie">Vie</a>
|
<a class="jet-vie" name="system.sante.vie.label" data-tooltip="Faire un jet de vie">Vie</a>
|
||||||
<a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.vie.value" value="{{system.sante.vie.value}}" data-dtype="Number" />
|
<input name="system.sante.vie.value" class="resource-content" type="number" data-dtype="Number"
|
||||||
/ {{system.sante.vie.max}}
|
value="{{system.sante.vie.value}}" min="0" max="{{system.sante.vie.max}}" />
|
||||||
|
/ {{system.sante.vie.max}}
|
||||||
<a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
@@ -13,8 +14,9 @@
|
|||||||
<label class="compteur">
|
<label class="compteur">
|
||||||
<a class="jet-endurance" name="system.sante.endurance.label" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
|
<a class="jet-endurance" name="system.sante.endurance.label" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
|
||||||
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number"/>
|
<input name="system.sante.endurance.value" class="resource-content" type="number" data-dtype="Number"
|
||||||
/ {{system.sante.endurance.max}}
|
value="{{system.sante.endurance.value}}" min="0" max="{{system.sante.endurance.max}}" />
|
||||||
|
/ {{system.sante.endurance.max}}
|
||||||
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -2,11 +2,12 @@
|
|||||||
<div class="flex-group-center header-compteurs">
|
<div class="flex-group-center header-compteurs">
|
||||||
<ul>
|
<ul>
|
||||||
<li data-attribute="endurance">
|
<li data-attribute="endurance">
|
||||||
<label class="compteur">
|
<label class="compteur" for="system.sante.endurance.value">
|
||||||
Endurance
|
Endurance
|
||||||
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number" />
|
<input name="system.sante.endurance.value" class="resource-content" type="text" data-dtype="Number"
|
||||||
/ {{system.sante.endurance.max}}
|
value="{{system.sante.endurance.value}}" min="0" max="{{system.sante.endurance.max}}" />
|
||||||
|
/ {{system.sante.endurance.max}}
|
||||||
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
<a class="jet-vie" data-tooltip="Faire un jet de vie">Vie</a>
|
<a class="jet-vie" data-tooltip="Faire un jet de vie">Vie</a>
|
||||||
</label>
|
</label>
|
||||||
<a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="vie-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.vie.value" value="{{system.sante.vie.value}}" data-dtype="Number"/>
|
<input name="system.sante.vie.value" class="resource-content" type="number" data-dtype="Number"
|
||||||
|
value="{{system.sante.vie.value}}" min="-{{system.attributs.sconst.value}}" max="{{system.sante.vie.max}}"/>
|
||||||
<span>/ {{system.sante.vie.max}}</span>
|
<span>/ {{system.sante.vie.max}}</span>
|
||||||
<a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
@@ -17,7 +18,8 @@
|
|||||||
<a class="jet-endurance" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
|
<a class="jet-endurance" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
|
||||||
</label>
|
</label>
|
||||||
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="endurance-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.endurance.value" value="{{system.sante.endurance.value}}" data-dtype="Number"/>
|
<input name="system.sante.endurance.value" class="resource-content" type="number" data-dtype="Number"
|
||||||
|
value="{{system.sante.endurance.value}}" min="0" max="{{system.sante.endurance.max}}"/>
|
||||||
<span>/ {{system.sante.endurance.max}}</span>
|
<span>/ {{system.sante.endurance.max}}</span>
|
||||||
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,7 +29,8 @@
|
|||||||
<label for="system.sante.fatigue.value">Fatigue ({{calc.fatigue.malus}})</label>
|
<label for="system.sante.fatigue.value">Fatigue ({{calc.fatigue.malus}})</label>
|
||||||
<div class="tooltiptext ttt-fatigue">{{{calc.fatigue.html}}}</div>
|
<div class="tooltiptext ttt-fatigue">{{{calc.fatigue.html}}}</div>
|
||||||
<a class="fatigue-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="fatigue-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="resource-content" type="text" name="system.sante.fatigue.value" value="{{system.sante.fatigue.value}}" data-dtype="Number" />
|
<input name="system.sante.fatigue.value" class="resource-content" type="number" data-dtype="Number"
|
||||||
|
value="{{system.sante.fatigue.value}}" min="0" max="{{system.sante.fatigue.max}}"/>
|
||||||
<span>/ {{system.sante.fatigue.max}}</span>
|
<span>/ {{system.sante.fatigue.max}}</span>
|
||||||
<a class="fatigue-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="fatigue-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
<div>
|
{{#if effects}}
|
||||||
{{#if effects}}
|
{{#each effects as |effect|}}
|
||||||
{{#each effects as |effect|}}
|
<span class="active-effect" data-effect="{{effect.id}}">
|
||||||
<span class="active-effect" data-effect="{{effect.id}}">
|
<img class="button-effect-img {{#if @root.options.isGM}}delete-active-effect{{/if}}" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" width="24" height="24" />
|
||||||
<img class="button-effect-img {{#if @root.options.isGM}}delete-active-effect{{/if}}" src="{{effect.img}}" data-tooltip="{{localize effect.name}}" width="24" height="24" />
|
</span>
|
||||||
</span>
|
{{/each}}
|
||||||
{{/each}}
|
{{else}}
|
||||||
{{#if calc.surprise}}<span>{{calc.surprise}}!</span>{{/if}}
|
Aucun effet actif
|
||||||
{{else}}
|
{{/if}}
|
||||||
Aucun effet actif
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<div class="flex-group-left header-etats">
|
<div class="flex-between header-etats">
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
<div>{{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-effects.hbs"}} Enc: {{calc.surenc}}</div>
|
<div>{{>"systems/foundryvtt-reve-de-dragon/templates/actor/header-effects.hbs"}} Enc: {{calc.surenc}}</div>
|
||||||
|
{{#if calc.surprise}}<div>{{calc.surprise}}!</div>{{/if}}
|
||||||
<div>{{system.compteurs.etat.label}}: {{system.compteurs.etat.value}}</div>
|
<div>{{system.compteurs.etat.label}}: {{system.compteurs.etat.value}}</div>
|
||||||
{{#each calc.blessures as |blessure|}}
|
{{#each calc.blessures as |blessure|}}
|
||||||
<div>{{blessure}}</div>
|
<div>{{blessure}}</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{{#if system.attributs.hautrevant.value}}
|
{{#if system.attributs.hautrevant.value}}
|
||||||
<div class="tmr-buttons">
|
<div class="tmr-buttons flex-group-left flex-shrink">
|
||||||
<span>
|
<span>
|
||||||
<a class="button-tmr" data-tooltip="Montée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
|
<a class="button-tmr" data-tooltip="Montée dans les Terres Médianes !" {{#if hautreve.isDemiReve}}disabled{{/if}}>
|
||||||
<img class="button-img" src="systems/foundryvtt-reve-de-dragon/assets/ui/icon-tmr-normal.svg"/>
|
<img class="button-img" src="systems/foundryvtt-reve-de-dragon/assets/ui/icon-tmr-normal.svg"/>
|
||||||
|
|||||||
@@ -8,19 +8,21 @@
|
|||||||
<span class="equipement-valeur {{#unless (gt piece.system.cout 0)}}field-error{{/unless}}">
|
<span class="equipement-valeur {{#unless (gt piece.system.cout 0)}}field-error{{/unless}}">
|
||||||
({{piece.system.cout}} Sols)
|
({{piece.system.cout}} Sols)
|
||||||
</span>
|
</span>
|
||||||
|
<span class="equipement-detail">
|
||||||
{{#if @root.options.isOwner}}
|
{{#if @root.options.isOwner}}
|
||||||
<span class="equipement-button item-controls">
|
<span class="item-controls">
|
||||||
<a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<span class="equipement-detail">
|
<span>
|
||||||
<span>{{piece.system.quantite}}</span>
|
<span>{{piece.system.quantite}}</span>
|
||||||
</span>
|
</span>
|
||||||
{{#if @root.options.isOwner}}
|
{{#if @root.options.isOwner}}
|
||||||
<span class="equipement-button item-controls">
|
<span class="item-controls">
|
||||||
<a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
</span>
|
||||||
{{#if @root.options.isOwner}}
|
{{#if @root.options.isOwner}}
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=signe options=@root.options}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=signe options=@root.options}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
<ul class="item-list alterne-list liste-equipement">
|
<ul class="item-list alterne-list liste-equipement">
|
||||||
<li class="competence-header flexrow">
|
<li class="competence-header flexrow">
|
||||||
<span class="equipement-nom">Nom</span>
|
<span class="equipement-nom">Nom</span>
|
||||||
<span class="equipement-detail-buttons">Q.</span>
|
<span class="equipement-detail">Quantité</span>
|
||||||
<span class="equipement-detail">Enc.</span>
|
<span class="equipement-detail">Enc.</span>
|
||||||
<span class="equipement-actions">Actions</span>
|
<span class="item-actions-controls item-controls ">Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each inventaires as |item id|}}
|
{{#each inventaires as |item id|}}
|
||||||
{{#unless item.estContenu}}
|
{{#unless item.estContenu}}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{#if jeus.length}}
|
{{#if jeux.length}}
|
||||||
<h3>Jeux :</h3>
|
<h3>Jeux :</h3>
|
||||||
<ul class="item-list alterne-list">
|
<ul class="item-list alterne-list">
|
||||||
{{#each jeus as |jeu id|}}
|
{{#each jeux as |jeu id|}}
|
||||||
<li class="item flexrow list-item" data-item-id="{{jeu._id}}">
|
<li class="item flexrow list-item" data-item-id="{{jeu._id}}">
|
||||||
<div class="action-jeu list-item-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></div>
|
<div class="action-jeu list-item-label"><a>{{jeu.name}} (base {{jeu.system.base}})</a></div>
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=jeu options=@root.options}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=jeu options=@root.options}}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<span class="generic-label">Seuil de Rêve :</span>
|
<span class="generic-label">Seuil de Rêve :</span>
|
||||||
<span>
|
<span>
|
||||||
{{#if options.isGM}}
|
{{#if options.isGM}}
|
||||||
<input class="competence-value seuil-reve-value" type="text" name="system.reve.seuil.value" value="{{system.reve.seuil.value}}" data-dtype="Number"/>
|
<input name="system.reve.seuil.value" class="competence-value seuil-reve-value" type="number" data-dtype="Number" value="{{system.reve.seuil.value}}" min="0" max="60" />
|
||||||
{{else}}
|
{{else}}
|
||||||
{{system.reve.seuil.value}}
|
{{system.reve.seuil.value}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<span class="generic-label">Refoulement : </span>
|
<span class="generic-label">Refoulement : </span>
|
||||||
<span>
|
<span>
|
||||||
{{#if options.isGM}}
|
{{#if options.isGM}}
|
||||||
<input class="competence-value" type="text" name="system.reve.refoulement.value" value="{{system.reve.refoulement.value}}" data-dtype="Number"/>
|
<input name="system.reve.refoulement.value" class="competence-value" type="number" data-dtype="Number" value="{{system.reve.refoulement.value}}" min="0" max="20" />
|
||||||
{{else}}
|
{{else}}
|
||||||
{{system.reve.refoulement.value}}
|
{{system.reve.refoulement.value}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="flexrow random-field" data-path="{{path}}">
|
<div class="flexrow random-field" data-path="{{path}}">
|
||||||
<label for="{{path}}">{{label}}:</label>
|
<label for="{{path}}">{{label}}:</label>
|
||||||
{{#if (eq type 'entier')}}
|
{{#if (eq type 'entier')}}
|
||||||
<input class="current-value" name="current.{{path}}" value="{{value}}" placeholder="{{label}}" type="number" data-dtype="Number" min="{{min}}" max="{{max}}"/>
|
<input name="current.{{path}}" class="current-value" type="number" data-dtype="Number" placeholder="{{label}}" value="{{value}}" min="{{min}}" max="{{max}}"/>
|
||||||
{{else if (eq type 'heure')}}
|
{{else if (eq type 'heure')}}
|
||||||
<select class="current-value" name="current.{{path}}" value="{{value}}" type="text" data-dtype="String">
|
<select class="current-value" name="current.{{path}}" value="{{value}}" type="text" data-dtype="String">
|
||||||
{{#select value}}
|
{{#select value}}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
{{else}}
|
{{else}}
|
||||||
<input class="current-value" name="current.{{path}}" value="{{value}}" placeholder="{{label}}" type="text" data-dtype="String"/>
|
<input name="current.{{path}}" class="current-value" type="text" data-dtype="String" value="{{value}}" placeholder="{{label}}"/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
<input class="check-for-random" type="checkbox" data-tooltip="Sélectionné pour génération automatique" {{#if checked}}checked{{/if}}/>
|
<input class="check-for-random" type="checkbox" data-tooltip="Sélectionné pour génération automatique" {{#if checked}}checked{{/if}}/>
|
||||||
|
|||||||
10
templates/actor/tooltip-bonmoments.hbs
Normal file
10
templates/actor/tooltip-bonmoments.hbs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<div class="toolclip themed theme-dark">
|
||||||
|
<p><b>Bon moments du jour</b></p>
|
||||||
|
{{#if system.compteurs.bonmoments}}
|
||||||
|
{{#each system.compteurs.bonmoments as |bonmoment|}}
|
||||||
|
<p>{{bonmoment}}</p>
|
||||||
|
{{/each}}
|
||||||
|
{{else}}
|
||||||
|
<p>Rien de notable</p>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
@@ -1,12 +1,10 @@
|
|||||||
<div>
|
<div>
|
||||||
<ul class="item-list">
|
<ul class="item-list">
|
||||||
<li class="flexrow">
|
<li class="flexrow">
|
||||||
<label class="derivee-label" for="system.compteurs.experience.value">Stress transformé</label>
|
<label for="system.compteurs.experience.value" class="derivee-label">Stress transformé</label>
|
||||||
{{#if options.vueDetaillee}}
|
{{#if options.vueDetaillee}}
|
||||||
<input class="resource-content"
|
<input name="system.compteurs.experience.value" class="resource-content" type="number" data-dtype="Number" size="3"
|
||||||
type="text" data-dtype="Number" size="3"
|
value="{{system.compteurs.experience.value}}" min="0" max="100"/>
|
||||||
name="system.compteurs.experience.value"
|
|
||||||
value="{{system.compteurs.experience.value}}"/>
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<label name="system.compteurs.experience.value">{{system.compteurs.experience.value}}</label>
|
<label name="system.compteurs.experience.value">{{system.compteurs.experience.value}}</label>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -26,9 +26,17 @@
|
|||||||
{{alias}}
|
{{alias}}
|
||||||
{{#if blessure}}
|
{{#if blessure}}
|
||||||
{{#if (gt blessure.system.gravite 0)}}subit une blessure {{blessure.name}}
|
{{#if (gt blessure.system.gravite 0)}}subit une blessure {{blessure.name}}
|
||||||
{{~else~}}subit une éraflure
|
{{~else~}}subit une contusion/éraflure
|
||||||
{{~/if~}}
|
{{~/if~}}
|
||||||
{{~else~}}s'en sort sans une égratignure
|
{{~else if isEntiteIncarnee~}}
|
||||||
|
{{#if (gte gravite 6)}}subit une blessure critique
|
||||||
|
{{~else if (gte gravite 4)}}subit une blessure grave
|
||||||
|
{{~else if (gte gravite 2)}}subit une blessure légère
|
||||||
|
{{~else if (gte gravite 0)}}subit une contusion/éraflure
|
||||||
|
{{~else~}}s'en sort sans une égratignure
|
||||||
|
{{/if}}
|
||||||
|
{{~else~}}
|
||||||
|
s'en sort sans une égratignure
|
||||||
{{~/if~}}
|
{{~/if~}}
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<label for="{{path}}.nombre">{{label}}</label>
|
<label for="{{path}}.nombre">{{label}}</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input type="number" name="{{path}}.nombre" value="{{nombre}}" data-dtype="Number"/>
|
<input name="{{path}}.nombre" type="number" data-dtype="Number" value="{{nombre}}" min="0" max="336"/>
|
||||||
<select name="{{path}}.unite" data-dtype="String" >
|
<select name="{{path}}.unite" data-dtype="String" >
|
||||||
{{selectOptions (timestamp-formulesPeriode) selected=unite labelAttr="label" nameAttr="code" valueAttr="code"}}
|
{{selectOptions (timestamp-formulesPeriode) selected=unite labelAttr="label" nameAttr="code" valueAttr="code"}}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
<div class="flexcol calendar-timestamp-edit">
|
<div class="flexcol calendar-timestamp-edit">
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label>{{label}}</label>
|
<label for="{{path}}.jourDuMois">{{label}}</label>
|
||||||
<input {{#if disabled}}{{disabled}}{{/if}}
|
<input name="{{path}}.jourDuMois" class="flex-shrink number-x2" type="number" data-dtype="Number"
|
||||||
class="flex-shrink number-x2"
|
value="{{jourDuMois}}" min="1" max="28"
|
||||||
type="number" data-dtype="Number" min="1" max="28"
|
{{#if disabled}}{{disabled}}{{/if}} />
|
||||||
name="{{path}}.jourDuMois" value="{{jourDuMois}}" />
|
|
||||||
<select {{#if disabled}}{{disabled}}{{/if}} name="{{path}}.mois" class="calendar-signe-heure" data-dtype="String">
|
<select {{#if disabled}}{{disabled}}{{/if}} name="{{path}}.mois" class="calendar-signe-heure" data-dtype="String">
|
||||||
{{selectOptions (RDD_CONFIG 'heuresRdD') selected=mois.key labelAttr="label" nameAttr="value" valueAttr="value"}}
|
{{selectOptions (RDD_CONFIG 'heuresRdD') selected=mois.key labelAttr="label" nameAttr="value" valueAttr="value"}}
|
||||||
</select>
|
</select>
|
||||||
{{timestamp-imgSigne mois}}
|
{{timestamp-imgSigne mois}}
|
||||||
<input {{#if disabled}}{{disabled}}{{/if}} type="number" class="number-x2" name="{{path}}.annee" value="{{annee}}" data-dtype="Number"/>
|
<input name="{{path}}.annee" class="number-x2" type="number" data-dtype="Number" value="{{annee}}" {{#if disabled}}{{disabled}}{{/if}} />
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label></label>
|
<label></label>
|
||||||
@@ -18,7 +17,7 @@
|
|||||||
{{selectOptions (RDD_CONFIG 'heuresRdD') selected=heure.key labelAttr="label" nameAttr="value" valueAttr="value"}}
|
{{selectOptions (RDD_CONFIG 'heuresRdD') selected=heure.key labelAttr="label" nameAttr="value" valueAttr="value"}}
|
||||||
</select>
|
</select>
|
||||||
{{timestamp-imgSigne heure}}
|
{{timestamp-imgSigne heure}}
|
||||||
<input {{#if disabled}}{{disabled}}{{/if}} type="number" class="number-x2" name="{{path}}.minute" value="{{minute}}" data-dtype="Number"/>
|
<input name="{{path}}.minute" class="number-x2" type="number" data-dtype="Number" value="{{minute}}" {{#if disabled}}{{disabled}}{{/if}}/>
|
||||||
<label>minutes</label>
|
<label>minutes</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -6,9 +6,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<span>
|
<span>
|
||||||
<label>Points à répartir:</label>
|
<label>Points à répartir:</label>
|
||||||
<input class="xpCarac-reste number-x2"
|
<input class="xpCarac-reste number-x2" type="number" data-dtype="Number" value="{{xpData.reste}}" disabled />
|
||||||
type="number" data-dtype="Number"
|
|
||||||
min="0" max="10" value="{{xpData.reste}}" disabled />
|
|
||||||
<label> sur {{xpData.xpCarac}}</label>
|
<label> sur {{xpData.xpCarac}}</label>
|
||||||
</span>
|
</span>
|
||||||
<ul class="flexcol item-list alterne-list">
|
<ul class="flexcol item-list alterne-list">
|
||||||
@@ -32,7 +30,7 @@
|
|||||||
<label>{{carac.xp}}</label>
|
<label>{{carac.xp}}</label>
|
||||||
<span class="flexrow">
|
<span class="flexrow">
|
||||||
<a class="xpCarac-moins"><i class="fa-solid fa-square-minus"></i></a>
|
<a class="xpCarac-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||||
<input class="xpCarac-view-ajout" value="{{carac.ajout}}" type="number" max="99" disabled/>
|
<input class="xpCarac-view-ajout" value="{{carac.ajout}}" type="number" disabled/>
|
||||||
<a class="xpCarac-plus"><i class="fa-solid fa-square-plus"></i></a>
|
<a class="xpCarac-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||||
</span>
|
</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -9,19 +9,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="signe.system.difficulte">Difficulte</label>
|
<label for="signe.system.difficulte">Difficulte</label>
|
||||||
<input type="number" name="signe.system.difficulte" value="{{signe.system.difficulte}}" data-dtype="Number" />
|
<input type="number" data-dtype="Number" name="signe.system.difficulte" value="{{signe.system.difficulte}}" min=""-10" max="0"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="signe.system.valeur.norm">Expérience en sorts</label>
|
<label for="signe.system.valeur.norm">Expérience en sorts</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.norm" data-typereussite="norm"
|
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||||
value="{{signe.system.valeur.norm}}" min="1" max="100" data-dtype="Number" />
|
name="signe.system.valeur.norm" data-typereussite="norm"
|
||||||
|
value="{{signe.system.valeur.norm}}" min="1" max="100" />
|
||||||
<span>Sign.</span>
|
<span>Sign.</span>
|
||||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.sign" data-typereussite="sign"
|
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||||
value="{{signe.system.valeur.sign}}" min="1" max="100" data-dtype="Number" />
|
name="signe.system.valeur.sign" data-typereussite="sign"
|
||||||
|
value="{{signe.system.valeur.sign}}" min="1" max="100"/>
|
||||||
<span>Part.</span>
|
<span>Part.</span>
|
||||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.part" data-typereussite="part"
|
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||||
value="{{signe.system.valeur.part}}" min="1" max="100" data-dtype="Number" />
|
name="signe.system.valeur.part" data-typereussite="part"
|
||||||
|
value="{{signe.system.valeur.part}}" min="1" max="100"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group flexrow">
|
<div class="form-group flexrow">
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Nombre de brins</label>
|
<label>Nombre de brins</label>
|
||||||
<select name="nbBrins" data-dtype="number">
|
<select name="nbBrins" data-dtype="Number">
|
||||||
{{#select nbBrins}}
|
{{#select nbBrins}}
|
||||||
{{{nbBrinsSelect}}}
|
{{{nbBrinsSelect}}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
|
|||||||
@@ -40,10 +40,10 @@
|
|||||||
{{else}}Quantité{{/if}}
|
{{else}}Quantité{{/if}}
|
||||||
</label>
|
</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<input name="nombreLots" class="nombreLots flex-shrink number-x2" type="number" min="1"
|
<input name="nombreLots" class="nombreLots flex-shrink number-x2"
|
||||||
{{#unless quantiteIllimite}} max="{{nbLots}}" {{/unless}}
|
type="number" data-dtype="Number"
|
||||||
value="{{choix.nombreLots}}"
|
value="{{choix.nombreLots}}" min="1" {{#unless quantiteIllimite}} max="{{nbLots}}" {{/unless}}
|
||||||
data-dtype="Number" />
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
<h4>{{item.name}}</h4>
|
<h4>{{item.name}}</h4>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label class="flex-grow">Quantité à {{#if item.system.boisson}}boire{{else}}manger{{/if}}</label>
|
<label class="flex-grow">Quantité à {{#if item.system.boisson}}boire{{else}}manger{{/if}}</label>
|
||||||
<input class="attribute-value consommer-doses flex-shrink number-x2" type="number" name="doses" value="{{choix.doses}}"
|
<input name="doses"
|
||||||
min="0" max="{{item.system.quantite}}" data-dtype="Number" />
|
class="attribute-value consommer-doses flex-shrink number-x2" type="number" data-dtype="Number"
|
||||||
|
value="{{choix.doses}}" min="0" max="{{item.system.quantite}}" />
|
||||||
</div>
|
</div>
|
||||||
{{#if item.system.sust}}
|
{{#if item.system.sust}}
|
||||||
<p>Cette {{#if item.system.boisson}}boisson{{else}}nourriture{{/if}} vous apportera <span
|
<p>Cette {{#if item.system.boisson}}boisson{{else}}nourriture{{/if}} vous apportera <span
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
<label>Quantité totale : {{item.system.quantite}}</label>
|
<label>Quantité totale : {{item.system.quantite}}</label>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label class="flex-grow">Quantité à séparer</label>
|
<label class="flex-grow">Quantité à séparer</label>
|
||||||
<input class="attribute-value choix-quantite flex-shrink number-x2" type="number" name="choix.quantite" value="{{choix.quantite}}"
|
<input name="choix.quantite" class="attribute-value choix-quantite flex-shrink number-x2" type="number" data-dtype="Number"
|
||||||
min="1" max="{{choix.max}}" data-dtype="Number" />
|
value="{{choix.quantite}}" min="1" max="{{choix.max}}" />
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -18,15 +18,15 @@
|
|||||||
quantiteIllimite}}checked{{/if}} />
|
quantiteIllimite}}checked{{/if}} />
|
||||||
<label class="label-quantiteIllimite flex-shrink">disponibles</label>
|
<label class="label-quantiteIllimite flex-shrink">disponibles</label>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
<input name="nbLots" class="nbLots flex-shrink number-x2" type="number" min="1"
|
<input name="nbLots" class="nbLots flex-shrink number-x2" type="number" data-dtype="Number"
|
||||||
max="{{maxLots}}" value="{{nbLots}}" data-dtype="Number" />
|
value="{{nbLots}}" min="1" max="{{maxLots}}" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow flex-group-left">
|
<div class="flexrow flex-group-left">
|
||||||
<label for="tailleLot">Taille d'un lot</label>
|
<label for="tailleLot">Taille d'un lot</label>
|
||||||
<span class="flexrow">
|
<span class="flexrow">
|
||||||
<input name="tailleLot" class="tailleLot flex-shrink number-x2" type="number" min="1"
|
<input name="tailleLot" class="tailleLot flex-shrink number-x2" type="number" data-dtype="Number"
|
||||||
max="{{quantiteMax}}" value="{{tailleLot}}" data-dtype="Number" />
|
value="{{tailleLot}}" min="1" max="{{quantiteMax}}" />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow flex-group-left">
|
<div class="flexrow flex-group-left">
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
<div class="flexrow flex-group-left">
|
<div class="flexrow flex-group-left">
|
||||||
<label for="prixLot">Prix du lot</label>
|
<label for="prixLot">Prix du lot</label>
|
||||||
<span class="flexrow">
|
<span class="flexrow">
|
||||||
<input name="prixLot" class="prixLot flex-shrink number-x3" type="number" value="{{numberFormat prixLot decimals=2 sign=false}}"
|
<input name="prixLot" class="prixLot flex-shrink number-x3" type="number" data-dtype="Number"
|
||||||
data-dtype="Number" />
|
value="{{numberFormat prixLot decimals=2 sign=false}}" min="0" />
|
||||||
<label>Sols</label>
|
<label>Sols</label>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<form class="encaisse-roll-dialog">
|
<form class="encaisse-roll-dialog">
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label>Modificateurs aux Dommages:</label>
|
<label>Modificateurs aux Dommages:</label>
|
||||||
<select class="competence-value flex-shrink" name="modificateurDegats" data-dtype="number">
|
<select class="competence-value flex-shrink" name="modificateurDegats" data-dtype="Number">
|
||||||
{{#select modificateurDegats}}
|
{{#select modificateurDegats}}
|
||||||
{{#each ajustementsEncaissement as |key|}}
|
{{#each ajustementsEncaissement as |key|}}
|
||||||
<option value={{key}}>{{plusMoins key}}</option>
|
<option value={{key}}>{{plusMoins key}}</option>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<label>Etat général</label><label class="flexrow">{{etat}}</label>
|
<label>Etat général</label><label class="flexrow">{{etat}}</label>
|
||||||
<label>Déjà bu</label><label class="flexrow">{{diffNbDoses}}</label>
|
<label>Déjà bu</label><label class="flexrow">{{diffNbDoses}}</label>
|
||||||
<label>Force du breuvage</label>
|
<label>Force du breuvage</label>
|
||||||
<select class="force-alcool" data-dtype="number">
|
<select class="force-alcool" data-dtype="Number">
|
||||||
{{#select forceAlcool}}
|
{{#select forceAlcool}}
|
||||||
{{#each ajustementsForce as |key|}}
|
{{#each ajustementsForce as |key|}}
|
||||||
<option value={{key}}>{{key}}</option>
|
<option value={{key}}>{{key}}</option>
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label for="proportions">Proportions: </label>
|
<label for="proportions">Proportions: </label>
|
||||||
<input class="cuisine-proportions" type="number" size="4" name="proportions" value="{{proportions}}" data-dtype="Number" />
|
<input name="proportions" class="cuisine-proportions" type="number" data-dtype="Number" size="4"
|
||||||
|
value="{{proportions}}" min="1"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label for="ajouterEquipement">Ajouter à l'équipement</label>
|
<label for="ajouterEquipement">Ajouter à l'équipement</label>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label for="ptreve-variable">Points de Rêve: </label>
|
<label for="ptreve-variable">Points de Rêve: </label>
|
||||||
<select name="ptreve-variable" class="div-sort-ptreve-var" data-dtype="number">
|
<select name="ptreve-variable" class="div-sort-ptreve-var" data-dtype="Number">
|
||||||
{{#select ptreve-variable}}
|
{{#select ptreve-variable}}
|
||||||
{{#each coutreve as |cout key|}}
|
{{#each coutreve as |cout key|}}
|
||||||
<option value={{cout}}>{{cout}}</option>
|
<option value={{cout}}>{{cout}}</option>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<label for="diffLibre">Difficulté</label>
|
<label for="diffLibre">Difficulté</label>
|
||||||
<select name="diffLibre" class="div-sort-difficulte-var" data-dtype="number">
|
<select name="diffLibre" class="div-sort-difficulte-var" data-dtype="Number">
|
||||||
{{#select diffLibre}}
|
{{#select diffLibre}}
|
||||||
{{#each difficultesLibres as |key|}}
|
{{#each difficultesLibres as |key|}}
|
||||||
<option value={{key}}>{{plusMoins key}}</option>
|
<option value={{key}}>{{plusMoins key}}</option>
|
||||||
|
|||||||
@@ -6,8 +6,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow flex-group-left">
|
<li class="flexrow flex-group-left">
|
||||||
<label>Jet d'encaissement</label>
|
<label for="jet-encaissement">Jet d'encaissement</label>
|
||||||
<input class="encaissement-roll-result" type="number" value="{{encaissement.roll.result}}" min="2" max="20" data-dtype="Number" />
|
<input name="jet-encaissement" class="encaissement-roll-result" type="number" data-dtype="Number"
|
||||||
|
value="{{encaissement.roll.result}}" min="2" max="20" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow flex-group-left">
|
<li class="flexrow flex-group-left">
|
||||||
<label>Total</label>
|
<label>Total</label>
|
||||||
|
|||||||
@@ -7,23 +7,23 @@
|
|||||||
{{#if system.magique}}
|
{{#if system.magique}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.pr">Points de rêve</label>
|
<label for="system.pr">Points de rêve</label>
|
||||||
<input class="attribute-value" type="text" name="system.pr" value="{{system.pr}}" data-dtype="Number" />
|
<input name="system.pr" class="attribute-value" type="number" data-dtype="Number" value="{{system.pr}}" min="0" max="777"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.purifie">Purifiée</label>
|
<label for="system.purifie">Purifiée</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.purifie" {{#if system.purifie}}checked{{/if}}/>
|
<input name="system.purifie" class="attribute-value" type="checkbox" {{#if system.purifie}}checked{{/if}}/>
|
||||||
<label></label>
|
<label></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.prpermanent">Permanente</label>
|
<label for="system.prpermanent">Permanente</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.prpermanent" {{#if system.prpermanent}}checked{{/if}}/>
|
<input name="system.prpermanent" class="attribute-value" type="checkbox" {{#if system.prpermanent}}checked{{/if}}/>
|
||||||
<label></label>
|
<label></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="enchantement.jour">Date de l'Enchantement : Jour/Mois (date actuelle : {{dateActuelle}})</label>
|
<label for="enchantement.jour">Date de l'Enchantement : Jour/Mois (date actuelle : {{dateActuelle}})</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="number" name="enchantement.jour" class="date-enchantement" value="{{enchantement.jour}}" data-dtype="Number" min="1" max="28"/>
|
<input name="enchantement.jour" class="date-enchantement" type="number" data-dtype="Number" value="{{enchantement.jour}}" min="1" max="28"/>
|
||||||
<select name="enchantement.mois" class="date-enchantement" data-dtype="String">
|
<select name="enchantement.mois" class="date-enchantement" data-dtype="String">
|
||||||
{{#select enchantement.mois}}
|
{{#select enchantement.mois}}
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-heures.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-heures.hbs"}}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.resistance">Résistance</label>
|
<label for="system.resistance">Résistance</label>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/icon-arme-broken.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/icon-arme-broken.hbs"}}
|
||||||
<input class="attribute-value" type="text" name="system.resistance" value="{{system.resistance}}" data-dtype="Number"/>
|
<input name="system.resistance" class="attribute-value" type="number" data-dtype="Number" value="{{system.resistance}}" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.categorie_parade">Catégorie parade </label>
|
<label for="system.categorie_parade">Catégorie parade </label>
|
||||||
@@ -60,47 +60,47 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.force">Force min. </label>
|
<label for="system.force">Force min. </label>
|
||||||
<input class="attribute-value" type="text" name="system.force" value="{{system.force}}" data-dtype="String"/>
|
<input name="system.force" class="attribute-value" type="text" data-dtype="String" value="{{system.force}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.rapide">Arme rapide ? </label>
|
<label for="system.rapide">Arme rapide ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.rapide" {{#if system.rapide}}checked{{/if}}/>
|
<input name="system.rapide" class="attribute-value" type="checkbox" {{#if system.rapide}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.unemain">A Une main ? </label>
|
<label for="system.unemain">A Une main ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.unemain" {{#if system.unemain}}checked{{/if}}/>
|
<input name="system.unemain" class="attribute-value" type="checkbox" {{#if system.unemain}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.deuxmains">A Deux mains ? </label>
|
<label for="system.deuxmains">A Deux mains ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.deuxmains" {{#if system.deuxmains}}checked{{/if}}/>
|
<input name="system.deuxmains" class="attribute-value" type="checkbox" {{#if system.deuxmains}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.portee_courte">Portée courte </label>
|
<label for="system.portee_courte">Portée courte </label>
|
||||||
<input class="attribute-value" type="text" name="system.portee_courte" value="{{system.portee_courte}}" data-dtype="Number"/>
|
<input name="system.portee_courte" class="attribute-value" type="text" data-dtype="Number" value="{{system.portee_courte}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.portee_moyenne">Portée moyenne </label>
|
<label for="system.portee_moyenne">Portée moyenne </label>
|
||||||
<input class="attribute-value" type="text" name="system.portee_moyenne" value="{{system.portee_moyenne}}" data-dtype="Number"/>
|
<input name="system.portee_moyenne" class="attribute-value" type="text" data-dtype="Number" value="{{system.portee_moyenne}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.portee_extreme">Portée extrême </label>
|
<label for="system.portee_extreme">Portée extrême </label>
|
||||||
<input class="attribute-value" type="text" name="system.portee_extreme" value="{{system.portee_extreme}}" data-dtype="Number"/>
|
<input name="system.portee_extreme" class="attribute-value" type="text" data-dtype="Number" value="{{system.portee_extreme}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.penetration">Pénétration </label>
|
<label for="system.penetration">Pénétration </label>
|
||||||
<input class="attribute-value" type="text" name="system.penetration" value="{{system.penetration}}" data-dtype="Number"/>
|
<input name="system.penetration" class="attribute-value" type="text" data-dtype="Number" value="{{system.penetration}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.magique">Magique ? </label>
|
<label for="system.magique">Magique ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.magique" {{#if system.magique}}checked{{/if}}/>
|
<input name="system.magique" class="attribute-value" type="checkbox"{{#if system.magique}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group item-magique">
|
<div class="form-group item-magique">
|
||||||
<label for="system.resistance_magique">Résistance magique </label>
|
<label for="system.resistance_magique">Résistance magique </label>
|
||||||
<input class="attribute-value" type="text" name="system.resistance_magique" value="{{system.resistance_magique}}" data-dtype="Number"/>
|
<input name="system.resistance_magique" class="attribute-value" type="text" data-dtype="Number" value="{{system.resistance_magique}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group item-magique">
|
<div class="form-group item-magique">
|
||||||
<label for="system.ecaille_efficacite">Nombre d'Ecailles d'Efficacité </label>
|
<label for="system.ecaille_efficacite">Nombre d'Ecailles d'Efficacité </label>
|
||||||
<input class="attribute-value" type="text" name="system.ecaille_efficacite" value="{{system.ecaille_efficacite}}" data-dtype="Number"/>
|
<input name="system.ecaille_efficacite" class="attribute-value" type="text" data-dtype="Number" value="{{system.ecaille_efficacite}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.initpremierround">Classe d'initiative au premier round (mêlée seulement) </label>
|
<label for="system.initpremierround">Classe d'initiative au premier round (mêlée seulement) </label>
|
||||||
|
|||||||
@@ -9,15 +9,15 @@
|
|||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.protection">Protection</label>
|
<label for="system.protection">Protection</label>
|
||||||
<input class="attribute-value" type="text" name="system.protection" value="{{system.protection}}" data-dtype="String"/>
|
<input name="system.protection" class="attribute-value" type="text" data-dtype="String" value="{{system.protection}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.deterioration">Détérioration</label>
|
<label for="system.deterioration">Détérioration</label>
|
||||||
<input class="attribute-value" type="text" name="system.deterioration" value="{{system.deterioration}}" data-dtype="Number"/>
|
<input name="system.deterioration" class="attribute-value" type="text" data-dtype="Number" value="{{system.deterioration}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.malus">Malus Armure </label>
|
<label for="system.malus">Malus Armure </label>
|
||||||
<input class="attribute-value" type="text" name="system.malus" value="{{system.malus}}" data-dtype="Number"/>
|
<input name="system.malus" class="attribute-value" type="text" data-dtype="Number" value="{{system.malus}}" />
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||||
|
|||||||
@@ -15,39 +15,44 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.localisation">Localisation</label>
|
<label for="system.localisation">Localisation</label>
|
||||||
<input class="attribute-value" type="text" name="system.localisation" value="{{system.localisation}}" data-dtype="String"/>
|
<input name="system.localisation" class="attribute-value" type="text" data-dtype="String" value="{{system.localisation}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.origine">Causée par</label>
|
<label for="system.origine">Causée par</label>
|
||||||
<input class="attribute-value" type="text" name="system.origine" value="{{system.origine}}" data-dtype="String"/>
|
<input name="system.origine" class="attribute-value" type="text" data-dtype="String" value="{{system.origine}}" />
|
||||||
</div>
|
</div>
|
||||||
{{#if (lt system.gravite 7)}}
|
{{#if (lt system.gravite 7)}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.difficulte">Difficulté des soins</label>
|
<label for="system.difficulte">Difficulté des soins</label>
|
||||||
<input class="attribute-value number-x" type="text" name="system.difficulte" value="{{system.difficulte}}" data-dtype="Number"/>
|
<input name="system.difficulte" class="attribute-value number-x" type="text" data-dtype="Number" value="{{system.difficulte}}" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="premierssoins-done">Premiers soins
|
<label for="premierssoins-done">Premiers soins
|
||||||
<input class="attribute-value" type="checkbox" name="premierssoins-done" {{#if system.premierssoins.done}}checked{{/if}}/>
|
<input name="premierssoins-done" class="attribute-value" type="checkbox" {{#if system.premierssoins.done}}checked{{/if}}/>
|
||||||
</label>
|
</label>
|
||||||
{{#if system.premierssoins.done}}
|
{{#if system.premierssoins.done}}
|
||||||
{{#unless system.soinscomplets.done}}
|
{{#unless system.soinscomplets.done}}
|
||||||
<input class="attribute-value number-x" type="text" name="system.premierssoins.bonus" value="{{system.premierssoins.bonus}}" data-dtype="Number"/>
|
<label for="system.premierssoins.bonus">Bonus soins complets
|
||||||
|
<input name="system.premierssoins.bonus" class="attribute-value number-x" type="number" data-dtype="Number"
|
||||||
|
value="{{system.premierssoins.bonus}}" min="-6" max="2"/>
|
||||||
|
</label>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<label for="system.premierssoins.tache">Points de tâches</label>
|
<label for="system.premierssoins.tache">Points de tâches</label>
|
||||||
<input class="attribute-value number-x" type="text" name="system.premierssoins.tache" value="{{system.premierssoins.tache}}" data-dtype="Number"/>
|
<input name="system.premierssoins.tache" class="attribute-value number-x" type="number" data-dtype="Number"
|
||||||
|
value="{{system.premierssoins.tache}}" min="-4" max="6"/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if system.premierssoins.done}}
|
{{#if system.premierssoins.done}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="soinscomplets-done">Soins complets
|
<label for="soinscomplets-done">Soins complets
|
||||||
<input class="attribute-value" type="checkbox" name="soinscomplets-done" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
<input name="soinscomplets-done" class="attribute-value" type="checkbox" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
||||||
</label>
|
</label>
|
||||||
{{#if system.soinscomplets.done}}
|
{{#if system.soinscomplets.done}}
|
||||||
<input class="attribute-value number-x" type="text" name="system.soinscomplets.bonus" value="{{system.soinscomplets.bonus}}" data-dtype="Number"/>
|
<input name="system.soinscomplets.bonus" class="attribute-value number-x" type="number" data-dtype="Number"
|
||||||
|
value="{{system.soinscomplets.bonus}}" min="0" max="3" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="niveau">Coordonnées TMR </label>
|
<label for="system.coord">Coordonnées TMR </label>
|
||||||
<input class="attribute-value" type="text" name="system.coord" value="{{system.coord}}" data-dtype="String"/>
|
<input name="system.coord" value="{{system.coord}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.specific">Mode spécifique</label>
|
<label for="system.specific">Mode spécifique</label>
|
||||||
|
|||||||
@@ -3,12 +3,14 @@
|
|||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.niveau">Niveau</label>
|
<label for="system.niveau" class="item-label">Niveau</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.niveau}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.reference">Référence / Auteur</label>
|
<label for="system.reference">Référence / Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.reference" value="{{system.reference}}" data-dtype="String"/>
|
<input name="system.reference" class="attribute-value" type="text" data-dtype="String"
|
||||||
|
value="{{system.reference}}" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||||
|
|||||||
@@ -24,11 +24,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.niveau">Niveau </label>
|
<label for="system.niveau">Niveau </label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" class="attribute-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.niveau}}" min="-11"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.xp">XP </label>
|
<label for="system.xp">XP </label>
|
||||||
<input class="attribute-value sheet-competence-xp" type="text" name="system.xp" value="{{system.xp}}" data-dtype="Number"/>
|
<input name="system.xp" class="attribute-value sheet-competence-xp" type="text" data-dtype="Number"
|
||||||
|
value="{{system.xp}}" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.base">Niveau de base </label>
|
<label for="system.base">Niveau de base </label>
|
||||||
@@ -52,21 +54,23 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.default_diffLibre">Difficulté libre par défaut</label>
|
<label for="system.default_diffLibre">Difficulté libre par défaut</label>
|
||||||
<input class="attribute-value" type="text" name="system.default_diffLibre" value="{{system.default_diffLibre}}" data-dtype="Number"/>
|
<input name="system.default_diffLibre" class="attribute-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.default_diffLibre}}" min="-10" max="0"/>
|
||||||
</div>
|
</div>
|
||||||
{{#if (eq system.categorie 'draconic')}}
|
{{#if (eq system.categorie 'draconic')}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.xp_sort">XP Sort </label>
|
<label for="system.xp_sort">XP Sort </label>
|
||||||
<input class="attribute-value" type="text" name="system.xp_sort" value="{{system.xp_sort}}" data-dtype="Number"/>
|
<input name="system.xp_sort" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.xp_sort}}" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.niveau_archetype">Niveau d'Archetype</label>
|
<label for="system.niveau_archetype">Niveau d'Archetype</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau_archetype" value="{{system.niveau_archetype}}" data-dtype="Number"/>
|
<input name="system.niveau_archetype" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.niveau_archetype}}" min="0" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -12,20 +12,24 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="niveau">Valeur de Caractéristique</label>
|
<label for="niveau">Valeur de Caractéristique</label>
|
||||||
<input class="attribute-value" type="text" name="system.carac_value" value="{{system.carac_value}}" data-dtype="Number"/>
|
<input name="system.carac_value" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.carac_value}}" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="niveau">Niveau</label>
|
<label for="niveau">Niveau</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.niveau}}" min="-11"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="default_diffLibre">Difficulté libre par défaut</label>
|
<label for="default_diffLibre">Difficulté libre par défaut</label>
|
||||||
<input class="attribute-value" type="text" name="system.default_diffLibre" value="{{system.default_diffLibre}}" data-dtype="Number"/>
|
<input name="system.default_diffLibre" class="attribute-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.default_diffLibre}}" min="-10" max="0"/>
|
||||||
</div>
|
</div>
|
||||||
{{#if isdommages}}
|
{{#if isdommages}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="niveau">Dommages (+dom)</label>
|
<label for="niveau">Dommages (+dom)</label>
|
||||||
<input class="attribute-value" type="text" name="system.dommages" value="{{system.dommages}}" data-dtype="Number"/>
|
<input name="system.dommages" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.dommages}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.mortalite">Mortalité</label>
|
<label for="system.mortalite">Mortalité</label>
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.capacite">Capacite (points d'Enc.)</label>
|
<label for="system.capacite">Capacite (points d'Enc.)</label>
|
||||||
<input class="attribute-value" type="text" name="system.capacite" value="{{system.capacite}}" data-dtype="Number"/>
|
<input name="system.capacite" class="attribute-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.capacite}}"/>
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||||
{{#if options.isOwned}}
|
{{#if options.isOwned}}
|
||||||
@@ -20,7 +21,7 @@
|
|||||||
<span class="equipement-nom">Nom</span>
|
<span class="equipement-nom">Nom</span>
|
||||||
<span class="equipement-detail">Q.</span>
|
<span class="equipement-detail">Q.</span>
|
||||||
<span class="equipement-detail">Enc.</span>
|
<span class="equipement-detail">Enc.</span>
|
||||||
<span class="equipement-actions">Actions</span>
|
<span class="item-actions-controls">Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{buildInventaireConteneur actorId id options}}
|
{{buildInventaireConteneur actorId id options}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -12,20 +12,22 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.agilite">Agilité ?</label>
|
<label for="system.agilite" class="item-label" >Agilité ?</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.agilite" {{#if system.agilite}}checked{{/if}}/>
|
<input name="system.agilite" class="attribute-value" type="checkbox" {{#if system.agilite}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.apparence">Apparence ?</label>
|
<label for="system.apparence" class="item-label">Apparence ?</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.apparence" {{#if system.apparence}}checked{{/if}}/>
|
<input name="system.apparence" class="attribute-value" type="checkbox" {{#if system.apparence}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.niveau">Niveau</label>
|
<label for="system.niveau" class="item-label">Niveau</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" class="attribute-value" type="text" data-dtype="Number"
|
||||||
|
value="{{system.niveau}}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.reference">Référence / Auteur</label>
|
<label for="system.reference">Référence / Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.reference" value="{{system.reference}}" data-dtype="String"/>
|
<input name="system.reference" class="attribute-value" type="text" data-dtype="String"
|
||||||
|
value="{{system.reference}}"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.pointsemp">Points d'Empoignade </label>
|
<label for="system.pointsemp">Points d'Empoignade </label>
|
||||||
<input class="attribute-value" type="text" name="system.pointsemp" value="{{system.pointsemp}}" data-dtype="Number"/>
|
<input name="system.pointsemp" class="attribute-value" type="number" data-dtype="Number" value="{{system.pointsemp}}" min="-2" max="2"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.immobilise">Immobilisé </label>
|
<label for="system.immobilise">Immobilisé </label>
|
||||||
<input type="checkbox" name="system.immobilise" {{#if system.immobilise}}checked{{/if}}/>
|
<input name="system.immobilise" type="checkbox" {{#if system.immobilise}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -17,12 +17,13 @@
|
|||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.sust">Sustentation (si applicable)</label>
|
<label for="system.sust">Sustentation (si applicable)</label>
|
||||||
<input class="attribute-value" type="number" name="system.sust" value="{{system.sust}}" data-dtype="Number" min="0"/>
|
<input name="system.sust" class="attribute-value" type="number" data-dtype="Number"
|
||||||
|
value="{{system.sust}}" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
{{#if (gt system.sust 0)}}
|
{{#if (gt system.sust 0)}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.exotisme">Exotisme</label>
|
<label for="system.exotisme">Exotisme</label>
|
||||||
<input class="attribute-value" type="number" name="system.exotisme" value="{{system.exotisme}}" data-dtype="Number" min="-10" max="0"/>
|
<input name="system.exotisme" class="attribute-value" type="number" data-dtype="Number" value="{{system.exotisme}}" min="-10" max="0"/>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{{log this}}
|
|
||||||
<form class="{{cssClass}}" autocomplete="off">
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
<header class="sheet-header">
|
<header class="sheet-header">
|
||||||
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
||||||
@@ -27,20 +26,20 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Taille</label>
|
<label for="system.taille">Taille</label>
|
||||||
<input class="attribute-value" type="text" name="system.taille" value="{{system.taille}}" data-dtype="Number" />
|
<input name="system.taille" value="{{system.taille}}" min="1" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Pureté</label>
|
<label for="system.purete">Pureté</label>
|
||||||
<input class="attribute-value" type="text" name="system.purete" value="{{system.purete}}" data-dtype="Number" />
|
<input name="system.purete" value="{{system.purete}}" min="0" max="7" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Inertie</label>
|
<label>Inertie</label>
|
||||||
<input class="attribute-value" type="text" name="system.inertie" value="{{system.inertie}}" data-dtype="Number" disabled/>
|
<input name="system.inertie" value="{{system.inertie}}" class="attribute-value" type="text" data-dtype="Number" disabled/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Enchantabilité</label>
|
<label>Enchantabilité</label>
|
||||||
<input class="attribute-value" type="text" name="system.enchantabilite" value="{{system.enchantabilite}}" data-dtype="Number" disabled/>
|
<input name="system.enchantabilite" value="{{system.enchantabilite}}" class="attribute-value" type="text" data-dtype="Number" disabled/>
|
||||||
</div>
|
</div>
|
||||||
{{>'systems/foundryvtt-reve-de-dragon/templates/enchantement/partial-enchantement.hbs'}}
|
{{>'systems/foundryvtt-reve-de-dragon/templates/enchantement/partial-enchantement.hbs'}}
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||||
|
|||||||
@@ -31,16 +31,19 @@
|
|||||||
{{#if (eq isComestible 'brut')}}
|
{{#if (eq isComestible 'brut')}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.sust">Sustentation</label>
|
<label for="system.sust">Sustentation</label>
|
||||||
<input class="attribute-value" type="number" name="system.sust" value="{{system.sust}}" data-dtype="Number" min="0"/>
|
<input name="system.sust" value="{{system.sust}}" min="0"
|
||||||
|
class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.exotisme">Exotisme</label>
|
<label for="system.exotisme">Exotisme</label>
|
||||||
<input class="attribute-value" type="number" name="system.exotisme" value="{{system.exotisme}}" data-dtype="Number" min="-10" max="0"/>
|
<input name="system.exotisme" value="{{system.exotisme}}" min="-10" max="0"
|
||||||
|
class="attribute-value" type="number" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Niveau (si applicable)</label>
|
<label>Niveau (si applicable)</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number" />
|
<input name="system.niveau" value="{{system.niveau}}"
|
||||||
|
class="attribute-value" type="text" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<div class="tab items" data-group="primary" data-tab="informations">
|
<div class="tab items" data-group="primary" data-tab="informations">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Niveau (si applicable) </label>
|
<label>Niveau (si applicable) </label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number" />
|
<input name="system.niveau" value="{{system.niveau}}" class="attribute-value" type="text" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Catégorie</label>
|
<label>Catégorie</label>
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
<header class="sheet-header">
|
<header class="sheet-header">
|
||||||
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
||||||
<div class="header-fields">
|
<div class="header-fields">
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
<h1 class="charname"><input name="name" value="{{name}}" type="text" placeholder="Name"/></h1>
|
||||||
<div class="resource">
|
<div class="resource">
|
||||||
<label>Quantity</label>
|
<label for="system.quantity">Quantity</label>
|
||||||
<input type="text" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
|
<input name="system.quantity" value="{{system.quantity}}" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="resource">
|
<div class="resource">
|
||||||
<label>Weight</label>
|
<label for="system.weight">Weight</label>
|
||||||
<input type="text" name="system.weight" value="{{system.weight}}" data-dtype="Number"/>
|
<input name="system.weight" value="{{system.weight}}" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -39,13 +39,13 @@
|
|||||||
<ol class="attributes-list">
|
<ol class="attributes-list">
|
||||||
{{#each system.attributes as |attr key|}}
|
{{#each system.attributes as |attr key|}}
|
||||||
<li class="attribute flexrow" data-attribute="{{key}}">
|
<li class="attribute flexrow" data-attribute="{{key}}">
|
||||||
<input class="attribute-key" type="text" name="system.attributes.{{key}}.key" value="{{key}}"/>
|
<input name="system.attributes.{{key}}.key" value="{{key}}" class="attribute-key" type="text"/>
|
||||||
{{#if attr.isCheckbox}}
|
{{#if attr.isCheckbox}}
|
||||||
<label class="attribute-value checkbox"><input type="checkbox" name="system.attributes.{{key}}.value" {{checked attr.value}}/></label>
|
<label class="attribute-value checkbox"><input name="system.attributes.{{key}}.value" type="checkbox" {{checked attr.value}}/></label>
|
||||||
{{else}}
|
{{else}}
|
||||||
<input class="attribute-value" type="text" name="system.attributes.{{key}}.value" value="{{attr.value}}" data-dtype="{{attr.dtype}}"/>
|
<input name="system.attributes.{{key}}.value" value="{{attr.value}}" class="attribute-value" type="text" data-dtype="{{attr.dtype}}"/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<input class="attribute-label" type="text" name="system.attributes.{{key}}.label" value="{{attr.label}}"/>
|
<input name="system.attributes.{{key}}.label" value="{{attr.label}}" class="attribute-label" type="text"/>
|
||||||
<select class="attribute-dtype" name="system.attributes.{{key}}.dtype">
|
<select class="attribute-dtype" name="system.attributes.{{key}}.dtype">
|
||||||
{{#select attr.dtype}}
|
{{#select attr.dtype}}
|
||||||
{{#each ../dtypes as |t|}}
|
{{#each ../dtypes as |t|}}
|
||||||
|
|||||||
@@ -15,16 +15,16 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.base">Base</label>
|
<label for="system.base" class="item-label">Base</label>
|
||||||
<input class="attribute-value" type="text" name="system.base" value="{{system.base}}" data-dtype="Number"/>
|
<input name="system.base" value="{{system.base}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.caraccomp">Caractéristique/Compétence</label>
|
<label for="system.caraccomp" class="item-label">Caractéristique/Compétence</label>
|
||||||
<input class="attribute-value" type="text" name="system.caraccomp" value="{{system.caraccomp}}" data-dtype="String"/>
|
<input name="system.caraccomp" value="{{system.caraccomp}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.reference">Référence / Auteur</label>
|
<label for="system.reference">Référence / Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.reference" value="{{system.reference}}" data-dtype="String"/>
|
<input name="system.reference" value="{{system.reference}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.auteur">Auteur</label>
|
<label for="system.auteur">Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.auteur" value="{{system.auteur}}" data-dtype="String"/>
|
<input name="system.auteur" value="{{system.auteur}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.competence">Compétence</label>
|
<label for="system.competence">Compétence</label>
|
||||||
@@ -31,23 +31,26 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.difficulte">Difficulté</label>
|
<label for="system.difficulte">Difficulté</label>
|
||||||
<input class="attribute-value" type="number" name="system.difficulte" value="{{system.difficulte}}" data-dtype="Number"/>
|
<input name="system.difficulte" value="{{system.difficulte}}" min="-10" max="0"
|
||||||
|
class="attribute-value" type="number" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.points_de_tache">Points de tâches</label>
|
<label for="system.points_de_tache">Points de tâches</label>
|
||||||
<input class="attribute-value" type="number" name="system.points_de_tache" value="{{system.points_de_tache}}" data-dtype="Number"/>
|
<input name="system.points_de_tache" value="{{system.points_de_tache}}" min="0"
|
||||||
|
class="attribute-value" type="number" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.xp">Expérience</label>
|
<label for="system.xp">Expérience</label>
|
||||||
<input class="attribute-value" type="number" name="system.xp" value="{{system.xp}}" data-dtype="Number"/>
|
<input name="system.xp" value="{{system.xp}}" min="0"
|
||||||
|
class="attribute-value" type="number" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.niveau_minimum">Niveau minimum</label>
|
<label for="system.niveau_minimum">Niveau minimum</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau_minimum" value="{{system.niveau_minimum}}" data-dtype="Number"/>
|
<input name="system.niveau_minimum" value="{{system.niveau_minimum}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.niveau_maximum">Niveau maximum</label>
|
<label for="system.niveau_maximum">Niveau maximum</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau_maximum" value="{{system.niveau_maximum}}" data-dtype="Number"/>
|
<input name="system.niveau_maximum" value="{{system.niveau_maximum}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||||
|
|||||||
@@ -19,27 +19,27 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.malignite">Malignité </label>
|
<label for="system.malignite">Malignité </label>
|
||||||
<input class="attribute-value" type="text" name="system.malignite" value="{{system.malignite}}" data-dtype="Number"/>
|
<input name="system.malignite" value="{{system.malignite}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.incubation">Incubation</label>
|
<label for="system.incubation">Incubation</label>
|
||||||
<input class="attribute-value" type="text" name="system.incubation" value="{{system.incubation}}" data-dtype="String"/>
|
<input name="system.incubation" value="{{system.incubation}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/common/periodicite.hbs" system.periode path='system.periode' label='Périodicité'}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/common/periodicite.hbs" system.periode path='system.periode' label='Périodicité'}}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.dommages">Dommages</label>
|
<label for="system.dommages">Dommages</label>
|
||||||
<input class="attribute-value" type="text" name="system.dommages" value="{{system.dommages}}" data-dtype="String"/>
|
<input name="system.dommages" value="{{system.dommages}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.remedesconnus">Remedes Connus ? </label>
|
<label for="system.remedesconnus">Remedes Connus ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.remedesconnus" {{#if system.remedesconnus}}checked{{/if}}/>
|
<input name="system.remedesconnus" class="attribute-value" type="checkbox" {{#if system.remedesconnus}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
{{#if (or options.isGM system.remedesconnus)}}
|
{{#if (or options.isGM system.remedesconnus)}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.remedes">Remèdes </label>
|
<label for="system.remedes">Remèdes </label>
|
||||||
<input class="attribute-value" type="text" name="system.remedes" value="{{system.remedes}}" data-dtype="String"/>
|
<input name="system.remedes" value="{{system.remedes}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -12,11 +12,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.theme">Thème</label>
|
<label for="system.theme">Thème</label>
|
||||||
<input class="attribute-value" type="text" name="system.theme" value="{{system.theme}}" data-dtype="String"/>
|
<input name="system.theme" value="{{system.theme}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.support">Support</label>
|
<label for="system.support">Support</label>
|
||||||
<input class="attribute-value" type="text" name="system.support" value="{{system.support}}" data-dtype="String"/>
|
<input name="system.support" value="{{system.support}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.heure">Heure</label>
|
<label for="system.heure">Heure</label>
|
||||||
@@ -28,15 +28,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.purification">Purification</label>
|
<label for="system.purification">Purification</label>
|
||||||
<input class="attribute-value" type="text" name="system.purification" value="{{system.purification}}" data-dtype="String"/>
|
<input name="system.purification" value="{{system.purification}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.veture">Vêture</label>
|
<label for="system.veture">Vêture</label>
|
||||||
<input class="attribute-value" type="text" name="system.veture" value="{{system.veture}}" data-dtype="String"/>
|
<input name="system.veture" value="{{system.veture}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.comportement">Comportement</label>
|
<label for="system.comportement">Comportement</label>
|
||||||
<input class="attribute-value" type="text" name="system.comportement" value="{{system.comportement}}" data-dtype="String"/>
|
<input name="system.comportement" value="{{system.comportement}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.tmr">Case TMR</label>
|
<label for="system.tmr">Case TMR</label>
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="item-label" for="system.niveau">Niveau</label>
|
<label for="system.niveau" class="item-label" >Niveau</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" value="{{system.niveau}}" min="-10" max="0" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.reference">Référence / Auteur</label>
|
<label for="system.reference">Référence / Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.reference" value="{{system.reference}}" data-dtype="String"/>
|
<input name="system.reference" value="{{system.reference}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||||
|
|||||||
@@ -4,19 +4,19 @@
|
|||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.value">Nombre</label>
|
<label for="system.value">Nombre</label>
|
||||||
<input class="attribute-value" type="text" name="system.value" value="{{system.value}}" data-dtype="Number"/>
|
<input name="system.value" value="{{system.value}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.istrue">Nombre valide ? </label>
|
<label for="system.istrue">Nombre valide ? </label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.istrue" {{#if system.istrue}}checked{{/if}}/>
|
<input name="system.istrue" class="attribute-value" type="checkbox" {{#if system.istrue}}checked{{/if}}/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.jourindex">Index du jour concerné</label>
|
<label for="system.jourindex">Index du jour concerné</label>
|
||||||
<input class="attribute-value" type="text" name="system.jourindex" value="{{system.jourindex}}" data-dtype="Number"/>
|
<input name="system.jourindex" value="{{system.jourindex}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.jourlabel">Label du jour</label>
|
<label for="system.jourlabel">Label du jour</label>
|
||||||
<input class="attribute-value" type="text" name="system.jourlabel" value="{{system.jourlabel}}" data-dtype="String"/>
|
<input name="system.jourlabel" value="{{system.jourlabel}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -8,31 +8,31 @@
|
|||||||
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.sust">Sustentation</label>
|
<label for="system.sust">Sustentation</label>
|
||||||
<input class="attribute-value" type="text" name="system.sust" value="{{system.sust}}" data-dtype="Number" />
|
<input name="system.sust" value="{{system.sust}}" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.boisson">Boisson</label>
|
<label for="system.boisson">Boisson</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.boisson" {{#if system.boisson}}checked{{/if}} />
|
<input name="system.boisson" class="attribute-value" type="checkbox" {{#if system.boisson}}checked{{/if}} />
|
||||||
</div>
|
</div>
|
||||||
{{#if system.boisson}}
|
{{#if system.boisson}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.desaltere">Désaltère de</label>
|
<label for="system.desaltere">Désaltère de</label>
|
||||||
<input class="attribute-value" type="text" name="system.desaltere" value="{{system.desaltere}}" data-dtype="Number" />
|
<input name="system.desaltere" value="{{system.desaltere}}" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.alcoolise">Alcoolisée</label>
|
<label for="system.alcoolise">Alcoolisée</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.alcoolise" {{#if system.alcoolise}}checked{{/if}} />
|
<input name="system.alcoolise" class="attribute-value" type="checkbox" {{#if system.alcoolise}}checked{{/if}} />
|
||||||
</div>
|
</div>
|
||||||
{{#if system.alcoolise}}
|
{{#if system.alcoolise}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Force de l'alcool par dose</label>
|
<label>Force de l'alcool par dose</label>
|
||||||
<input class="attribute-value" type="text" name="system.force" value="{{system.force}}" data-dtype="Number" />
|
<input name="system.force" value="{{system.force}}" min="-10" max="0" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.exotisme">Exotisme</label>
|
<label for="system.exotisme">Exotisme</label>
|
||||||
<input class="attribute-value" type="text" name="system.exotisme" value="{{system.exotisme}}" data-dtype="Number" />
|
<input name="system.exotisme" value="{{system.exotisme}}" min="-10" max="0" class="attribute-value" type="number" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.reference">Référence / Auteur</label>
|
<label for="system.reference">Référence / Auteur</label>
|
||||||
<input class="attribute-value" type="text" name="system.reference" value="{{system.reference}}" data-dtype="String"/>
|
<input name="system.reference" value="{{system.reference}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.niveau">Niveau</label>
|
<label for="system.niveau">Niveau</label>
|
||||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
<input name="system.niveau" value="{{system.niveau}}" min="0" max="10" class="attribute-value" type="text" data-dtype="Number"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
{{#if system.appreciation.moral}}
|
{{#if system.appreciation.moral}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.appreciation.bonmoment">Bon moment</label>
|
<label for="system.appreciation.bonmoment">Bon moment</label>
|
||||||
<input class="attribute-value" type="string" name="system.appreciation.bonmoment" value="{{system.appreciation.bonmoment}}"
|
<input name="system.appreciation.bonmoment" value="{{system.appreciation.bonmoment}}"
|
||||||
data-dtype="String" list="enum-appreciation-bonmoment"
|
class="attribute-value" type="string" data-dtype="String" list="enum-appreciation-bonmoment"
|
||||||
/>
|
/>
|
||||||
<datalist id="enum-appreciation-bonmoment">
|
<datalist id="enum-appreciation-bonmoment">
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-bonmoment.hbs"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-bonmoment.hbs"}}
|
||||||
@@ -37,18 +37,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.appreciation.jetComp">Utiliser la compétence pour le jet d'appréciation</label>
|
<label for="system.appreciation.jetComp">Utiliser la compétence pour le jet d'appréciation</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.appreciation.jetComp" {{#if system.appreciation.jetComp}}checked{{/if}}
|
<input name="system.appreciation.jetComp"
|
||||||
data-toolTip="La compétence est utilisée pour le jet d'appréciation si positive"/>
|
class="attribute-value" type="checkbox" {{#if system.appreciation.jetComp}}checked{{/if}}
|
||||||
|
data-toolTip="La compétence est utilisée pour le jet d'appréciation si positive"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.appreciation.jetQualite">Utiliser la qualité pour le jet d'appréciation</label>
|
<label for="system.appreciation.jetQualite">Utiliser la qualité pour le jet d'appréciation</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.appreciation.jetQualite" {{#if system.appreciation.jetQualite}}checked{{/if}}
|
<input name="system.appreciation.jetQualite"
|
||||||
data-toolTip="La qualité ajuste le jet d'appréciation"/>
|
class="attribute-value" type="checkbox" {{#if system.appreciation.jetQualite}}checked{{/if}}
|
||||||
|
data-toolTip="La qualité ajuste le jet d'appréciation"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="system.appreciation.compMinimum">Jet d'appréciation seulement si qualité > compétence</label>
|
<label for="system.appreciation.compMinimum">Jet d'appréciation seulement si qualité > compétence</label>
|
||||||
<input class="attribute-value" type="checkbox" name="system.appreciation.compMinimum" {{#if system.appreciation.compMinimum}}checked{{/if}}
|
<input name="system.appreciation.compMinimum"
|
||||||
data-toolTip="La qualité doit être supérieure à la compétence pour effectuer un jet d'apréciation"/>
|
class="attribute-value" type="checkbox" {{#if system.appreciation.compMinimum}}checked{{/if}}
|
||||||
|
data-toolTip="La qualité doit être supérieure à la compétence pour effectuer un jet d'apréciation"/>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user