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.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
|
||||
|
||||
- Correction du recul contre une entité de cauchemar (qui utilise le rêve comme force)
|
||||
|
||||
@@ -1120,49 +1120,27 @@ body {
|
||||
text-align: left;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .equipement-nom {
|
||||
flex-grow: 3;
|
||||
flex-grow: 4;
|
||||
flex-shrink: 2;
|
||||
margin: 0;
|
||||
justify-content: center;
|
||||
text-align: left;
|
||||
display: ruby;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .equipement-valeur {
|
||||
margin: 0;
|
||||
flex-grow: 1.5;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
text-align: center;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .equipement-detail {
|
||||
margin: 0;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon span.equipement-detail-buttons {
|
||||
margin: 0;
|
||||
flex-grow: 1.5;
|
||||
flex-shrink: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.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;
|
||||
min-width: max-content;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .blessure-control {
|
||||
flex-grow: 1;
|
||||
@@ -1526,9 +1504,20 @@ body {
|
||||
.system-foundryvtt-reve-de-dragon .competence-list .item-controls.hidden-controls {
|
||||
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-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-controls img {
|
||||
|
||||
@@ -393,49 +393,27 @@
|
||||
text-align: left;
|
||||
}
|
||||
.equipement-nom {
|
||||
flex-grow: 3;
|
||||
flex-grow: 4;
|
||||
flex-shrink: 2;
|
||||
margin: 0;
|
||||
justify-content: center;
|
||||
text-align: left;
|
||||
display: ruby;
|
||||
}
|
||||
.equipement-valeur {
|
||||
margin: 0;
|
||||
flex-grow: 1.5;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
text-align: center;
|
||||
}
|
||||
.equipement-detail {
|
||||
margin: 0;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
span.equipement-detail-buttons {
|
||||
margin: 0;
|
||||
flex-grow: 1.5;
|
||||
flex-shrink: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.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;
|
||||
min-width: max-content;
|
||||
}
|
||||
|
||||
.blessure-control {
|
||||
@@ -848,12 +826,20 @@
|
||||
.competence-list .item-controls.hidden-controls {
|
||||
display: none !important;
|
||||
}
|
||||
.competence-header .item-actions-controls{
|
||||
flex-shrink: 2;
|
||||
flex-grow: 2;
|
||||
}
|
||||
.item-actions-controls,
|
||||
.item-controls {
|
||||
vertical-align: super;
|
||||
// a {
|
||||
// }
|
||||
|
||||
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;
|
||||
img {
|
||||
vertical-align: text-bottom;
|
||||
display: inline;
|
||||
|
||||
220
module/actor.js
220
module/actor.js
@@ -256,7 +256,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
console.log('perte de rêve des enchantements', toUpdate)
|
||||
const messageUpdates = await Promise.all(
|
||||
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),
|
||||
content: messageUpdates.reduce(Misc.joining('<br>'))
|
||||
})
|
||||
@@ -322,8 +322,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
await this.setBonusPotionSoin(0);
|
||||
}
|
||||
await this.resetInfoSommeil()
|
||||
ChatMessage.create(message);
|
||||
setTimeout(() => this.sheet.render(), 20)
|
||||
await ChatMessage.create(message)
|
||||
}
|
||||
|
||||
async _recuperationSante(message) {
|
||||
@@ -364,7 +363,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
const message = {
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: ""
|
||||
};
|
||||
}
|
||||
|
||||
await this._recuperationSante(message)
|
||||
await this._recupereMoralChateauDormant(message)
|
||||
@@ -375,12 +374,12 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
await this.retourSust(message)
|
||||
await this.$perteReveEnchantementsChateauDormants()
|
||||
await this.$suppressionLancementsSort()
|
||||
await RdDCoeur.applyCoeurChateauDormant(this, message);
|
||||
await RdDCoeur.applyCoeurChateauDormant(this, message)
|
||||
if (message.content != "") {
|
||||
message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`;
|
||||
ChatMessage.create(message);
|
||||
message.content = `A la fin Chateau Dormant, ${message.content}<br>Un nouveau jour se lève`
|
||||
await ChatMessage.create(message)
|
||||
}
|
||||
await this.resetInfoSommeil();
|
||||
await this.resetInfoSommeil()
|
||||
}
|
||||
|
||||
async resetInfoSommeil() {
|
||||
@@ -536,37 +535,36 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
if (!options.grisReve) {
|
||||
ChatMessage.create(message);
|
||||
await ChatMessage.create(message)
|
||||
}
|
||||
if (options.chateauDormant) {
|
||||
await this.$dormirChateauDormant();
|
||||
await this.$dormirChateauDormant()
|
||||
}
|
||||
setTimeout(() => this.sheet.render(), 20)
|
||||
}
|
||||
|
||||
async reveilReveDeDragon(message, heures) {
|
||||
const restant = Math.max(this.system.sommeil?.heures - heures, 0)
|
||||
if (restant > 0) {
|
||||
await this.update({ 'system.sommeil': { heures: restant } });
|
||||
await this.update({ 'system.sommeil': { heures: restant } })
|
||||
}
|
||||
}
|
||||
|
||||
async $dormirDesHeures(message, heures, options) {
|
||||
const dormi = { heures: 0, etat: 'dort', jetsReve: [] };
|
||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||
await this.$recupererEthylisme(message);
|
||||
await this.$recupererEthylisme(message)
|
||||
if (options.grisReve) {
|
||||
await this.$recupererFatigue(message);
|
||||
await this.$recupererFatigue(message)
|
||||
}
|
||||
else if (!this.system.sommeil?.insomnie) {
|
||||
await this.$recupererFatigue(message);
|
||||
await this.$jetRecuperationReve(dormi, message);
|
||||
await this.$recupererFatigue(message)
|
||||
await this.$jetRecuperationReve(dormi, message)
|
||||
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 {
|
||||
if (!ReglesOptionnelles.isUsing("recuperation-reve")) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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 ExperienceLog.add(this, XP_TOPIC.XP, fromXp, toXp, competence.name, true)
|
||||
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 ExperienceLog.add(this, XP_TOPIC.XPSORT, fromXpSort, toXpSort, competence.name, true)
|
||||
if (toXpSort > fromXpSort) {
|
||||
RdDUtility.checkThanatosXP(competence)
|
||||
await RdDUtility.checkThanatosXP(competence)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -972,7 +970,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async actionRefoulement(item) {
|
||||
const refoulement = item?.system.refoulement ?? 0;
|
||||
const refoulement = item?.system.refoulement ?? 0
|
||||
if (refoulement > 0) {
|
||||
RdDConfirm.confirmer({
|
||||
settingConfirmer: "confirmation-refouler",
|
||||
@@ -980,8 +978,8 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
title: 'Confirmer la refoulement',
|
||||
buttonLabel: 'Refouler',
|
||||
onAction: async () => {
|
||||
await this.ajouterRefoulement(refoulement, `une queue ${item.name}`);
|
||||
await item.delete();
|
||||
await this.ajouterRefoulement(refoulement, `une queue ${item.name}`)
|
||||
await item.delete()
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -989,16 +987,18 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
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")
|
||||
await roll.evaluate()
|
||||
await roll.toMessage({ flavor: `${this.name} refoule ${refouler} pour ${value} points de refoulement (total: ${refoulement})` })
|
||||
if (roll.total <= refoulement) {
|
||||
refoulement = 0
|
||||
await this.update({ "system.reve.refoulement.value": 0 })
|
||||
await this.ajouterSouffle({ chat: true })
|
||||
}
|
||||
await this.update({ "system.reve.refoulement.value": refoulement })
|
||||
return roll;
|
||||
else {
|
||||
await this.update({ "system.reve.refoulement.value": refoulement })
|
||||
}
|
||||
return roll
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -1007,7 +1007,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
//souffle.id = undefined; //TBC
|
||||
await this.createEmbeddedDocuments('Item', [souffle])
|
||||
if (options.chat) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: this.name + " subit un Souffle de Dragon : " + souffle.name
|
||||
})
|
||||
@@ -1017,22 +1017,19 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async ajouterQueue(options = { chat: false }) {
|
||||
let queue;
|
||||
if (this.system.reve.reve.thanatosused) {
|
||||
queue = await RdDRollTables.getOmbre();
|
||||
const thanatos = this.system.reve.reve.thanatosused;
|
||||
const queue = (thanatos ? await RdDRollTables.getOmbre() : await RdDRollTables.getQueue())
|
||||
if (thanatos) {
|
||||
await this.update({ "system.reve.reve.thanatosused": false })
|
||||
}
|
||||
else {
|
||||
queue = await RdDRollTables.getQueue();
|
||||
}
|
||||
await this.createEmbeddedDocuments('Item', [queue]);
|
||||
await this.createEmbeddedDocuments('Item', [queue])
|
||||
if (options.chat) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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) {
|
||||
const innaccessible = this.buildTMRInnaccessible();
|
||||
let tmr = await TMRUtility.getTMRAleatoire(tmr => accessible(tmr) && !innaccessible.includes(tmr.coord));
|
||||
ChatMessage.create({
|
||||
const innaccessible = this.buildTMRInnaccessible()
|
||||
let tmr = await TMRUtility.getTMRAleatoire(tmr => accessible(tmr) && !innaccessible.includes(tmr.coord))
|
||||
await ChatMessage.create({
|
||||
content: `${raison} : ré-insertion aléatoire.`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
await this.forcerPositionTMRInconnue(tmr);
|
||||
return tmr;
|
||||
})
|
||||
await this.forcerPositionTMRInconnue(tmr)
|
||||
return tmr
|
||||
}
|
||||
|
||||
async forcerPositionTMRInconnue(tmr) {
|
||||
@@ -1167,14 +1164,14 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
async jetEndurance(resteEndurance = undefined) {
|
||||
const result = super.jetEndurance(resteEndurance);
|
||||
if (result.jetEndurance == 1) {
|
||||
ChatMessage.create({ content: await this._gainXpConstitutionJetEndurance() });
|
||||
await ChatMessage.create({ content: await this._gainXpConstitutionJetEndurance() })
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getSConst() { return RdDCarac.calculSConst(this.getConstitution()) }
|
||||
|
||||
|
||||
async _gainXpConstitutionJetEndurance() {
|
||||
await this.updateCaracXP('constitution', Misc.toInt(this.system.carac.constitution.xp) + 1)
|
||||
return `${this.name} a obtenu 1 sur son Jet d'Endurance et a gagné 1 point d'Expérience en Constitution. Ce point d'XP a été ajouté automatiquement.`;
|
||||
@@ -1188,7 +1185,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
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");
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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 = "") {
|
||||
let moral = parseInt(this.system.compteurs.moral.value)
|
||||
const moral = parseInt(this.system.compteurs.moral.value);
|
||||
if (ajustement != 0) {
|
||||
if (ajustement > 0 && bonmoment != "" && bonmoment != undefined) {
|
||||
await this.update({ 'system.compteurs.bonmoments': [...this.system.compteurs.bonmoments, bonmoment] })
|
||||
}
|
||||
const moralTheorique = moral + ajustement
|
||||
if (moralTheorique > 3) { // exaltation
|
||||
const exaltation = parseInt(this.system.compteurs.exaltation.value) + moralTheorique - 3
|
||||
await this.update({ 'system.compteurs.exaltation.value': exaltation })
|
||||
const newExaltation = parseInt(this.system.compteurs.exaltation.value) + Math.max(0, moralTheorique - 3)
|
||||
const newDissolution = parseInt(this.system.compteurs.dissolution.value) + Math.max(0, - moralTheorique - 3)
|
||||
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
|
||||
const dissolution = parseInt(this.system.compteurs.dissolution.value) - 3 - moralTheorique
|
||||
await this.update({ 'system.compteurs.dissolution.value': dissolution })
|
||||
if (ajustement > 0 && bonmoment != "" && bonmoment != undefined && !this.system.compteurs.bonmoments.includes(bonmoment)) {
|
||||
moralUpdates['system.compteurs.bonmoments'] = [...this.system.compteurs.bonmoments, bonmoment]
|
||||
}
|
||||
moral = Math.max(-3, Math.min(moralTheorique, 3));
|
||||
await this.update({ 'system.compteurs.moral.value': moral })
|
||||
await this.update(moralUpdates)
|
||||
return newMoral
|
||||
}
|
||||
return moral
|
||||
}
|
||||
@@ -1492,7 +1489,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
exaltation: exaltation
|
||||
};
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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
|
||||
}
|
||||
if (display) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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) {
|
||||
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 })
|
||||
}
|
||||
else {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: content
|
||||
});
|
||||
@@ -1698,22 +1695,22 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
isMauvaiseRencontre() { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective'
|
||||
let addMsg = "";
|
||||
let rencSpecial = EffetsDraconiques.mauvaiseRencontre(this);
|
||||
async isMauvaiseRencontre() { // Gestion queue/souffle 'Mauvaise Rencontre en Perpective'
|
||||
let addMsg = ""
|
||||
let rencSpecial = EffetsDraconiques.mauvaiseRencontre(this)
|
||||
if (rencSpecial) {
|
||||
if (rencSpecial.type != 'souffle') {
|
||||
this.deleteEmbeddedDocuments('Item', [rencSpecial.id]); // Suppression dans la liste des queues
|
||||
addMsg = " La queue a été supprimée de votre fiche automatiquement";
|
||||
await this.deleteEmbeddedDocuments('Item', [rencSpecial.id]) // Suppression dans la liste des queues
|
||||
addMsg = " La queue a été supprimée de votre fiche automatiquement"
|
||||
} 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,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
})
|
||||
}
|
||||
return rencSpecial;
|
||||
return rencSpecial
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -1723,7 +1720,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
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.`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
})
|
||||
}
|
||||
return countInertieDraconique + 1;
|
||||
}
|
||||
@@ -1731,11 +1728,11 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
/* -------------------------------------------- */
|
||||
async checkSoufflePeage(tmr) {
|
||||
if ((tmr.type == 'pont' || tmr.type == 'cite') && EffetsDraconiques.isPeage(this)) {
|
||||
await this.reveActuelIncDec(-1);
|
||||
ChatMessage.create({
|
||||
await this.reveActuelIncDec(-1)
|
||||
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).",
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1761,7 +1758,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
if (reveActuel > rollData.depenseReve) {
|
||||
// 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) {
|
||||
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')
|
||||
|
||||
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) {
|
||||
this.tmrApp?.close()
|
||||
@@ -2157,7 +2154,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
async appelDestinee(onSuccess = () => { }, onEchec = () => { }) {
|
||||
let destinee = this.system.compteurs.destinee?.value ?? 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 })
|
||||
onSuccess()
|
||||
}
|
||||
@@ -2192,10 +2189,10 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
if (this.checkDesirLancinant()) {
|
||||
// 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`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
})
|
||||
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);
|
||||
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.`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
}
|
||||
return countMonteeLaborieuse;
|
||||
return countMonteeLaborieuse
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -2374,9 +2371,9 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
async _doDisplayTMR(mode) {
|
||||
let isRapide = mode == "rapide";
|
||||
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) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
content: `Vous n'avez les ${minReveValue} Points de Reve nécessaires pour monter dans les Terres Médianes`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
});
|
||||
@@ -2418,15 +2415,16 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
if (!viewOnly) {
|
||||
await this.supprimerSignesDraconiques(it => it.system.ephemere && it.system.duree == '1 round', { render: false })
|
||||
await this.setEffect(STATUSES.StatusDemiReve, false)
|
||||
ChatUtility.tellToUserAndGM(message)
|
||||
await ChatUtility.tellToUserAndGM(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async supprimerSignesDraconiques(filter = it => true, options = { render: true }) {
|
||||
const signes = this.itemTypes[ITEM_TYPES.signedraconique].filter(filter)
|
||||
if (signes.length > 0) {
|
||||
this.deleteEmbeddedDocuments("Item", signes.map(item => item.id), options)
|
||||
const ids = this.itemTypes[ITEM_TYPES.signedraconique].filter(filter)
|
||||
.map(it => it.id)
|
||||
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)) {
|
||||
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>
|
||||
(${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 })
|
||||
this.computeEncTotal()
|
||||
if (isEquipe)
|
||||
this.verifierForceMin(item)
|
||||
await this.verifierForceMin(item)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2742,25 +2740,25 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async consommerPotionSoin(potion) {
|
||||
potion.alias = this.name;
|
||||
potion.supprimer = true;
|
||||
potion.alias = this.name
|
||||
potion.supprimer = true
|
||||
|
||||
if (potion.system.magique) {
|
||||
// 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) {
|
||||
await this.reveActuelIncDec(-1);
|
||||
potion.guerisonData = await this.buildPotionGuerisonList(potion.system.puissance);
|
||||
potion.guerisonMinutes = potion.guerisonData.pointsConsommes * 5;
|
||||
potion.guerisonData = await this.buildPotionGuerisonList(potion.system.puissance)
|
||||
potion.guerisonMinutes = potion.guerisonData.pointsConsommes * 5
|
||||
}
|
||||
}
|
||||
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),
|
||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-soin.hbs`, potion)
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
async setBonusPotionSoin(bonus) {
|
||||
@@ -2794,10 +2792,10 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
if (!potion.system.magique || potion.rolled.isSuccess) {
|
||||
this.bonusRepos = potion.system.herbebonus;
|
||||
}
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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.diminuerQuantiteObjet(herbeData._id, herbeData.nbBrins)
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.hbs`, {
|
||||
alias: this.getAlias(),
|
||||
@@ -2837,19 +2835,19 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async consommerPotionGenerique(potion) {
|
||||
potion.alias = this.name;
|
||||
potion.alias = this.name
|
||||
|
||||
if (potion.system.magique) {
|
||||
// Gestion de la résistance:
|
||||
potion.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8);
|
||||
if (potion.rolled.isEchec) {
|
||||
await this.reveActuelIncDec(-1);
|
||||
await this.reveActuelIncDec(-1)
|
||||
}
|
||||
}
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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));
|
||||
if (draconique) {
|
||||
await draconique.onActorCreateOwned(this, item)
|
||||
this.notifyGestionTeteSouffleQueue(item, draconique.manualMessage());
|
||||
await this.notifyGestionTeteSouffleQueue(item, draconique.manualMessage());
|
||||
}
|
||||
await this.setInfoSommeilInsomnie();
|
||||
}
|
||||
@@ -2968,8 +2966,8 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
notifyGestionTeteSouffleQueue(item, manualMessage = true) {
|
||||
ChatMessage.create({
|
||||
async notifyGestionTeteSouffleQueue(item, manualMessage = true) {
|
||||
await ChatMessage.create({
|
||||
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 : ''}`
|
||||
});
|
||||
|
||||
@@ -169,10 +169,11 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
}
|
||||
|
||||
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)) {
|
||||
await effect.delete();
|
||||
ChatMessage.create({ content: `${this.getAlias()} n'est plus ${Misc.lowerFirst(game.i18n.localize(effect.system.label))} !` });
|
||||
await effect.delete()
|
||||
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)
|
||||
}
|
||||
|
||||
verifierForceMin(item) { }
|
||||
async verifierForceMin(item) { }
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async encaisser() { await RdDEncaisser.encaisser(this) }
|
||||
@@ -675,10 +676,10 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
if (!encaissement.hasPlayerOwner && encaissement.endurance != 0) {
|
||||
encaissement = foundry.utils.duplicate(encaissement)
|
||||
encaissement.isGM = true
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getGMs(),
|
||||
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() {
|
||||
const endurance = this.actor.getEnduranceActuelle()
|
||||
const result = await this.actor.jetEndurance(endurance);
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
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é' : ''}`,
|
||||
whisper: ChatUtility.getOwners(this.actor)
|
||||
|
||||
@@ -351,11 +351,10 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
|
||||
/* -------------------------------------------- */
|
||||
async jetDeVie() {
|
||||
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 !!!!!`,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
})
|
||||
return
|
||||
}
|
||||
const jetDeVie = await RdDDice.roll("1d20");
|
||||
const sConst = this.getSConst();
|
||||
@@ -380,7 +379,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve {
|
||||
else if (prochainJet > 0) {
|
||||
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,
|
||||
whisper: ChatUtility.getOwners(this)
|
||||
})
|
||||
|
||||
@@ -240,7 +240,7 @@ export class RdDBaseActor extends Actor {
|
||||
renderAfterDelay(currentCounter) {
|
||||
setTimeout(async () => {
|
||||
if (currentCounter == this.refreshDelayCounter) {
|
||||
this.sheet?.render(true)
|
||||
this.sheet?.render()
|
||||
this.refreshDelayCounter = 0
|
||||
}
|
||||
else {
|
||||
@@ -450,7 +450,7 @@ export class RdDBaseActor extends Actor {
|
||||
msg = "Vous n'avez pas assez d'argent pour payer cette somme !";
|
||||
}
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
content: msg
|
||||
})
|
||||
@@ -494,7 +494,7 @@ export class RdDBaseActor extends Actor {
|
||||
await Monnaie.optimiserFortune(this, sols + this.getFortune());
|
||||
|
||||
RdDAudio.PlayContextAudio("argent"); // Petit son
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
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);
|
||||
chatAchatItem.quantiteTotal = quantite;
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
user: achat.userId,
|
||||
speaker: { alias: (acheteur ?? vendeur).getAlias() },
|
||||
whisper: ChatUtility.getOwners(this),
|
||||
@@ -893,7 +893,7 @@ export class RdDBaseActor extends Actor {
|
||||
system: { description: this.system.description }
|
||||
}
|
||||
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) {
|
||||
|
||||
@@ -83,6 +83,7 @@ export class RdDEntite extends RdDBaseActorReve {
|
||||
if (this.isEntiteNonIncarnee()) {
|
||||
return
|
||||
}
|
||||
encaissement.isEntiteIncarnee = true
|
||||
const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance);
|
||||
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))
|
||||
}
|
||||
|
||||
static async enrichHTML(text, object, options = {showlink:true}) {
|
||||
static async enrichHTML(text, object, options = { showlink: true }) {
|
||||
const context = {
|
||||
text,
|
||||
object,
|
||||
@@ -70,9 +70,7 @@ export class RdDTextEditor {
|
||||
options: { showLink: false }
|
||||
},
|
||||
param)
|
||||
ChatMessage.create({
|
||||
content: text
|
||||
})
|
||||
await ChatMessage.create({ content: text })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -116,20 +116,20 @@ export class ChatUtility {
|
||||
return messageData
|
||||
}
|
||||
|
||||
static tellToUser(message) {
|
||||
ChatMessage.create({ content: message, user: game.user.id, whisper: [game.user.id] });
|
||||
static async tellToUser(message) {
|
||||
await ChatMessage.create({ content: message, user: game.user.id, whisper: [game.user.id] });
|
||||
}
|
||||
|
||||
static tellToGM(message) {
|
||||
ChatMessage.create({
|
||||
static async tellToGM(message) {
|
||||
await ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: message,
|
||||
whisper: ChatUtility.getGMs()
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
static tellToUserAndGM(message) {
|
||||
ChatMessage.create({
|
||||
static async tellToUserAndGM(message) {
|
||||
await ChatMessage.create({
|
||||
user: game.user.id,
|
||||
content: message,
|
||||
whisper: ChatUtility.getUserAndGMs()
|
||||
|
||||
@@ -71,28 +71,32 @@ export class RdDCoeur {
|
||||
}
|
||||
|
||||
static async applyCoeurChateauDormant(actor, message) {
|
||||
const newSuivants = foundry.utils.duplicate(actor.system.subacteurs.suivants)
|
||||
let count = 0
|
||||
newSuivants.forEach(async link => {
|
||||
const suivant = game.actors.get(link.id)
|
||||
const prochainCoeur = link.prochainCoeur ?? 0;
|
||||
const coeurCourant = link.coeur ?? 0;
|
||||
const diff = prochainCoeur - coeurCourant
|
||||
if (diff < 0) {
|
||||
await actor.moralIncDec(-4);
|
||||
link.coeur = Math.max(0, coeurCourant - 1)
|
||||
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.`
|
||||
count++
|
||||
}
|
||||
else if (diff > 0) {
|
||||
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}.`
|
||||
link.prochainCoeur = link.coeur
|
||||
count++
|
||||
}
|
||||
let ajustMoral = 0
|
||||
const newSuivants = actor.system.subacteurs.suivants.filter(link => game.actors.get(link.id) != undefined)
|
||||
.map(link => {
|
||||
const suivant = game.actors.get(link.id)
|
||||
const prochainCoeur = link.prochainCoeur ?? 0
|
||||
const coeurCourant = link.coeur ?? 0
|
||||
const diff = prochainCoeur - coeurCourant
|
||||
if (diff < 0) {
|
||||
ajustMoral -= 4
|
||||
link.coeur = Math.max(0, coeurCourant - 1)
|
||||
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.`
|
||||
count++
|
||||
}
|
||||
if (diff > 0) {
|
||||
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}.`
|
||||
link.prochainCoeur = link.coeur
|
||||
count++
|
||||
}
|
||||
return foundry.utils.duplicate(link)
|
||||
})
|
||||
if (ajustMoral != 0) {
|
||||
await actor.moralIncDec(ajustMoral, 'Coeur')
|
||||
}
|
||||
)
|
||||
if (count > 0) {
|
||||
await actor.update({ 'system.subacteurs.suivants': newSuivants });
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ export class Distance {
|
||||
static isVisible(token, defenderToken) {
|
||||
// TODO: regarder les StatusEffect aveuglé?
|
||||
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
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { TMRUtility } from "./tmr-utility.js";
|
||||
export class DialogCreateSigneDraconique extends Dialog {
|
||||
|
||||
static async createSigneForActors() {
|
||||
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
|
||||
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ ephemere: true });
|
||||
let dialogData = {
|
||||
signe: signe,
|
||||
tmrs: TMRUtility.buildSelectionTypesTMR(signe.system.typesTMR),
|
||||
@@ -36,25 +36,25 @@ export class DialogCreateSigneDraconique extends Dialog {
|
||||
super(conf, options);
|
||||
this.dialogData = dialogData;
|
||||
}
|
||||
|
||||
|
||||
async _onCreerSigneActeurs() {
|
||||
await this.html.find("[name='signe.system.ephemere']").change();
|
||||
await this.html.find(".signe-xp-sort").change();
|
||||
this.validerSigne();
|
||||
this.dialogData.actors.filter(it => it.selected)
|
||||
.map(it => game.actors.get(it.id))
|
||||
.forEach(actor => this._createSigneForActor(actor, this.dialogData.signe));
|
||||
await this.html.find("[name='signe.system.ephemere']").change()
|
||||
await this.html.find(".signe-xp-sort").change()
|
||||
this.validerSigne()
|
||||
await Promise.all(this.dialogData.actors.filter(it => it.selected)
|
||||
.map(it => game.actors.get(it.id))
|
||||
.map(async actor => await this._createSigneForActor(actor, this.dialogData.signe)))
|
||||
}
|
||||
|
||||
|
||||
async _createSigneForActor(actor, signe) {
|
||||
actor.createEmbeddedDocuments("Item", [signe]);
|
||||
ChatMessage.create({
|
||||
await actor.createEmbeddedDocuments("Item", [signe]);
|
||||
await ChatMessage.createChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(actor),
|
||||
content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.hbs", {
|
||||
signe: signe,
|
||||
alias: actor.getAlias()
|
||||
})
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
validerSigne() {
|
||||
@@ -67,7 +67,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
||||
this.dialogData.signe.system.duree = this.html.find("[name='signe.system.duree']").val();
|
||||
this.dialogData.signe.system.typesTMR = TMRUtility.buildListTypesTMRSelection(this.dialogData.tmrs);
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
@@ -81,7 +81,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
||||
}
|
||||
|
||||
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.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.dialogData.tmrs = TMRUtility.buildSelectionTypesTMR(newSigne.system.typesTMR);
|
||||
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);
|
||||
}
|
||||
@@ -113,7 +113,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
||||
onSelectTmr(event) {
|
||||
const tmrName = this.html.find(event.currentTarget)?.data("tmr-name");
|
||||
const onTmr = this.dialogData.tmrs.find(it => it.name == tmrName);
|
||||
if (onTmr){
|
||||
if (onTmr) {
|
||||
onTmr.selected = event.currentTarget.checked;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ export class RdDItemCompetence extends RdDItem {
|
||||
archetypeWarning: newNiv > this.system.niveau_archetype
|
||||
}
|
||||
if (display) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this.actor),
|
||||
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)
|
||||
|
||||
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 },
|
||||
properties: this.getProprietes(),
|
||||
}
|
||||
renderTemplate(this.getChatItemTemplate(), chatData).then(html => {
|
||||
renderTemplate(this.getChatItemTemplate(), chatData).then(async html => {
|
||||
let chatOptions = RdDUtility.chatDataSetup(html, modeOverride);
|
||||
ChatMessage.create(chatOptions)
|
||||
});
|
||||
await ChatMessage.create(chatOptions)
|
||||
})
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
@@ -21,7 +21,7 @@ export class RdDItemArmure extends RdDItem {
|
||||
if (deterioration >= 10) {
|
||||
deterioration -= 10;
|
||||
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({
|
||||
'system.deterioration': deterioration,
|
||||
|
||||
@@ -54,7 +54,7 @@ export class RdDItemBlessure extends RdDItem {
|
||||
}
|
||||
await this.createBlessure(actor, gravite)
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
//TODO: hbs
|
||||
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)
|
||||
|
||||
@@ -22,7 +22,7 @@ export class RdDItemMaladie extends RdDItem {
|
||||
const souffrance = mal.system.identifie
|
||||
? `de ${mal.name}`
|
||||
: `d'un mal inconnu`
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
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 !`
|
||||
})
|
||||
|
||||
@@ -354,7 +354,7 @@ class _10_4_6_ServicesEnCommerces extends Migration {
|
||||
}
|
||||
async transformInventaireCommerce(service) {
|
||||
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());
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ class _10_7_0_MigrationBlessures extends Migration {
|
||||
'system.blessures.graves.liste': [],
|
||||
'system.blessures.critiques.liste': []
|
||||
})
|
||||
}));
|
||||
}))
|
||||
}
|
||||
creerBlessure(gravite, graviteTexte, blessure, timestamp) {
|
||||
const dateBlessure = timestamp.addJours(-blessure.jours);
|
||||
@@ -786,6 +786,6 @@ export class Migrations {
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
static stripHtml(html)
|
||||
{
|
||||
const tmp = document.createElement("DIV")
|
||||
tmp.innerHTML = html
|
||||
return tmp.textContent || tmp.innerText || ""
|
||||
}
|
||||
|
||||
static toSignedString(number) {
|
||||
const value = parseInt(number)
|
||||
const isPositiveNumber = value != NaN && value > 0;
|
||||
|
||||
@@ -168,7 +168,7 @@ export class Apprecier {
|
||||
|
||||
async rollMoral(moral = undefined) {
|
||||
if (this.raisons.length > 0) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this.actor),
|
||||
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
|
||||
// TODO: jet de moral
|
||||
await this.actor.jetDeMoral(moral, this.appreciation.bonmoment)
|
||||
}
|
||||
}
|
||||
@@ -199,8 +199,8 @@ export class RdDCombatManager extends Combat {
|
||||
<div>
|
||||
Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}.
|
||||
</div>`
|
||||
ChatMessage.create({ content: msg });
|
||||
game.combat.setInitiative(combatant._id, initData.init);
|
||||
ChatMessage.create({ content: msg })
|
||||
game.combat.setInitiative(combatant._id, initData.init)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -610,7 +610,7 @@ export class RdDCombat {
|
||||
async proposerAjustementTirLancer(rollData) {
|
||||
if (['tir', 'lancer'].includes(rollData.competence.system.categorie)) {
|
||||
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`,
|
||||
whisper: ChatUtility.getGMs()
|
||||
})
|
||||
@@ -625,7 +625,7 @@ export class RdDCombat {
|
||||
},
|
||||
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),
|
||||
whisper: ChatUtility.getGMs()
|
||||
})
|
||||
@@ -756,7 +756,7 @@ export class RdDCombat {
|
||||
let rollData = this._prepareAttaque(competence, arme)
|
||||
console.log("RdDCombat.attaque >>>", rollData)
|
||||
if (arme) {
|
||||
this.attacker.verifierForceMin(arme);
|
||||
await this.attacker.verifierForceMin(arme);
|
||||
}
|
||||
await this.proposerAjustementTirLancer(rollData)
|
||||
|
||||
|
||||
@@ -27,20 +27,8 @@ const rddRollNumeric = /^(\d+)\s*([\+\-]?\d+)?\s*(s)?/;
|
||||
export class RdDCommands {
|
||||
|
||||
static init() {
|
||||
const rddCommands = new RdDCommands();
|
||||
game.system.rdd.commands = rddCommands;
|
||||
|
||||
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;
|
||||
});
|
||||
|
||||
game.system.rdd.commands = new RdDCommands()
|
||||
Hooks.on("chatMessage", (chatLog, message, msg) => game.system.rdd.commands.onChatMessage(message, msg))
|
||||
}
|
||||
|
||||
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 */
|
||||
processChatCommand(commandLine, content = '', msg = {}) {
|
||||
@@ -368,7 +367,7 @@ export class RdDCommands {
|
||||
|
||||
const carac = params[0];
|
||||
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.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),
|
||||
whisper: ChatUtility.getGMs()
|
||||
});
|
||||
|
||||
@@ -49,7 +49,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
await PixiTMR.init()
|
||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.hbs', tmrData);
|
||||
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)
|
||||
}
|
||||
@@ -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')));
|
||||
|
||||
// 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;
|
||||
|
||||
// Le reste...
|
||||
@@ -305,8 +305,8 @@ export class RdDTMRDialog extends Dialog {
|
||||
await this.$checkQuitterTMR();
|
||||
}
|
||||
|
||||
calculCoutMonteeTMR() {
|
||||
return ((this.tmrdata.isRapide && !EffetsDraconiques.isDeplacementAccelere(this.actor)) ? -2 : -1) - this.actor.countMonteeLaborieuse();
|
||||
async calculCoutMonteeTMR() {
|
||||
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.message = this.$formatMessageRencontre(rencData, result.message);
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this.actor),
|
||||
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()
|
||||
if (myRoll == 7) {
|
||||
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 {
|
||||
ChatUtility.tellToUser(myRoll + ": Pas de rencontre en " + coordTMR);
|
||||
return undefined;
|
||||
@@ -708,7 +708,7 @@ export class RdDTMRDialog extends Dialog {
|
||||
return;
|
||||
}
|
||||
rollData.poesie = await Poetique.getExtrait();
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this.actor),
|
||||
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) {
|
||||
if (!(TMRUtility.isCaseHumide(tmr) || this.isCaseHumideAdditionelle(tmr))) {
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
if (this.isCaseMaitrisee(tmr.coord)) {
|
||||
ChatMessage.create({
|
||||
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)
|
||||
});
|
||||
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.",
|
||||
whisper: ChatUtility.getOwners(this.actor)
|
||||
});
|
||||
return true;
|
||||
return true
|
||||
}
|
||||
if (this.isCaseInondee(tmr.coord)) {
|
||||
ChatMessage.create({
|
||||
content: tmr.label + ": cette case est inondée, elle doit être maîtrisée comme une case humide.",
|
||||
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.poesie = await Poetique.getExtrait()
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(this.actor),
|
||||
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 reserveExtensible = this.isReserveExtensible(coord);
|
||||
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`, {
|
||||
actor: this.actor,
|
||||
sorts: sorts,
|
||||
@@ -892,13 +892,13 @@ export class RdDTMRDialog extends Dialog {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
lancerSortEnReserve(coord, sortId) {
|
||||
async lancerSortEnReserve(coord, sortId) {
|
||||
const sort = this.getSortsReserve(coord)
|
||||
.find(it => it.id == sortId);
|
||||
if (sort) {
|
||||
this.processSortReserve(sort);
|
||||
await this.processSortReserve(sort);
|
||||
} else {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
content: "Une erreur est survenue : impossible de récupérer le sort en réserve demandé.",
|
||||
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-creature.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-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-categorie.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/commerce-inventaire.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire-item.hbs',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/actor/tooltip-bonmoments.hbs',
|
||||
//Items
|
||||
'systems/foundryvtt-reve-de-dragon/templates/scripts/autocomplete-script.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-accord', (genre, ...args) => Grammar.accord(genre, args));
|
||||
Handlebars.registerHelper('json-stringify', object => JSON.stringify(object))
|
||||
Handlebars.registerHelper('escapeHtml', object => foundry.utils.escapeHTML(object))
|
||||
|
||||
// math
|
||||
Handlebars.registerHelper('math-sum', (...values) => values.slice(0, -1).reduce(Misc.sum(), 0))
|
||||
@@ -680,7 +682,7 @@ export class RdDUtility {
|
||||
encaissement.dmg = dmg
|
||||
if (ReglesOptionnelles.isUsing('localisation-aleatoire')) {
|
||||
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 {
|
||||
encaissement.dmg.loc = { label: '' }
|
||||
@@ -689,9 +691,9 @@ export class RdDUtility {
|
||||
encaissement.armure = armure
|
||||
encaissement.penetration = dmg.penetration
|
||||
encaissement.total = jetTotal
|
||||
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20);
|
||||
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20);
|
||||
return encaissement;
|
||||
encaissement.vie = await RdDUtility._evaluatePerte(encaissement.vie, over20)
|
||||
encaissement.endurance = await RdDUtility._evaluatePerte(encaissement.endurance, over20)
|
||||
return encaissement
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -750,12 +752,12 @@ export class RdDUtility {
|
||||
actor.tmrApp.positionnerDemiReve(coord);
|
||||
});
|
||||
// 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 sortId = event.currentTarget.attributes['data-sort-id'].value;
|
||||
let actorId = event.currentTarget.attributes['data-actor-id'].value;
|
||||
let actor = game.actors.get(actorId);
|
||||
actor.tmrApp.lancerSortEnReserve(coord, sortId);
|
||||
await actor.tmrApp.lancerSortEnReserve(coord, sortId);
|
||||
// TODO: supprimer le message?
|
||||
});
|
||||
|
||||
@@ -844,12 +846,12 @@ export class RdDUtility {
|
||||
return game.user.character;
|
||||
}
|
||||
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é";
|
||||
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) {
|
||||
@@ -942,9 +944,9 @@ export class RdDUtility {
|
||||
content: `<p>Etes vous certain de vouloir supprimer: ${item.name}?</p>`,
|
||||
title: `Supprimer ${item.name}`,
|
||||
buttonLabel: "Supprimer",
|
||||
onAction: () => {
|
||||
onAction: async () => {
|
||||
console.log('Delete : ', itemId);
|
||||
actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
|
||||
await actor.deleteEmbeddedDocuments('Item', [itemId], { renderSheet: false });
|
||||
}
|
||||
};
|
||||
if (item.isConteneurNonVide()) {
|
||||
@@ -955,9 +957,9 @@ export class RdDUtility {
|
||||
'deleteall': {
|
||||
icon: '<i class="fas fa-check"></i>',
|
||||
label: "Supprimer conteneur et contenu",
|
||||
callback: () => {
|
||||
callback: async () => {
|
||||
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')) {
|
||||
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(),
|
||||
content: message
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Grammar } from "../grammar.js"
|
||||
import { CARACS } from "../rdd-carac.js"
|
||||
import { ReglesOptionnelles } from "../settings/regles-optionnelles.js"
|
||||
import { ROLL_TYPE_SORT } from "./roll-constants.mjs"
|
||||
import { RollPartCheckbox } from "./roll-part-checkbox.mjs"
|
||||
@@ -20,7 +21,7 @@ export class RollPartAstrologique extends RollPartCheckbox {
|
||||
}
|
||||
|
||||
isJetChance(rollData) {
|
||||
return Grammar.includesLowerCaseNoAccent(rollData.current.carac.key, 'chance')
|
||||
return Grammar.includesLowerCaseNoAccent(rollData.current.carac.key, CARACS.CHANCE)
|
||||
}
|
||||
|
||||
$isUsingAstrologie() {
|
||||
|
||||
@@ -39,17 +39,17 @@ export class RollPartCuisine extends RollPartSelect {
|
||||
loadRefs(rollData) {
|
||||
const refs = this.getRefs(rollData)
|
||||
const actor = rollData.active.actor
|
||||
const cuisine = actor.getCompetence('Cuisine')
|
||||
refs.cuisine = actor.getCompetence('Cuisine')
|
||||
|
||||
const recettes = actor.items
|
||||
.filter(it => it.type == ITEM_TYPES.recettecuisine)
|
||||
.map(it => RollPartCuisine.$extractPreparationRecette(cuisine, it))
|
||||
.map(it => RollPartCuisine.$extractPreparationRecette(refs.cuisine, it))
|
||||
|
||||
const ingredientsBruts = actor.items
|
||||
.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) {
|
||||
this.$selectPreparation(rollData)
|
||||
this.$restoreSavedOptions(rollData)
|
||||
|
||||
@@ -280,7 +280,7 @@ export class RdDCalendrier extends Application {
|
||||
/* -------------------------------------------- */
|
||||
async setNewTimestamp(newTimestamp) {
|
||||
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);
|
||||
if (oldTimestamp.indexDate + 1 == newTimestamp.indexDate && ReglesOptionnelles.isUsing("chateau-dormant-gardien")) {
|
||||
await DialogChateauDormant.create();
|
||||
|
||||
@@ -103,7 +103,7 @@ export class EffetsRencontre {
|
||||
tete: context.rolled.isPart,
|
||||
poesie: await Poetique.getExtrait()
|
||||
})
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(context.actor),
|
||||
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());
|
||||
}
|
||||
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(context.actor),
|
||||
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) {
|
||||
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
if (existants.length > 0) {
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
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!"
|
||||
})
|
||||
}
|
||||
else {
|
||||
let cites = TMRUtility.filterTMR(it => it.type == 'cite');
|
||||
let cites = TMRUtility.filterTMR(it => it.type == 'cite')
|
||||
for (let tmr of cites) {
|
||||
await this.createCaseTmr(actor, 'Présent', tmr, tete.id);
|
||||
}
|
||||
@@ -43,7 +43,7 @@ export class PresentCites extends Draconique {
|
||||
async choisirUnPresent(casetmr, onChoixPresent) {
|
||||
const presents = await game.system.rdd.rencontresTMR.getPresentsCite()
|
||||
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({
|
||||
title: "Présent des cités",
|
||||
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) {
|
||||
// La queue se transforme en idée fixe
|
||||
const ideeFixe = await RdDRollTables.getIdeeFixe();
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(actor),
|
||||
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)
|
||||
.forEach(async it => {
|
||||
const perteFatigue = fatigueBase + it.ajustement
|
||||
ChatMessage.create({
|
||||
await ChatMessage.create({
|
||||
whisper: ChatUtility.getOwners(it.actor),
|
||||
content: await renderTemplate(
|
||||
'systems/foundryvtt-reve-de-dragon/templates/voyage/chat-fatigue_voyage.hbs',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "foundryvtt-reve-de-dragon",
|
||||
"title": "Rêve de Dragon",
|
||||
"version": "13.0.21",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.0/rddsystem.zip",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/13.0.0/system.json",
|
||||
"version": "13.0.36",
|
||||
"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.36/system.json",
|
||||
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
@@ -13,17 +13,17 @@
|
||||
<li data-attribute="resistance" class="flexrow">
|
||||
<span class="carac-label">Résistance</span>
|
||||
<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>
|
||||
</li>
|
||||
<li data-attribute="structure" class="flexrow">
|
||||
<span class="carac-label">Structure</span>
|
||||
<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>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -61,23 +61,23 @@
|
||||
</li>
|
||||
<li class="caracteristique flexrow list-item">
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
@@ -16,10 +16,12 @@
|
||||
{{#if (or options.isGM (gt system.attributs.protection.value 0))}}
|
||||
<li class="caracteristique flexrow list-item">
|
||||
<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>
|
||||
{{/if}}
|
||||
<li class="caracteristique flexrow list-item" >
|
||||
<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>
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
<li class="item item-blessure flexrow list-item blessure-active-{{lowercase system.label}}" data-item-id="{{id}}"
|
||||
data-tooltip="Blessure {{system.label}}">
|
||||
<span class="blessure-control">
|
||||
<span class="blessure-control flexrow">
|
||||
<img class="sheet-competence-img" src="{{img}}" />
|
||||
{{system.label}}
|
||||
{{#if (gt system.gravite 0)}}
|
||||
{{system.label}}
|
||||
{{/if}}
|
||||
</span>
|
||||
{{#if (gt system.gravite 6)}}
|
||||
<span class="flexrow"></span>
|
||||
<span class="flexrow"></span>
|
||||
<span class="flexrow"></span>
|
||||
{{else}}
|
||||
<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}}
|
||||
{{#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}}
|
||||
{{else}}
|
||||
<label>{{system.premierssoins.tache}} / {{system.gravite}}</label>
|
||||
@@ -20,18 +24,22 @@
|
||||
</span>
|
||||
<span class="flexrow">
|
||||
{{#if system.premierssoins.done}}
|
||||
<input type="checkbox" class="blessure-soinscomplets-done" name="blessure.{{id}}.system.soinscomplets.done" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
||||
{{#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}}"/>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<label>Difficulté {{system.difficulte}}</label>
|
||||
<input name="blessure.{{id}}.system.soinscomplets.done" type="checkbox" class="blessure-soinscomplets-done" {{#if system.soinscomplets.done}}checked{{/if}}/>
|
||||
{{#if system.soinscomplets.done}}
|
||||
<input name="blessure.{{id}}.system.soinscomplets.bonus" data-dtype="Number" type="text" class="blessure-soinscomplets-bonus number-x2"
|
||||
value="{{system.soinscomplets.bonus}}" min="0" max="3"/>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
<span class="flexrow">
|
||||
{{#unless system.soinscomplets.done}}{{system.difficulte}}{{/unless}}
|
||||
</span>
|
||||
{{/if}}
|
||||
<span>
|
||||
{{#if system.origine}}<span>Par {{system.origine}}</span>{{/if}}
|
||||
{{#if (regle-optionnelle 'localisation-aleatoire')}}
|
||||
{{#if system.localisation}}<span>{{system.localisation}}</span>{{/if}}
|
||||
{{/if}}
|
||||
</span>
|
||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
||||
</li>
|
||||
|
||||
@@ -13,10 +13,14 @@
|
||||
|
||||
<ul class="item-list alterne-list">
|
||||
<li class="competence-header flexrow" >
|
||||
<span></span>
|
||||
<span>Premiers soins</span>
|
||||
<span>Soins complets</span>
|
||||
<span>Soins</span>
|
||||
<span>premiers</span>
|
||||
<span>complets</span>
|
||||
<span>Diff</span>
|
||||
<span>Source</span>
|
||||
{{#if (regle-optionnelle 'localisation-aleatoire')}}
|
||||
<span>Loc.</span>
|
||||
{{/if}}
|
||||
<span>Actions</span>
|
||||
</li>
|
||||
{{#each blessures as |blessure|}}
|
||||
|
||||
@@ -21,58 +21,58 @@
|
||||
</li>
|
||||
<br>
|
||||
<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>
|
||||
<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-heureux" data-tooltip="Jet de moral situation heureuse"><i class="fa-regular fa-face-smile"></i></a>
|
||||
</span>
|
||||
</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 class="caracteristique flexrow list-item">
|
||||
<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>
|
||||
<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 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>
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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>
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<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>
|
||||
</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>
|
||||
|
||||
<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">
|
||||
<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>
|
||||
<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 class="caracteristique flexrow list-item">
|
||||
<label></label>
|
||||
<label></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"/>
|
||||
</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>
|
||||
<input name="system.compteurs.eau.value" class="derivee-value" type="number" data-dtype="Number" value="{{system.compteurs.eau.value}}" />
|
||||
</li>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
<li class="caracteristique flexrow list-item {{#if carac.isLevelUp}}xp-level-up{{/if}}" data-attribute="{{key}}">
|
||||
{{#if (eq key 'taille')}}
|
||||
<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"/>
|
||||
{{else}}
|
||||
{{#if (actor-default @root.type 'carac' key 'derivee')}}
|
||||
@@ -23,9 +25,12 @@
|
||||
{{else}}
|
||||
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
||||
{{/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">
|
||||
<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}}"
|
||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
||||
/>
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
<div class="form-group">
|
||||
<span>
|
||||
<label for="system.pourcentage">Appliquer un pourcentage sur les prix</label>
|
||||
<input {{@root.disabled}} class="attribute-value" type="number" data-dtype="Number"
|
||||
name="system.pourcentage" value="{{system.pourcentage}}"
|
||||
min="20" max="500" step="5"/>
|
||||
<input name="system.pourcentage" class="attribute-value" type="number" data-dtype="Number"
|
||||
value="{{system.pourcentage}}" min="20" max="500" step="5"
|
||||
{{@root.disabled}} />
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
@@ -40,13 +40,12 @@
|
||||
</div>
|
||||
<hr>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/commerce-inventaire.hbs"}}
|
||||
{{log @root.options}}
|
||||
{{#unless system.illimite}}
|
||||
|
||||
{{#if @root.options.isObserver}}
|
||||
<hr>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/inventaire-monnaie.hbs"}}
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
|
||||
<br>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/actor/editor-notes-mj.hbs"}}
|
||||
<br>
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
</a>
|
||||
</span>
|
||||
{{#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)))}}
|
||||
{{#if options.isOwner}}
|
||||
<a class="item-quantite-moins"><i class="fa-solid fa-square-minus"></i></a>
|
||||
{{/if}}
|
||||
<input {{#unless options.isOwner}}disabled{{/unless}} type="number" data-dtype="Number"
|
||||
class="item-quantite number-x3" name="items[{{item._id}}].system.quantite"
|
||||
value="{{item.system.quantite}}" />
|
||||
<input name="items[{{item._id}}].system.quantite"
|
||||
class="item-quantite number-x3" type="number" data-dtype="Number"
|
||||
value="{{item.system.quantite}}" {{#unless options.isOwner}}disabled{{/unless}} />
|
||||
{{#if options.isOwner}}
|
||||
<a class="item-quantite-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||
{{/if}}
|
||||
@@ -30,13 +30,10 @@
|
||||
{{/unless}}
|
||||
<span class="equipement-detail">
|
||||
{{#unless (and (eq item.type 'conteneur') (not vide))}}
|
||||
<input {{#unless options.isOwner}}disabled{{/unless}} type="number" data-dtype="Number"
|
||||
class="input-prix number-x3 item-cout" name="items[{{item._id}}].system.cout"
|
||||
{{#if options.isObserver}}
|
||||
value="{{numberFormat item.system.cout decimals=2 sign=false}}"
|
||||
{{else}}
|
||||
value="{{numberFormat (calculerPrixCommercant item) decimals=2 sign=false}}"
|
||||
{{/if}} />
|
||||
<input name="items[{{item._id}}].system.cout"
|
||||
class="input-prix number-x3 item-cout" type="number" data-dtype="Number"
|
||||
value="{{numberFormat (ifThen options.isObserver item.system.cout (calculerPrixCommercant item)) decimals=2 sign=false}}"
|
||||
{{#unless options.isOwner}}disabled{{/unless}} />
|
||||
{{/unless}}
|
||||
</span>
|
||||
{{>'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>
|
||||
{{/unless}}
|
||||
<span class="equipement-detail">Prix (sols)</span>
|
||||
<span class="equipement-actions">Actions</span>
|
||||
<span class="item-actions-controls">Actions</span>
|
||||
</li>
|
||||
{{#each (trier inventaires) as |item id|}}
|
||||
{{#unless item.estContenu}}
|
||||
|
||||
@@ -8,15 +8,14 @@
|
||||
<img class="sheet-competence-img" src="{{comp.img}}" data-tooltip="{{comp.name}}"/>
|
||||
<span>{{comp.name}}</span>
|
||||
</a>
|
||||
<input class="competence-carac creature-carac" type="text" compname="{{comp.name}}" name="{{comp._id}}.carac"
|
||||
value="{{comp.system.carac_value}}" data-dtype="number"
|
||||
<input name="{{comp._id}}.carac" class="competence-carac creature-carac" type="number" data-dtype="Number"
|
||||
compname="{{comp.name}}" value="{{comp.system.carac_value}}"
|
||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}/>
|
||||
<input class="competence-value creature-niveau" type="text" data-dtype="number"
|
||||
compname="{{comp.name}}" name="{{comp._id}}.niveau"
|
||||
value="{{plusMoins comp.system.niveau}}"
|
||||
<input name="{{comp._id}}.niveau" class="competence-value creature-niveau" type="text" data-dtype="Number"
|
||||
compname="{{comp.name}}" value="{{plusMoins comp.system.niveau}}"
|
||||
{{#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}}
|
||||
compname="{{comp.name}}" name="{{comp._id}}.dommages"
|
||||
value="{{plusMoins comp.system.dommages}}"
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
<input class="competence-value" type="text" compname="{{name}}" name="comp-value-{{name}}"
|
||||
value="{{plusMoins system.niveau}}" data-dtype="number"
|
||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||
<input name="comp-value-{{name}}" class="competence-value" type="text" data-dtype="Number"
|
||||
compname="{{name}}" value="{{plusMoins system.niveau}}"
|
||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||
|
||||
{{#if @root.options.vueDetaillee}}
|
||||
<span class="competence-xp">
|
||||
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
|
||||
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"
|
||||
<input name="comp-xp-{{name}}" class="competence-xp" type="text" data-dtype="Number"
|
||||
compname="{{name}}" value="{{numberFormat system.xp decimals=0 sign=false}}"
|
||||
{{#unless system.isLevelUp}}
|
||||
data-tooltip="Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}"
|
||||
{{/unless}}
|
||||
@@ -26,8 +26,8 @@
|
||||
</span>
|
||||
{{/if}}
|
||||
{{#if (eq system.categorie 'draconic')}}
|
||||
<input class="competence-xp-sort" type="text" compname="{{name}}" name="comp-xp-sort-{{name}}"
|
||||
value="{{numberFormat system.xp_sort decimals=0 sign=false}}" data-dtype="number"
|
||||
<input name="comp-xp-sort-{{name}}" class="competence-xp-sort" type="text" 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}}
|
||||
{{#if @root.options.vueDetaillee}}
|
||||
@@ -40,8 +40,9 @@
|
||||
{{else}}
|
||||
<i class="far fa-circle"></i>
|
||||
{{/if}}
|
||||
<input class="competence-archetype niveau-archetype" type="text" compname="{{name}}" name="comp-archetype-{{name}}"
|
||||
value="{{plusMoins system.niveau_archetype}}" data-dtype="number" data-tooltip="Niveau d'archétype {{plusMoins system.niveau_archetype}}"
|
||||
<input name="comp-archetype-{{name}}" class="competence-archetype niveau-archetype" type="text" data-dtype="Number"
|
||||
compname="{{name}}" value="{{plusMoins system.niveau_archetype}}"
|
||||
data-tooltip="Niveau d'archétype {{plusMoins system.niveau_archetype}}"
|
||||
{{#if (not @root.options.vueArchetype)}}disabled{{/if}} />
|
||||
</div>
|
||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=this options=@root.options}}
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
<label class="compteur">
|
||||
<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>
|
||||
<input class="resource-content" type="text" name="system.sante.vie.value" value="{{system.sante.vie.value}}" data-dtype="Number" />
|
||||
/ {{system.sante.vie.max}}
|
||||
<input name="system.sante.vie.value" class="resource-content" type="number" data-dtype="Number"
|
||||
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>
|
||||
</label>
|
||||
</li>
|
||||
@@ -13,8 +14,9 @@
|
||||
<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="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"/>
|
||||
/ {{system.sante.endurance.max}}
|
||||
<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}}" />
|
||||
/ {{system.sante.endurance.max}}
|
||||
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
<div class="flex-group-center header-compteurs">
|
||||
<ul>
|
||||
<li data-attribute="endurance">
|
||||
<label class="compteur">
|
||||
<label class="compteur" for="system.sante.endurance.value">
|
||||
Endurance
|
||||
<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" />
|
||||
/ {{system.sante.endurance.max}}
|
||||
<input name="system.sante.endurance.value" class="resource-content" type="text" data-dtype="Number"
|
||||
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>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
<a class="jet-vie" data-tooltip="Faire un jet de vie">Vie</a>
|
||||
</label>
|
||||
<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>
|
||||
<a class="vie-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||
</div>
|
||||
@@ -17,7 +18,8 @@
|
||||
<a class="jet-endurance" data-tooltip="Faire un jet d'endurance pour ne pas être sonné">Endurance</a>
|
||||
</label>
|
||||
<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>
|
||||
<a class="endurance-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||
</div>
|
||||
@@ -27,7 +29,8 @@
|
||||
<label for="system.sante.fatigue.value">Fatigue ({{calc.fatigue.malus}})</label>
|
||||
<div class="tooltiptext ttt-fatigue">{{{calc.fatigue.html}}}</div>
|
||||
<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>
|
||||
<a class="fatigue-plus"><i class="fa-solid fa-square-plus"></i></a>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
<div>
|
||||
{{#if effects}}
|
||||
{{#each effects as |effect|}}
|
||||
<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" />
|
||||
</span>
|
||||
{{/each}}
|
||||
{{#if calc.surprise}}<span>{{calc.surprise}}!</span>{{/if}}
|
||||
{{else}}
|
||||
Aucun effet actif
|
||||
{{/if}}
|
||||
</div>
|
||||
{{#if effects}}
|
||||
{{#each effects as |effect|}}
|
||||
<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" />
|
||||
</span>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
Aucun effet actif
|
||||
{{/if}}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<div class="flex-group-left header-etats">
|
||||
<div class="flex-between header-etats">
|
||||
<div class="flexcol">
|
||||
<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>
|
||||
{{#each calc.blessures as |blessure|}}
|
||||
<div>{{blessure}}</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{#if system.attributs.hautrevant.value}}
|
||||
<div class="tmr-buttons">
|
||||
<div class="tmr-buttons flex-group-left flex-shrink">
|
||||
<span>
|
||||
<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"/>
|
||||
|
||||
@@ -8,19 +8,21 @@
|
||||
<span class="equipement-valeur {{#unless (gt piece.system.cout 0)}}field-error{{/unless}}">
|
||||
({{piece.system.cout}} Sols)
|
||||
</span>
|
||||
<span class="equipement-detail">
|
||||
{{#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>
|
||||
</span>
|
||||
{{/if}}
|
||||
<span class="equipement-detail">
|
||||
<span>
|
||||
<span>{{piece.system.quantite}}</span>
|
||||
</span>
|
||||
{{#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>
|
||||
</span>
|
||||
{{/if}}
|
||||
</span>
|
||||
{{#if @root.options.isOwner}}
|
||||
{{>'systems/foundryvtt-reve-de-dragon/templates/actor/item-action-controls.hbs' item=signe options=@root.options}}
|
||||
{{/if}}
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
<ul class="item-list alterne-list liste-equipement">
|
||||
<li class="competence-header flexrow">
|
||||
<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-actions">Actions</span>
|
||||
<span class="item-actions-controls item-controls ">Actions</span>
|
||||
</li>
|
||||
{{#each inventaires as |item id|}}
|
||||
{{#unless item.estContenu}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{#if jeus.length}}
|
||||
{{#if jeux.length}}
|
||||
<h3>Jeux :</h3>
|
||||
<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}}">
|
||||
<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}}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<span class="generic-label">Seuil de Rêve :</span>
|
||||
<span>
|
||||
{{#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}}
|
||||
{{system.reve.seuil.value}}
|
||||
{{/if}}
|
||||
@@ -21,7 +21,7 @@
|
||||
<span class="generic-label">Refoulement : </span>
|
||||
<span>
|
||||
{{#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}}
|
||||
{{system.reve.refoulement.value}}
|
||||
{{/if}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="flexrow random-field" data-path="{{path}}">
|
||||
<label for="{{path}}">{{label}}:</label>
|
||||
{{#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')}}
|
||||
<select class="current-value" name="current.{{path}}" value="{{value}}" type="text" data-dtype="String">
|
||||
{{#select value}}
|
||||
@@ -9,7 +9,7 @@
|
||||
{{/select}}
|
||||
</select>
|
||||
{{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}}
|
||||
<div class="item-controls">
|
||||
<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>
|
||||
<ul class="item-list">
|
||||
<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}}
|
||||
<input class="resource-content"
|
||||
type="text" data-dtype="Number" size="3"
|
||||
name="system.compteurs.experience.value"
|
||||
value="{{system.compteurs.experience.value}}"/>
|
||||
<input name="system.compteurs.experience.value" class="resource-content" type="number" data-dtype="Number" size="3"
|
||||
value="{{system.compteurs.experience.value}}" min="0" max="100"/>
|
||||
{{else}}
|
||||
<label name="system.compteurs.experience.value">{{system.compteurs.experience.value}}</label>
|
||||
{{/if}}
|
||||
|
||||
@@ -26,9 +26,17 @@
|
||||
{{alias}}
|
||||
{{#if blessure}}
|
||||
{{#if (gt blessure.system.gravite 0)}}subit une blessure {{blessure.name}}
|
||||
{{~else~}}subit une éraflure
|
||||
{{~else~}}subit une contusion/éraflure
|
||||
{{~/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~}}
|
||||
{{/unless}}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<label for="{{path}}.nombre">{{label}}</label>
|
||||
<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" >
|
||||
{{selectOptions (timestamp-formulesPeriode) selected=unite labelAttr="label" nameAttr="code" valueAttr="code"}}
|
||||
</select>
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
<div class="flexcol calendar-timestamp-edit">
|
||||
<div class="flexrow">
|
||||
<label>{{label}}</label>
|
||||
<input {{#if disabled}}{{disabled}}{{/if}}
|
||||
class="flex-shrink number-x2"
|
||||
type="number" data-dtype="Number" min="1" max="28"
|
||||
name="{{path}}.jourDuMois" value="{{jourDuMois}}" />
|
||||
<label for="{{path}}.jourDuMois">{{label}}</label>
|
||||
<input name="{{path}}.jourDuMois" class="flex-shrink number-x2" type="number" data-dtype="Number"
|
||||
value="{{jourDuMois}}" min="1" max="28"
|
||||
{{#if disabled}}{{disabled}}{{/if}} />
|
||||
<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"}}
|
||||
</select>
|
||||
{{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 class="flexrow">
|
||||
<label></label>
|
||||
@@ -18,7 +17,7 @@
|
||||
{{selectOptions (RDD_CONFIG 'heuresRdD') selected=heure.key labelAttr="label" nameAttr="value" valueAttr="value"}}
|
||||
</select>
|
||||
{{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>
|
||||
</div>
|
||||
</div>
|
||||
@@ -6,9 +6,7 @@
|
||||
<hr>
|
||||
<span>
|
||||
<label>Points à répartir:</label>
|
||||
<input class="xpCarac-reste number-x2"
|
||||
type="number" data-dtype="Number"
|
||||
min="0" max="10" value="{{xpData.reste}}" disabled />
|
||||
<input class="xpCarac-reste number-x2" type="number" data-dtype="Number" value="{{xpData.reste}}" disabled />
|
||||
<label> sur {{xpData.xpCarac}}</label>
|
||||
</span>
|
||||
<ul class="flexcol item-list alterne-list">
|
||||
@@ -32,7 +30,7 @@
|
||||
<label>{{carac.xp}}</label>
|
||||
<span class="flexrow">
|
||||
<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>
|
||||
</span>
|
||||
{{/if}}
|
||||
|
||||
@@ -9,19 +9,22 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="signe.system.valeur.norm">Expérience en sorts</label>
|
||||
<div class="flexrow">
|
||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.norm" data-typereussite="norm"
|
||||
value="{{signe.system.valeur.norm}}" min="1" max="100" data-dtype="Number" />
|
||||
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||
name="signe.system.valeur.norm" data-typereussite="norm"
|
||||
value="{{signe.system.valeur.norm}}" min="1" max="100" />
|
||||
<span>Sign.</span>
|
||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.sign" data-typereussite="sign"
|
||||
value="{{signe.system.valeur.sign}}" min="1" max="100" data-dtype="Number" />
|
||||
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||
name="signe.system.valeur.sign" data-typereussite="sign"
|
||||
value="{{signe.system.valeur.sign}}" min="1" max="100"/>
|
||||
<span>Part.</span>
|
||||
<input class="signe-xp-sort" type="number" name="signe.system.valeur.part" data-typereussite="part"
|
||||
value="{{signe.system.valeur.part}}" min="1" max="100" data-dtype="Number" />
|
||||
<input class="signe-xp-sort" type="number" data-dtype="Number"
|
||||
name="signe.system.valeur.part" data-typereussite="part"
|
||||
value="{{signe.system.valeur.part}}" min="1" max="100"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flexrow">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<label>Nombre de brins</label>
|
||||
<select name="nbBrins" data-dtype="number">
|
||||
<select name="nbBrins" data-dtype="Number">
|
||||
{{#select nbBrins}}
|
||||
{{{nbBrinsSelect}}}
|
||||
{{/select}}
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
{{else}}Quantité{{/if}}
|
||||
</label>
|
||||
<div class="flexrow">
|
||||
<input name="nombreLots" class="nombreLots flex-shrink number-x2" type="number" min="1"
|
||||
{{#unless quantiteIllimite}} max="{{nbLots}}" {{/unless}}
|
||||
value="{{choix.nombreLots}}"
|
||||
data-dtype="Number" />
|
||||
<input name="nombreLots" class="nombreLots flex-shrink number-x2"
|
||||
type="number" data-dtype="Number"
|
||||
value="{{choix.nombreLots}}" min="1" {{#unless quantiteIllimite}} max="{{nbLots}}" {{/unless}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
<h4>{{item.name}}</h4>
|
||||
<div class="flexrow">
|
||||
<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}}"
|
||||
min="0" max="{{item.system.quantite}}" data-dtype="Number" />
|
||||
<input name="doses"
|
||||
class="attribute-value consommer-doses flex-shrink number-x2" type="number" data-dtype="Number"
|
||||
value="{{choix.doses}}" min="0" max="{{item.system.quantite}}" />
|
||||
</div>
|
||||
{{#if item.system.sust}}
|
||||
<p>Cette {{#if item.system.boisson}}boisson{{else}}nourriture{{/if}} vous apportera <span
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
<label>Quantité totale : {{item.system.quantite}}</label>
|
||||
<div class="flexrow">
|
||||
<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}}"
|
||||
min="1" max="{{choix.max}}" data-dtype="Number" />
|
||||
<input name="choix.quantite" class="attribute-value choix-quantite flex-shrink number-x2" type="number" data-dtype="Number"
|
||||
value="{{choix.quantite}}" min="1" max="{{choix.max}}" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
quantiteIllimite}}checked{{/if}} />
|
||||
<label class="label-quantiteIllimite flex-shrink">disponibles</label>
|
||||
{{/unless}}
|
||||
<input name="nbLots" class="nbLots flex-shrink number-x2" type="number" min="1"
|
||||
max="{{maxLots}}" value="{{nbLots}}" data-dtype="Number" />
|
||||
<input name="nbLots" class="nbLots flex-shrink number-x2" type="number" data-dtype="Number"
|
||||
value="{{nbLots}}" min="1" max="{{maxLots}}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flexrow flex-group-left">
|
||||
<label for="tailleLot">Taille d'un lot</label>
|
||||
<span class="flexrow">
|
||||
<input name="tailleLot" class="tailleLot flex-shrink number-x2" type="number" min="1"
|
||||
max="{{quantiteMax}}" value="{{tailleLot}}" data-dtype="Number" />
|
||||
<input name="tailleLot" class="tailleLot flex-shrink number-x2" type="number" data-dtype="Number"
|
||||
value="{{tailleLot}}" min="1" max="{{quantiteMax}}" />
|
||||
</span>
|
||||
</div>
|
||||
<div class="flexrow flex-group-left">
|
||||
@@ -36,8 +36,8 @@
|
||||
<div class="flexrow flex-group-left">
|
||||
<label for="prixLot">Prix du lot</label>
|
||||
<span class="flexrow">
|
||||
<input name="prixLot" class="prixLot flex-shrink number-x3" type="number" value="{{numberFormat prixLot decimals=2 sign=false}}"
|
||||
data-dtype="Number" />
|
||||
<input name="prixLot" class="prixLot flex-shrink number-x3" type="number" data-dtype="Number"
|
||||
value="{{numberFormat prixLot decimals=2 sign=false}}" min="0" />
|
||||
<label>Sols</label>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<form class="encaisse-roll-dialog">
|
||||
<div class="flexrow">
|
||||
<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}}
|
||||
{{#each ajustementsEncaissement as |key|}}
|
||||
<option value={{key}}>{{plusMoins key}}</option>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<label>Etat général</label><label class="flexrow">{{etat}}</label>
|
||||
<label>Déjà bu</label><label class="flexrow">{{diffNbDoses}}</label>
|
||||
<label>Force du breuvage</label>
|
||||
<select class="force-alcool" data-dtype="number">
|
||||
<select class="force-alcool" data-dtype="Number">
|
||||
{{#select forceAlcool}}
|
||||
{{#each ajustementsForce as |key|}}
|
||||
<option value={{key}}>{{key}}</option>
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<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 class="flexrow">
|
||||
<label for="ajouterEquipement">Ajouter à l'équipement</label>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<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}}
|
||||
{{#each coutreve as |cout key|}}
|
||||
<option value={{cout}}>{{cout}}</option>
|
||||
@@ -51,7 +51,7 @@
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<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}}
|
||||
{{#each difficultesLibres as |key|}}
|
||||
<option value={{key}}>{{plusMoins key}}</option>
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
</div>
|
||||
<ul>
|
||||
<li class="flexrow flex-group-left">
|
||||
<label>Jet d'encaissement</label>
|
||||
<input class="encaissement-roll-result" type="number" value="{{encaissement.roll.result}}" min="2" max="20" data-dtype="Number" />
|
||||
<label for="jet-encaissement">Jet d'encaissement</label>
|
||||
<input name="jet-encaissement" class="encaissement-roll-result" type="number" data-dtype="Number"
|
||||
value="{{encaissement.roll.result}}" min="2" max="20" />
|
||||
</li>
|
||||
<li class="flexrow flex-group-left">
|
||||
<label>Total</label>
|
||||
|
||||
@@ -7,23 +7,23 @@
|
||||
{{#if system.magique}}
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="enchantement.jour">Date de l'Enchantement : Jour/Mois (date actuelle : {{dateActuelle}})</label>
|
||||
</div>
|
||||
<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 enchantement.mois}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-heures.hbs"}}
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="form-group">
|
||||
<label for="system.resistance">Résistance</label>
|
||||
{{>"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 class="form-group">
|
||||
<label for="system.categorie_parade">Catégorie parade </label>
|
||||
@@ -60,47 +60,47 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group item-magique">
|
||||
<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 class="form-group item-magique">
|
||||
<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 class="form-group">
|
||||
<label for="system.initpremierround">Classe d'initiative au premier round (mêlée seulement) </label>
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||
|
||||
@@ -15,39 +15,44 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if (lt system.gravite 7)}}
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if system.premierssoins.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}}
|
||||
{{else}}
|
||||
<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}}
|
||||
</div>
|
||||
|
||||
{{#if system.premierssoins.done}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{#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}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<label for="niveau">Coordonnées TMR </label>
|
||||
<input class="attribute-value" type="text" name="system.coord" value="{{system.coord}}" data-dtype="String"/>
|
||||
<label for="system.coord">Coordonnées TMR </label>
|
||||
<input name="system.coord" value="{{system.coord}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="system.specific">Mode spécifique</label>
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.niveau">Niveau</label>
|
||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
||||
<label for="system.niveau" class="item-label">Niveau</label>
|
||||
<input name="system.niveau" class="attribute-value" type="text" data-dtype="Number"
|
||||
value="{{system.niveau}}" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||
|
||||
@@ -24,11 +24,13 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="system.base">Niveau de base </label>
|
||||
@@ -52,21 +54,23 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{#if (eq system.categorie 'draconic')}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||
</section>
|
||||
|
||||
</form>
|
||||
|
||||
@@ -12,20 +12,24 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if isdommages}}
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="system.mortalite">Mortalité</label>
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||
{{#if options.isOwned}}
|
||||
@@ -20,7 +21,7 @@
|
||||
<span class="equipement-nom">Nom</span>
|
||||
<span class="equipement-detail">Q.</span>
|
||||
<span class="equipement-detail">Enc.</span>
|
||||
<span class="equipement-actions">Actions</span>
|
||||
<span class="item-actions-controls">Actions</span>
|
||||
</li>
|
||||
{{buildInventaireConteneur actorId id options}}
|
||||
</ul>
|
||||
|
||||
@@ -12,20 +12,22 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.agilite">Agilité ?</label>
|
||||
<input class="attribute-value" type="checkbox" name="system.agilite" {{#if system.agilite}}checked{{/if}}/>
|
||||
<label for="system.agilite" class="item-label" >Agilité ?</label>
|
||||
<input name="system.agilite" class="attribute-value" type="checkbox" {{#if system.agilite}}checked{{/if}}/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.apparence">Apparence ?</label>
|
||||
<input class="attribute-value" type="checkbox" name="system.apparence" {{#if system.apparence}}checked{{/if}}/>
|
||||
<label for="system.apparence" class="item-label">Apparence ?</label>
|
||||
<input name="system.apparence" class="attribute-value" type="checkbox" {{#if system.apparence}}checked{{/if}}/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.niveau">Niveau</label>
|
||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
||||
<label for="system.niveau" class="item-label">Niveau</label>
|
||||
<input name="system.niveau" class="attribute-value" type="text" data-dtype="Number"
|
||||
value="{{system.niveau}}" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-description.hbs"}}
|
||||
</section>
|
||||
|
||||
@@ -17,12 +17,13 @@
|
||||
<div class="flexcol">
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{#if (gt system.sust 0)}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{{log this}}
|
||||
<form class="{{cssClass}}" autocomplete="off">
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
||||
@@ -27,20 +26,20 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Taille</label>
|
||||
<input class="attribute-value" type="text" name="system.taille" value="{{system.taille}}" data-dtype="Number" />
|
||||
<label for="system.taille">Taille</label>
|
||||
<input name="system.taille" value="{{system.taille}}" min="1" class="attribute-value" type="number" data-dtype="Number" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Pureté</label>
|
||||
<input class="attribute-value" type="text" name="system.purete" value="{{system.purete}}" data-dtype="Number" />
|
||||
<label for="system.purete">Pureté</label>
|
||||
<input name="system.purete" value="{{system.purete}}" min="0" max="7" class="attribute-value" type="number" data-dtype="Number" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{>'systems/foundryvtt-reve-de-dragon/templates/enchantement/partial-enchantement.hbs'}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||
|
||||
@@ -31,16 +31,19 @@
|
||||
{{#if (eq isComestible 'brut')}}
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{else}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{/if}}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div class="tab items" data-group="primary" data-tab="informations">
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<label>Catégorie</label>
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<header class="sheet-header">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
|
||||
<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">
|
||||
<label>Quantity</label>
|
||||
<input type="text" name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
|
||||
<label for="system.quantity">Quantity</label>
|
||||
<input name="system.quantity" value="{{system.quantity}}" type="text" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="resource">
|
||||
<label>Weight</label>
|
||||
<input type="text" name="system.weight" value="{{system.weight}}" data-dtype="Number"/>
|
||||
<label for="system.weight">Weight</label>
|
||||
<input name="system.weight" value="{{system.weight}}" type="text" data-dtype="Number"/>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -39,13 +39,13 @@
|
||||
<ol class="attributes-list">
|
||||
{{#each system.attributes as |attr 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}}
|
||||
<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}}
|
||||
<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}}
|
||||
<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 attr.dtype}}
|
||||
{{#each ../dtypes as |t|}}
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.base">Base</label>
|
||||
<input class="attribute-value" type="text" name="system.base" value="{{system.base}}" data-dtype="Number"/>
|
||||
<label for="system.base" class="item-label">Base</label>
|
||||
<input name="system.base" value="{{system.base}}" class="attribute-value" type="text" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.caraccomp">Caractéristique/Compétence</label>
|
||||
<input class="attribute-value" type="text" name="system.caraccomp" value="{{system.caraccomp}}" data-dtype="String"/>
|
||||
<label for="system.caraccomp" class="item-label">Caractéristique/Compétence</label>
|
||||
<input name="system.caraccomp" value="{{system.caraccomp}}" class="attribute-value" type="text" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="system.competence">Compétence</label>
|
||||
@@ -31,23 +31,26 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||
|
||||
@@ -19,27 +19,27 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/common/periodicite.hbs" system.periode path='system.periode' label='Périodicité'}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if (or options.isGM system.remedesconnus)}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="system.heure">Heure</label>
|
||||
@@ -28,15 +28,15 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<label for="system.tmr">Case TMR</label>
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<label class="item-label" for="system.niveau">Niveau</label>
|
||||
<input class="attribute-value" type="text" name="system.niveau" value="{{system.niveau}}" data-dtype="Number"/>
|
||||
<label for="system.niveau" class="item-label" >Niveau</label>
|
||||
<input name="system.niveau" value="{{system.niveau}}" min="-10" max="0" class="attribute-value" type="text" data-dtype="Number"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
<section class="sheet-body">
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
</section>
|
||||
</form>
|
||||
|
||||
@@ -8,31 +8,31 @@
|
||||
<div class="tab items flexcol" data-group="primary" data-tab="informations">
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if system.boisson}}
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
{{#if system.alcoolise}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<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>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
|
||||
|
||||
|
||||
@@ -26,11 +26,11 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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 class="form-group">
|
||||
<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>
|
||||
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-appreciable.hbs"}}
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
{{#if system.appreciation.moral}}
|
||||
<div class="form-group">
|
||||
<label for="system.appreciation.bonmoment">Bon moment</label>
|
||||
<input class="attribute-value" type="string" name="system.appreciation.bonmoment" value="{{system.appreciation.bonmoment}}"
|
||||
data-dtype="String" list="enum-appreciation-bonmoment"
|
||||
<input name="system.appreciation.bonmoment" value="{{system.appreciation.bonmoment}}"
|
||||
class="attribute-value" type="string" data-dtype="String" list="enum-appreciation-bonmoment"
|
||||
/>
|
||||
<datalist id="enum-appreciation-bonmoment">
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/item/enum-appreciation-bonmoment.hbs"}}
|
||||
@@ -37,18 +37,21 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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}}
|
||||
data-toolTip="La compétence est utilisée pour le jet d'appréciation si positive"/>
|
||||
<input name="system.appreciation.jetComp"
|
||||
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 class="form-group">
|
||||
<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}}
|
||||
data-toolTip="La qualité ajuste le jet d'appréciation"/>
|
||||
<input name="system.appreciation.jetQualite"
|
||||
class="attribute-value" type="checkbox" {{#if system.appreciation.jetQualite}}checked{{/if}}
|
||||
data-toolTip="La qualité ajuste le jet d'appréciation"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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}}
|
||||
data-toolTip="La qualité doit être supérieure à la compétence pour effectuer un jet d'apréciation"/>
|
||||
<input name="system.appreciation.compMinimum"
|
||||
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>
|
||||
{{/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