forked from public/foundryvtt-reve-de-dragon
Compare commits
35 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| 81492f2857 | |||
| 959e751e48 | |||
| b6a124b57d | |||
| db2ca945a8 | |||
| 667d764db1 | |||
| 4273f5f48f | |||
| 6c4a8eb70f | |||
| eb029e8d66 | |||
| 9ee14b3b56 | |||
| 3203fae111 | |||
| 755301275b | |||
| f6d5dc9d7c | |||
| 5e9b47af1f | |||
| 18dfb36a78 | |||
| febccd508f | |||
| b147f8937b | |||
| 55a93b317a | |||
| 02a630152d | |||
| ad8ac0de77 | |||
| dceb6f026f | |||
| ad37ee1b8e | |||
| 4d40e2fe59 | |||
| 9d7e57d9fb | |||
| 717029e572 | |||
| d6f8976298 | |||
| 92e93cbbea | |||
| 994eaad9a9 | |||
| cfed7e2afa | |||
| 436f9e6fa4 | |||
| 18a50197cd | |||
| b6910612f8 | |||
| 4ba1ec8a2e | |||
| 75a0f7c322 | |||
| e2a9f55740 | |||
| 1e0788cde8 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -8,3 +8,7 @@ todo.md
|
|||||||
/jsconfig.json
|
/jsconfig.json
|
||||||
/package.json
|
/package.json
|
||||||
/package-lock.json
|
/package-lock.json
|
||||||
|
/packs/*/
|
||||||
|
/packs/*/CURRENT
|
||||||
|
/packs/*/LOG
|
||||||
|
/packs/*/LOCK
|
||||||
|
|||||||
13
changelog.md
13
changelog.md
@@ -1,6 +1,17 @@
|
|||||||
---
|
# v11.0
|
||||||
|
|
||||||
# v10.7 - L'os de Semolosse
|
# v10.7 - L'os de Semolosse
|
||||||
|
|
||||||
|
## v10.7.18 - le repos de Semolosse
|
||||||
|
- correction des dates de blessures qui ne marchaient plus
|
||||||
|
|
||||||
|
## v10.7.17 - le doigt du destin de Semolosse
|
||||||
|
- correction de la validation d'encaissement par le MJ
|
||||||
|
|
||||||
|
## v10.7.16 - la morsure de Semolosse
|
||||||
|
- correction de l'affichage des objets suite à confusion
|
||||||
|
- correction de liens dans la liste des équipements
|
||||||
|
|
||||||
## v10.7.14 - l'expérience de Semolosse
|
## v10.7.14 - l'expérience de Semolosse
|
||||||
- Affichage des personnages accordés sur les fiches des entités
|
- Affichage des personnages accordés sur les fiches des entités
|
||||||
- Refonte du journal d'expérience
|
- Refonte du journal d'expérience
|
||||||
|
|||||||
102
lang/fr.json
102
lang/fr.json
@@ -1,54 +1,56 @@
|
|||||||
{
|
{
|
||||||
"ACTOR": {
|
"TYPES": {
|
||||||
"TypePersonnage": "Personnage",
|
"Actor": {
|
||||||
"TypeCreature": "Créature",
|
"Personnage": "Personnage",
|
||||||
"TypeEntite": "Entité de cauchemar",
|
"Creature": "Créature",
|
||||||
"TypeCommerce": "Commerce",
|
"Entite": "Entité de cauchemar",
|
||||||
"TypeVehicule": "Véhicule"
|
"Commerce": "Commerce",
|
||||||
},
|
"Vehicule": "Véhicule"
|
||||||
"ITEM": {
|
},
|
||||||
"TypeArme": "Arme",
|
"Item": {
|
||||||
"TypeArmure": "Armure",
|
"Arme": "Arme",
|
||||||
"TypeBlessure": "Blessure",
|
"Armure": "Armure",
|
||||||
"TypeCasetmr": "TMR spéciale",
|
"Blessure": "Blessure",
|
||||||
"TypeChant": "Chant",
|
"Casetmr": "TMR spéciale",
|
||||||
"TypeCompetence": "Compétence",
|
"Chant": "Chant",
|
||||||
"TypeCompetencecreature": "Compétence de créature",
|
"Competence": "Compétence",
|
||||||
"TypeConteneur": "Conteneur",
|
"Competencecreature": "Compétence de créature",
|
||||||
"TypeDanse": "Danse",
|
"Conteneur": "Conteneur",
|
||||||
"TypeExtraitpoetique": "Extrait poetique",
|
"Danse": "Danse",
|
||||||
"TypeFaune": "Faune",
|
"Extraitpoetique": "Extrait poetique",
|
||||||
"TypeGemme": "Gemme",
|
"Faune": "Faune",
|
||||||
"TypeHerbe": "Herbe",
|
"Gemme": "Gemme",
|
||||||
"TypeIngredient": "Ingrédient",
|
"Herbe": "Herbe",
|
||||||
"TypeJeu": "Jeu",
|
"Ingredient": "Ingrédient",
|
||||||
"TypeLivre": "Livre",
|
"Jeu": "Jeu",
|
||||||
"TypeMaladie": "Maladie",
|
"Livre": "Livre",
|
||||||
"TypeMeditation": "Méditation",
|
"Maladie": "Maladie",
|
||||||
"TypeMonnaie": "Monnaie",
|
"Meditation": "Méditation",
|
||||||
"TypeMunition": "Munition",
|
"Monnaie": "Monnaie",
|
||||||
"TypeMusique": "Musique",
|
"Munition": "Munition",
|
||||||
"TypeNombreastral": "Nombre astral",
|
"Musique": "Musique",
|
||||||
"TypeNourritureboisson": "Nourriture & boisson",
|
"Nombreastral": "Nombre astral",
|
||||||
"TypeObjet": "Objet",
|
"Nourritureboisson": "Nourriture & boisson",
|
||||||
"TypeOeuvre": "Oeuvre",
|
"Objet": "Objet",
|
||||||
"TypeOmbre": "Ombre de Thanatos",
|
"Oeuvre": "Oeuvre",
|
||||||
"TypePlante": "Plante",
|
"Ombre": "Ombre de Thanatos",
|
||||||
"TypePoison": "Poison",
|
"Plante": "Plante",
|
||||||
"TypePossession": "Possession",
|
"Poison": "Poison",
|
||||||
"TypePotion": "Potion",
|
"Possession": "Possession",
|
||||||
"TypeQueue": "Queue de Dragon",
|
"Potion": "Potion",
|
||||||
"TypeRecettealchimique": "Recette alchimique",
|
"Queue": "Queue de Dragon",
|
||||||
"TypeRecettecuisine": "Recette de cuisine",
|
"Recettealchimique": "Recette alchimique",
|
||||||
"TypeRencontre": "Rencontre TMR",
|
"Recettecuisine": "Recette de cuisine",
|
||||||
"TypeService": "Service",
|
"Rencontre": "Rencontre TMR",
|
||||||
"TypeSignedraconique": "Signe draconique",
|
"Service": "Service",
|
||||||
"TypeSort": "Sort",
|
"Signedraconique": "Signe draconique",
|
||||||
"TypeSortreserve": "Sort en réserve",
|
"Sort": "Sort",
|
||||||
"TypeSouffle": "Souffle de Dragon",
|
"Sortreserve": "Sort en réserve",
|
||||||
"TypeTache": "Tâche",
|
"Souffle": "Souffle de Dragon",
|
||||||
"TypeTarot": "Carte de tarot",
|
"Tache": "Tâche",
|
||||||
"TypeTete": "Tête de Dragon"
|
"Tarot": "Carte de tarot",
|
||||||
|
"Tete": "Tête de Dragon"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"EFFECT": {
|
"EFFECT": {
|
||||||
"StatusStunned": "Sonné",
|
"StatusStunned": "Sonné",
|
||||||
|
|||||||
@@ -456,9 +456,9 @@ export class RdDActorSheet extends RdDBaseActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async selectTypeOeuvreToCreate() {
|
async selectTypeOeuvreToCreate() {
|
||||||
let typeObjets = RdDItem.getTypesOeuvres();
|
let types = RdDItem.getTypesOeuvres();
|
||||||
let content = `<span class="competence-label">Selectionnez le type d'oeuvre</span><select class="item-type">`;
|
let content = `<span class="competence-label">Selectionnez le type d'oeuvre</span><select class="item-type">`;
|
||||||
for (let typeName of typeObjets) {
|
for (let typeName of types) {
|
||||||
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
||||||
}
|
}
|
||||||
content += '</select>';
|
content += '</select>';
|
||||||
|
|||||||
@@ -3204,25 +3204,31 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
if (attacker && !await attacker.accorder(this, 'avant-encaissement')) {
|
if (attacker && !await attacker.accorder(this, 'avant-encaissement')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const attackerId = attacker?.id;
|
||||||
if (ReglesOptionelles.isUsing('validation-encaissement-gr') && !game.user.isGM) {
|
if (ReglesOptionelles.isUsing('validation-encaissement-gr') && !game.user.isGM) {
|
||||||
RdDBaseActor.remoteActorCall({
|
RdDBaseActor.remoteActorCall({
|
||||||
actorId: this.id,
|
actorId: this.id,
|
||||||
method: 'validerEncaissement',
|
method: 'appliquerEncaissement',
|
||||||
args: [rollData, show]
|
args: [rollData, show, attackerId]
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
await this.appliquerEncaissement(rollData, show, attackerId);
|
||||||
|
}
|
||||||
|
|
||||||
|
async appliquerEncaissement(rollData, show, attackerId) {
|
||||||
const armure = await this.computeArmure(rollData);
|
const armure = await this.computeArmure(rollData);
|
||||||
if (ReglesOptionelles.isUsing('validation-encaissement-gr')) {
|
if (ReglesOptionelles.isUsing('validation-encaissement-gr')) {
|
||||||
DialogValidationEncaissement.validerEncaissement(this, rollData, armure, show, (encaissement, show) => this._appliquerEncaissement(encaissement, show, attacker));
|
DialogValidationEncaissement.validerEncaissement(this, rollData, armure, show, attackerId, (encaissement, show, attackerId) => this._appliquerEncaissement(encaissement, show, attackerId));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: SHOW_DICE });
|
let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: SHOW_DICE });
|
||||||
await this._appliquerEncaissement(encaissement, show, attacker)
|
await this._appliquerEncaissement(encaissement, show, attackerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async _appliquerEncaissement(encaissement, show, attacker) {
|
async _appliquerEncaissement(encaissement, show, attackedId) {
|
||||||
|
const attacker = attackedId ? game.actors.get(attackedId) : undefined
|
||||||
let santeOrig = duplicate(this.system.sante);
|
let santeOrig = duplicate(this.system.sante);
|
||||||
|
|
||||||
const blessure = await this.ajouterBlessure(encaissement, attacker); // Will update the result table
|
const blessure = await this.ajouterBlessure(encaissement, attacker); // Will update the result table
|
||||||
|
|||||||
@@ -50,16 +50,16 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
encTotal: await this.actor.computeEncTotal(),
|
encTotal: await this.actor.computeEncTotal(),
|
||||||
}
|
}
|
||||||
|
|
||||||
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.inventaires);
|
||||||
this._appliquerRechercheObjets(formData.objets, formData.conteneurs);
|
this._appliquerRechercheObjets(formData.conteneurs, formData.inventaires);
|
||||||
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);
|
formData.conteneurs = RdDUtility.conteneursRacine(formData.conteneurs);
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
_appliquerRechercheObjets(objets, conteneurs) {
|
_appliquerRechercheObjets(conteneurs, inventaires) {
|
||||||
if (this.options.recherche?.text) {
|
if (this.options.recherche?.text) {
|
||||||
const recherche = this.options.recherche;
|
const recherche = this.options.recherche;
|
||||||
const allVisible = objets.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id);
|
const allVisible = inventaires.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id);
|
||||||
let addVisible = conteneurs.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id)
|
let addVisible = conteneurs.filter(it => it.isNomTypeLike(recherche.text)).map(it => it.id)
|
||||||
do {
|
do {
|
||||||
allVisible.push(...addVisible)
|
allVisible.push(...addVisible)
|
||||||
@@ -67,11 +67,11 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
addVisible = parentsIds.filter(id => !allVisible.includes(id))
|
addVisible = parentsIds.filter(id => !allVisible.includes(id))
|
||||||
}
|
}
|
||||||
while (addVisible.length > 0)
|
while (addVisible.length > 0)
|
||||||
objets.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
inventaires.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
||||||
conteneurs.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
conteneurs.forEach(it => it.system.isHidden = !allVisible.includes(it.id))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
objets.forEach(it => it.system.isHidden = false)
|
inventaires.forEach(it => it.system.isHidden = false)
|
||||||
conteneurs.forEach(it => it.system.isHidden = false)
|
conteneurs.forEach(it => it.system.isHidden = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -118,9 +118,10 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
formData.herbes = Misc.arrayOrEmpty(itemTypes['herbe']);
|
formData.herbes = Misc.arrayOrEmpty(itemTypes['herbe']);
|
||||||
formData.nourritureboissons = Misc.arrayOrEmpty(itemTypes['nourritureboisson']);
|
formData.nourritureboissons = Misc.arrayOrEmpty(itemTypes['nourritureboisson']);
|
||||||
formData.gemmes = Misc.arrayOrEmpty(itemTypes['gemme']);
|
formData.gemmes = Misc.arrayOrEmpty(itemTypes['gemme']);
|
||||||
formData.monnaie = Misc.arrayOrEmpty(itemTypes['monnaie']).sort(Monnaie.triValeurEntiere());
|
formData.monnaies = Misc.arrayOrEmpty(itemTypes['monnaie']).sort(Monnaie.triValeurEntiere());
|
||||||
|
formData.objets = Misc.arrayOrEmpty(itemTypes['objet'])
|
||||||
|
|
||||||
formData.objets = RdDItem.getItemTypesInventaire('all')
|
formData.inventaires = RdDItem.getItemTypesInventaire('all')
|
||||||
.map(t => Misc.arrayOrEmpty(itemTypes[t]))
|
.map(t => Misc.arrayOrEmpty(itemTypes[t]))
|
||||||
.reduce((a, b) => a.concat(b), [])
|
.reduce((a, b) => a.concat(b), [])
|
||||||
.sort(Misc.ascending(it => it.name));
|
.sort(Misc.ascending(it => it.name));
|
||||||
@@ -230,9 +231,9 @@ export class RdDBaseActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async selectObjetTypeToCreate() {
|
async selectObjetTypeToCreate() {
|
||||||
let typeObjets = this.getTypesInventaire().sort(Misc.ascending(type => Misc.typeName('Item', type)));
|
let types = this.getTypesInventaire().sort(Misc.ascending(type => Misc.typeName('Item', type)));
|
||||||
let content = `<span class="competence-label">Selectionnez le type d'équipement</span><select class="item-type">`;
|
let content = `<span class="competence-label">Selectionnez le type d'équipement</span><select class="item-type">`;
|
||||||
for (let typeName of typeObjets) {
|
for (let typeName of types) {
|
||||||
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
content += `<option value="${typeName}">${Misc.typeName('Item', typeName)}</option>`
|
||||||
}
|
}
|
||||||
content += '</select>';
|
content += '</select>';
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { SYSTEM_SOCKET_ID } from "../constants.js";
|
|||||||
import { Monnaie } from "../item-monnaie.js";
|
import { Monnaie } from "../item-monnaie.js";
|
||||||
import { Misc } from "../misc.js";
|
import { Misc } from "../misc.js";
|
||||||
import { RdDAudio } from "../rdd-audio.js";
|
import { RdDAudio } from "../rdd-audio.js";
|
||||||
|
import { RdDConfirm } from "../rdd-confirm.js";
|
||||||
import { RdDUtility } from "../rdd-utility.js";
|
import { RdDUtility } from "../rdd-utility.js";
|
||||||
import { SystemCompendiums } from "../settings/system-compendiums.js";
|
import { SystemCompendiums } from "../settings/system-compendiums.js";
|
||||||
import { APP_ASTROLOGIE_REFRESH } from "../sommeil/app-astrologie.js";
|
import { APP_ASTROLOGIE_REFRESH } from "../sommeil/app-astrologie.js";
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { RdDUtility } from "./rdd-utility.js";
|
|||||||
*/
|
*/
|
||||||
export class DialogValidationEncaissement extends Dialog {
|
export class DialogValidationEncaissement extends Dialog {
|
||||||
|
|
||||||
static async validerEncaissement(actor, rollData, armure, show, onEncaisser) {
|
static async validerEncaissement(actor, rollData, armure, show, attackerId, onEncaisser) {
|
||||||
let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: HIDE_DICE });
|
let encaissement = await RdDUtility.jetEncaissement(rollData, armure, { showDice: HIDE_DICE });
|
||||||
const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-validation-encaissement.html', {
|
const html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-validation-encaissement.html', {
|
||||||
actor: actor,
|
actor: actor,
|
||||||
@@ -15,12 +15,12 @@ export class DialogValidationEncaissement extends Dialog {
|
|||||||
encaissement: encaissement,
|
encaissement: encaissement,
|
||||||
show: show
|
show: show
|
||||||
});
|
});
|
||||||
const dialog = new DialogValidationEncaissement(html, actor, rollData, armure, encaissement, show, onEncaisser);
|
const dialog = new DialogValidationEncaissement(html, actor, rollData, armure, encaissement, show, attackerId, onEncaisser);
|
||||||
dialog.render(true);
|
dialog.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
constructor(html, actor, rollData, armure, encaissement, show, onEncaisser) {
|
constructor(html, actor, rollData, armure, encaissement, show, attackerId, onEncaisser) {
|
||||||
// Common conf
|
// Common conf
|
||||||
let buttons = {
|
let buttons = {
|
||||||
"valider": { label: "Valider", callback: html => this.onValider() },
|
"valider": { label: "Valider", callback: html => this.onValider() },
|
||||||
@@ -48,6 +48,7 @@ export class DialogValidationEncaissement extends Dialog {
|
|||||||
this.armure = armure;
|
this.armure = armure;
|
||||||
this.encaissement = encaissement;
|
this.encaissement = encaissement;
|
||||||
this.show = show;
|
this.show = show;
|
||||||
|
this.attackerId = attackerId;
|
||||||
this.onEncaisser = onEncaisser;
|
this.onEncaisser = onEncaisser;
|
||||||
this.forceDiceResult = {total: encaissement.roll.result };
|
this.forceDiceResult = {total: encaissement.roll.result };
|
||||||
}
|
}
|
||||||
@@ -66,6 +67,6 @@ export class DialogValidationEncaissement extends Dialog {
|
|||||||
|
|
||||||
async onValider() {
|
async onValider() {
|
||||||
this.encaissement = await RdDUtility.jetEncaissement(this.rollData, this.armure, { showDice: SHOW_DICE, forceDiceResult: this.forceDiceResult});
|
this.encaissement = await RdDUtility.jetEncaissement(this.rollData, this.armure, { showDice: SHOW_DICE, forceDiceResult: this.forceDiceResult});
|
||||||
this.onEncaisser(this.encaissement, this.show)
|
this.onEncaisser(this.encaissement, this.show, this.attackerId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,40 +10,49 @@ import { RdDRaretes } from "./item/raretes.js";
|
|||||||
export const TYPES = {
|
export const TYPES = {
|
||||||
competence: 'competence',
|
competence: 'competence',
|
||||||
competencecreature: 'competencecreature',
|
competencecreature: 'competencecreature',
|
||||||
|
empoignade: 'empoignade',
|
||||||
|
possession: 'possession',
|
||||||
|
blessure: 'blessure',
|
||||||
|
maladie: 'maladie',
|
||||||
|
poison: 'poison',
|
||||||
arme: 'arme',
|
arme: 'arme',
|
||||||
armure: 'armure',
|
armure: 'armure',
|
||||||
conteneur: 'conteneur',
|
conteneur: 'conteneur',
|
||||||
sort: 'sort',
|
objet: 'objet',
|
||||||
|
monnaie: 'monnaie',
|
||||||
|
gemme: 'gemme',
|
||||||
|
munition: 'munition',
|
||||||
|
nourritureboisson: 'nourritureboisson',
|
||||||
herbe: 'herbe',
|
herbe: 'herbe',
|
||||||
faune: 'faune',
|
plante: 'plante',
|
||||||
ingredient: 'ingredient',
|
ingredient: 'ingredient',
|
||||||
|
faune: 'faune',
|
||||||
livre: 'livre',
|
livre: 'livre',
|
||||||
potion: 'potion',
|
potion: 'potion',
|
||||||
|
service: 'service',
|
||||||
|
musique: 'musique',
|
||||||
|
danse: 'danse',
|
||||||
|
chant: 'chant',
|
||||||
|
jeu: 'jeu',
|
||||||
|
recettecuisine: 'recettecuisine',
|
||||||
|
oeuvre: 'oeuvre',
|
||||||
|
recettealchimique: 'recettealchimique',
|
||||||
|
tache: 'tache',
|
||||||
|
sort: 'sort',
|
||||||
|
sortreserve: 'sortreserve',
|
||||||
rencontre: 'rencontre',
|
rencontre: 'rencontre',
|
||||||
queue: 'queue',
|
queue: 'queue',
|
||||||
ombre: 'ombre',
|
ombre: 'ombre',
|
||||||
souffle: 'souffle',
|
souffle: 'souffle',
|
||||||
tete: 'tete',
|
tete: 'tete',
|
||||||
|
casetmr: 'casetmr',
|
||||||
meditation: 'meditation',
|
meditation: 'meditation',
|
||||||
recettealchimique: 'recettealchimique',
|
|
||||||
chant: 'chant',
|
|
||||||
danse: 'danse',
|
|
||||||
jeu: 'jeu',
|
|
||||||
recettecuisine: 'recettecuisine',
|
|
||||||
musique: 'musique',
|
|
||||||
maladie: 'maladie',
|
|
||||||
poison: 'poison',
|
|
||||||
oeuvre: 'oeuvre',
|
|
||||||
nourritureboisson: 'nourritureboisson',
|
|
||||||
service: 'service',
|
|
||||||
signedraconique: 'signedraconique',
|
signedraconique: 'signedraconique',
|
||||||
gemme: 'gemme',
|
|
||||||
possession: 'possession',
|
|
||||||
sortreserve: 'sortreserve',
|
|
||||||
extraitpoetique: 'extraitpoetique',
|
|
||||||
tarot: 'tarot',
|
tarot: 'tarot',
|
||||||
empoignade: 'empoignade'
|
nombreastral: 'nombreastral',
|
||||||
|
extraitpoetique: 'extraitpoetique',
|
||||||
}
|
}
|
||||||
|
|
||||||
const typesInventaireMateriel = [
|
const typesInventaireMateriel = [
|
||||||
TYPES.arme,
|
TYPES.arme,
|
||||||
TYPES.armure,
|
TYPES.armure,
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export class RdDConteneurItemSheet extends RdDItemInventaireSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareConteneurData(formData) {
|
prepareConteneurData(formData) {
|
||||||
RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
RdDBaseActorSheet.filterItemsPerTypeForSheet(formData, this.actor.itemTypes);
|
||||||
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.objets);
|
this.objetVersConteneur = RdDUtility.buildArbreDeConteneurs(formData.conteneurs, formData.inventaires);
|
||||||
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;
|
formData.subItems = formData.conteneurs.find(it => it._id == this.item.id)?.subItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,15 +58,6 @@ export class RdDCarac {
|
|||||||
selectedCarac?.label.match(/(Apparence|Force|Agilité|Dextérité|Vue|Ouïe|Odorat-Goût|Empathie|Dérobée|Mêlée|Tir|Lancer)/);
|
selectedCarac?.label.match(/(Apparence|Force|Agilité|Dextérité|Vue|Ouïe|Odorat-Goût|Empathie|Dérobée|Mêlée|Tir|Lancer)/);
|
||||||
}
|
}
|
||||||
|
|
||||||
static isIgnoreEtatGeneral(rollData) {
|
|
||||||
const selectedCarac = rollData.selectedCarac;
|
|
||||||
return !selectedCarac ||
|
|
||||||
rollData.ethylisme ||
|
|
||||||
RdDCarac.isChance(selectedCarac) ||
|
|
||||||
(RdDCarac.isReve(selectedCarac) && !rollData.competence);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static computeTotal(carac, beaute = undefined) {
|
static computeTotal(carac, beaute = undefined) {
|
||||||
const total = Object.values(carac ?? {}).filter(c => !c.derivee)
|
const total = Object.values(carac ?? {}).filter(c => !c.derivee)
|
||||||
.map(it => parseInt(it.value))
|
.map(it => parseInt(it.value))
|
||||||
|
|||||||
@@ -314,8 +314,8 @@ export class RdDRoll extends Dialog {
|
|||||||
HtmlUtility.showControlWhen(this.html.find(".use-encTotal"), rollData.ajustements.encTotal.visible && RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac));
|
HtmlUtility.showControlWhen(this.html.find(".use-encTotal"), rollData.ajustements.encTotal.visible && RdDCarac.isAgiliteOuDerobee(rollData.selectedCarac));
|
||||||
HtmlUtility.showControlWhen(this.html.find(".use-surenc"), rollData.ajustements.surenc.visible && RdDCarac.isActionPhysique(rollData.selectedCarac));
|
HtmlUtility.showControlWhen(this.html.find(".use-surenc"), rollData.ajustements.surenc.visible && RdDCarac.isActionPhysique(rollData.selectedCarac));
|
||||||
HtmlUtility.showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral);
|
HtmlUtility.showControlWhen(this.html.find(".utilisation-moral"), rollData.use.appelAuMoral);
|
||||||
HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used);
|
|
||||||
HtmlUtility.showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral);
|
HtmlUtility.showControlWhen(this.html.find(".divAppelAuMoral"), rollData.use.appelAuMoral);
|
||||||
|
HtmlUtility.showControlWhen(this.html.find(".diffMoral"), rollData.ajustements.moralTotal.used);
|
||||||
|
|
||||||
// Mise à jour valeurs
|
// Mise à jour valeurs
|
||||||
this.html.find(".dialog-roll-title").text(this._getTitle(rollData));
|
this.html.find(".dialog-roll-title").text(this._getTitle(rollData));
|
||||||
|
|||||||
@@ -1052,6 +1052,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _computeEventOddq(origEvent) {
|
static _computeEventOddq(origEvent) {
|
||||||
|
console.log("EVENT", origEvent)
|
||||||
let canvasRect = origEvent.target.getBoundingClientRect();
|
let canvasRect = origEvent.target.getBoundingClientRect();
|
||||||
let x = origEvent.clientX - canvasRect.left;
|
let x = origEvent.clientX - canvasRect.left;
|
||||||
let y = origEvent.clientY - canvasRect.top;
|
let y = origEvent.clientY - canvasRect.top;
|
||||||
|
|||||||
@@ -339,13 +339,13 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static buildArbreDeConteneurs(conteneurs, objets) {
|
static buildArbreDeConteneurs(conteneurs, inventaires) {
|
||||||
let objetVersConteneur = {};
|
let objetVersConteneur = {};
|
||||||
// Attribution des objets aux conteneurs
|
// Attribution des objets aux conteneurs
|
||||||
for (let conteneur of conteneurs) {
|
for (let conteneur of conteneurs) {
|
||||||
conteneur.subItems = [];
|
conteneur.subItems = [];
|
||||||
for (let id of conteneur.system.contenu ?? []) {
|
for (let id of conteneur.system.contenu ?? []) {
|
||||||
let objet = objets.find(objet => (id == objet._id));
|
let objet = inventaires.find(objet => (id == objet._id));
|
||||||
if (objet) {
|
if (objet) {
|
||||||
objet.estContenu = true; // Permet de filtrer ce qui est porté dans le template
|
objet.estContenu = true; // Permet de filtrer ce qui est porté dans le template
|
||||||
objetVersConteneur[id] = conteneur._id;
|
objetVersConteneur[id] = conteneur._id;
|
||||||
@@ -354,20 +354,20 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let conteneur of conteneurs) {
|
for (let conteneur of conteneurs) {
|
||||||
conteneur.system.encTotal = RdDUtility.calculEncContenu(conteneur, objets);
|
conteneur.system.encTotal = RdDUtility.calculEncContenu(conteneur, inventaires);
|
||||||
}
|
}
|
||||||
return objetVersConteneur;
|
return objetVersConteneur;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static calculEncContenu(conteneur, objets) {
|
static calculEncContenu(conteneur, inventaires) {
|
||||||
const contenus = (conteneur.system.contenu ?? []).filter(id => id != undefined)
|
const contenus = (conteneur.system.contenu ?? []).filter(id => id != undefined)
|
||||||
.map(id => objets.find(it => (id == it.id)))
|
.map(id => inventaires.find(it => (id == it.id)))
|
||||||
.filter(it => it);
|
.filter(it => it);
|
||||||
let enc = Number(conteneur.system.encombrement ?? 0) * Number(conteneur.system.quantite ?? 1);
|
let enc = Number(conteneur.system.encombrement ?? 0) * Number(conteneur.system.quantite ?? 1);
|
||||||
for (let contenu of contenus) {
|
for (let contenu of contenus) {
|
||||||
if (contenu.type == 'conteneur') {
|
if (contenu.type == 'conteneur') {
|
||||||
enc += RdDUtility.calculEncContenu(contenu, objets);
|
enc += RdDUtility.calculEncContenu(contenu, inventaires);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
enc += Number(contenu.system.encombrement ?? 0) * Number(contenu.system.quantite ?? 1)
|
enc += Number(contenu.system.encombrement ?? 0) * Number(contenu.system.quantite ?? 1)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export const referenceAjustements = {
|
|||||||
getValue: (rollData, actor) => RdDBonus.find(rollData.surpriseDefenseur).attaque,
|
getValue: (rollData, actor) => RdDBonus.find(rollData.surpriseDefenseur).attaque,
|
||||||
},
|
},
|
||||||
etat: {
|
etat: {
|
||||||
isUsed: (rollData, actor) => !RdDCarac.isIgnoreEtatGeneral(rollData),
|
isUsed: (rollData, actor) => !RollDataAjustements.isIgnoreEtatGeneral(rollData),
|
||||||
getLabel: (rollData, actor) => 'Etat général',
|
getLabel: (rollData, actor) => 'Etat général',
|
||||||
getValue: (rollData, actor) => actor.getEtatGeneral({ ethylisme: rollData.forceAlcool != undefined })
|
getValue: (rollData, actor) => actor.getEtatGeneral({ ethylisme: rollData.forceAlcool != undefined })
|
||||||
},
|
},
|
||||||
@@ -177,4 +177,11 @@ export class RollDataAjustements {
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isIgnoreEtatGeneral(rollData) {
|
||||||
|
const selectedCarac = rollData.selectedCarac;
|
||||||
|
return !selectedCarac ||
|
||||||
|
rollData.ethylisme ||
|
||||||
|
RdDCarac.isChance(selectedCarac) ||
|
||||||
|
(RdDCarac.isReve(selectedCarac) && !rollData.competence);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,10 +105,11 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
return buttons
|
return buttons
|
||||||
}
|
}
|
||||||
async maximize() {
|
|
||||||
|
/*async maximize() {
|
||||||
await super.maximize()
|
await super.maximize()
|
||||||
this.render(true)
|
this.render(true)
|
||||||
}
|
}*/
|
||||||
|
|
||||||
async close() { }
|
async close() { }
|
||||||
|
|
||||||
@@ -273,6 +274,7 @@ export class RdDCalendrier extends Application {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rebuildNombresAstraux(showDice = HIDE_DICE) {
|
async rebuildNombresAstraux(showDice = HIDE_DICE) {
|
||||||
if (Misc.isUniqueConnectedGM()) {
|
if (Misc.isUniqueConnectedGM()) {
|
||||||
|
console.log("Astral rebuild")
|
||||||
let newList = [];
|
let newList = [];
|
||||||
for (let i = 0; i < MAX_NOMBRE_ASTRAL; i++) {
|
for (let i = 0; i < MAX_NOMBRE_ASTRAL; i++) {
|
||||||
let dayIndex = this.timestamp.indexDate + i;
|
let dayIndex = this.timestamp.indexDate + i;
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import { Draconique } from "./draconique.js";
|
import { Draconique } from "./draconique.js";
|
||||||
|
import { PixiTMR } from "./pixi-tmr.js";
|
||||||
|
|
||||||
export class CarteTmr extends Draconique {
|
export class CarteTmr extends Draconique {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
console.log("Sprite create 1!!!!")
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ export class Draconique {
|
|||||||
coordTMR: coordTMR
|
coordTMR: coordTMR
|
||||||
};
|
};
|
||||||
token[type ?? this.code()] = linkData;
|
token[type ?? this.code()] = linkData;
|
||||||
|
console.log("SPRITE: ", token.sprite)
|
||||||
|
//PixiTMR.getImgFromCode()
|
||||||
pixiTMR.addTooltip(token.sprite, this.tooltip(linkData));
|
pixiTMR.addTooltip(token.sprite, this.tooltip(linkData));
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,18 +20,20 @@ export class PixiTMR {
|
|||||||
this.callbacksOnAnimate = [];
|
this.callbacksOnAnimate = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
load( onLoad = (loader, resources) => {} ) {
|
async load( onLoad = (loader, resources) => {} ) {
|
||||||
let loader = this.pixiApp.loader;
|
// WIP - Deprecated since v7 : let loader = new PIXI.Loader();
|
||||||
for (const [name, img] of Object.entries(PixiTMR.textures)) {
|
for (const [name, img] of Object.entries(PixiTMR.textures)) {
|
||||||
loader = loader.add(name, img);
|
const texture = await PIXI.Assets.load(img);
|
||||||
|
let image = PIXI.Sprite.from(texture);
|
||||||
}
|
}
|
||||||
loader.onError.add((error, reason) => { console.log("ERROR", error, reason) });
|
onLoad();
|
||||||
loader.load( (loader, resources) => {
|
for (let onAnimate of this.callbacksOnAnimate) {
|
||||||
onLoad(loader, resources);
|
onAnimate();
|
||||||
for (let onAnimate of this.callbacksOnAnimate) {
|
}
|
||||||
onAnimate();
|
}
|
||||||
}
|
|
||||||
});
|
static getImgFromCode(code) {
|
||||||
|
return PixiTMR.textures[code]
|
||||||
}
|
}
|
||||||
|
|
||||||
static register(name, img) {
|
static register(name, img) {
|
||||||
@@ -44,7 +46,9 @@ export class PixiTMR {
|
|||||||
}
|
}
|
||||||
|
|
||||||
carteTmr(code) {
|
carteTmr(code) {
|
||||||
const carteTmr = new PIXI.Sprite(PIXI.utils.TextureCache[code]);
|
let img = PixiTMR.getImgFromCode(code)
|
||||||
|
const carteTmr = new PIXI.Sprite(PIXI.utils.TextureCache[img]);
|
||||||
|
console.log(code, carteTmr)
|
||||||
// Setup the position of the TMR
|
// Setup the position of the TMR
|
||||||
carteTmr.x = 0;
|
carteTmr.x = 0;
|
||||||
carteTmr.y = 0;
|
carteTmr.y = 0;
|
||||||
@@ -52,7 +56,8 @@ export class PixiTMR {
|
|||||||
carteTmr.height = 860;
|
carteTmr.height = 860;
|
||||||
// Rotate around the center
|
// Rotate around the center
|
||||||
carteTmr.anchor.set(0);
|
carteTmr.anchor.set(0);
|
||||||
carteTmr.interactive = true;
|
carteTmr.eventMode = 'dynamic'; // PIXI 7 : Not sure ..
|
||||||
|
// This one is deprecated ; carteTmr.interactive = true;
|
||||||
carteTmr.buttonMode = true;
|
carteTmr.buttonMode = true;
|
||||||
carteTmr.tmrObject = this;
|
carteTmr.tmrObject = this;
|
||||||
if (!this.tmrObject.viewOnly) {
|
if (!this.tmrObject.viewOnly) {
|
||||||
@@ -63,9 +68,10 @@ export class PixiTMR {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sprite(code, options = {}) {
|
sprite(code, options = {}) {
|
||||||
const texture = PIXI.utils.TextureCache[code];
|
let img = PixiTMR.getImgFromCode(code)
|
||||||
|
const texture = PIXI.utils.TextureCache[img];
|
||||||
if (!texture) {
|
if (!texture) {
|
||||||
console.error("Texture manquante", code)
|
console.error("Texture manquante", code, PIXI.utils.TextureCache)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let sprite = new PIXI.Sprite(texture);
|
let sprite = new PIXI.Sprite(texture);
|
||||||
@@ -97,7 +103,8 @@ export class PixiTMR {
|
|||||||
sprite.tooltip = new PIXI.Text(text, tooltipStyle);
|
sprite.tooltip = new PIXI.Text(text, tooltipStyle);
|
||||||
sprite.tooltip.zIndex = tmrTokenZIndex.tooltip;
|
sprite.tooltip.zIndex = tmrTokenZIndex.tooltip;
|
||||||
sprite.isOver = false;
|
sprite.isOver = false;
|
||||||
sprite.interactive = true;
|
// Deprecated : sprite.interactive = true;
|
||||||
|
sprite.eventMode = 'dynamic'; // PIXI 7 To be checked
|
||||||
sprite.on('pointerdown', event => this.onClickBackground(event))
|
sprite.on('pointerdown', event => this.onClickBackground(event))
|
||||||
.on('pointerover', () => this.onShowTooltip(sprite))
|
.on('pointerover', () => this.onShowTooltip(sprite))
|
||||||
.on('pointerout', () => this.onHideTooltip(sprite));
|
.on('pointerout', () => this.onHideTooltip(sprite));
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
162
system.json
162
system.json
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"id": "foundryvtt-reve-de-dragon",
|
"id": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"version": "10.7.15",
|
"version": "11.0.6",
|
||||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.7.15.zip",
|
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-11.0.6.zip",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v11/system.json",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "11",
|
||||||
"verified": "10",
|
"verified": "11",
|
||||||
"maximum": "10"
|
"maximum": "11"
|
||||||
},
|
},
|
||||||
"description": "Rêve de Dragon RPG for FoundryVTT",
|
"description": "Rêve de Dragon RPG for FoundryVTT",
|
||||||
"authors": [
|
"authors": [
|
||||||
@@ -69,7 +69,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/competences.db",
|
"path": "packs/competences.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -78,7 +81,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/arts-et-divertissements.db",
|
"path": "packs/arts-et-divertissements.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -87,7 +92,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/competences-creatures.db",
|
"path": "packs/competences-creatures.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -96,7 +104,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/competences-entites.db",
|
"path": "packs/competences-entites.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -105,7 +116,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/sorts-oniros.db",
|
"path": "packs/sorts-oniros.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -114,7 +127,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/sorts-hypnos.db",
|
"path": "packs/sorts-hypnos.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -123,7 +138,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/sorts-narcos.db",
|
"path": "packs/sorts-narcos.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -132,7 +149,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/sorts-thanatos.db",
|
"path": "packs/sorts-thanatos.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -141,7 +160,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/equipement.db",
|
"path": "packs/equipement.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -150,7 +171,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/maladies-et-poisons.db",
|
"path": "packs/maladies-et-poisons.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -159,7 +183,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/rappel-des-regles.db",
|
"path": "packs/rappel-des-regles.db",
|
||||||
"type": "JournalEntry",
|
"type": "JournalEntry",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -168,7 +194,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/macros.db",
|
"path": "packs/macros.db",
|
||||||
"type": "Macro",
|
"type": "Macro",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -177,7 +205,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/queues-de-dragon.db",
|
"path": "packs/queues-de-dragon.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -186,7 +217,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/ombres-de-thanatos.db",
|
"path": "packs/ombres-de-thanatos.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -195,7 +229,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/souffles-de-dragon.db",
|
"path": "packs/souffles-de-dragon.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -204,7 +241,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/tarot-draconique.db",
|
"path": "packs/tarot-draconique.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -213,7 +252,9 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/extrait-poetique.db",
|
"path": "packs/extrait-poetique.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -222,7 +263,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/tetes-de-dragon-pour-haut-revants.db",
|
"path": "packs/tetes-de-dragon-pour-haut-revants.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -231,7 +275,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/tetes-de-dragon-pour-tous-personnages.db",
|
"path": "packs/tetes-de-dragon-pour-tous-personnages.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -240,7 +287,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/rencontres.db",
|
"path": "packs/rencontres.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -249,7 +299,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/tables-diverses.db",
|
"path": "packs/tables-diverses.db",
|
||||||
"type": "RollTable",
|
"type": "RollTable",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -258,7 +311,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/animaux.db",
|
"path": "packs/animaux.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -267,7 +323,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/voyageurs.db",
|
"path": "packs/voyageurs.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": false,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -276,7 +335,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/vehicules.db",
|
"path": "packs/vehicules.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -285,7 +347,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/archetypes.db",
|
"path": "packs/archetypes.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -294,7 +359,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/humanoides.db",
|
"path": "packs/humanoides.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -303,7 +371,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/entites-de-cauchemar.db",
|
"path": "packs/entites-de-cauchemar.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -312,7 +383,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/invocations.db",
|
"path": "packs/invocations.db",
|
||||||
"type": "Actor",
|
"type": "Actor",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -321,7 +395,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/faune-flore-mineraux.db",
|
"path": "packs/faune-flore-mineraux.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -330,7 +407,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/meditations-et-ecrits.db",
|
"path": "packs/meditations-et-ecrits.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -339,7 +419,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/recettes-alchimiques.db",
|
"path": "packs/recettes-alchimiques.db",
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -348,7 +431,10 @@
|
|||||||
"system": "foundryvtt-reve-de-dragon",
|
"system": "foundryvtt-reve-de-dragon",
|
||||||
"path": "packs/scenes-rdd.db",
|
"path": "packs/scenes-rdd.db",
|
||||||
"type": "Scene",
|
"type": "Scene",
|
||||||
"private": true,
|
"ownership": {
|
||||||
|
"PLAYER": "NONE",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
},
|
||||||
"flags": {}
|
"flags": {}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<span class="equipement-detail">Prix (sols)</span>
|
<span class="equipement-detail">Prix (sols)</span>
|
||||||
<span class="equipement-actions">Actions</span>
|
<span class="equipement-actions">Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each (trier objets) as |item id|}}
|
{{#each (trier inventaires) as |item id|}}
|
||||||
{{#unless item.estContenu}}
|
{{#unless item.estContenu}}
|
||||||
{{#if (ne item.type 'conteneur')}}
|
{{#if (ne item.type 'conteneur')}}
|
||||||
{{buildLigneInventaire item ../options}}
|
{{buildLigneInventaire item ../options}}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{#if @root.options.isObserver}}
|
{{#if @root.options.isObserver}}
|
||||||
<span class="item-name"><h4>Argent et Monnaies (fortune: {{calc.fortune.sols}} sols {{calc.fortune.deniers}} deniers)</h4></span>
|
<span class="item-name"><h4>Argent et Monnaies (fortune: {{calc.fortune.sols}} sols {{calc.fortune.deniers}} deniers)</h4></span>
|
||||||
<ul class="item-list alterne-list">
|
<ul class="item-list alterne-list">
|
||||||
{{#each monnaie as |piece id|}}
|
{{#each monnaies as |piece id|}}
|
||||||
<li class="item flexrow list-item" data-item-id="{{piece._id}}">
|
<li class="item flexrow list-item" data-item-id="{{piece._id}}">
|
||||||
<img class="sheet-competence-img" src="{{piece.img}}" title="{{piece.name}}"/>
|
<img class="sheet-competence-img" src="{{piece.img}}" title="{{piece.name}}"/>
|
||||||
<span class="equipement-nom">{{piece.name}}</span>
|
<span class="equipement-nom">{{piece.name}}</span>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<span class="equipement-detail">Enc.</span>
|
<span class="equipement-detail">Enc.</span>
|
||||||
<span class="equipement-actions">Actions</span>
|
<span class="equipement-actions">Actions</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each objets as |item id|}}
|
{{#each inventaires as |item id|}}
|
||||||
{{#unless item.estContenu}}
|
{{#unless item.estContenu}}
|
||||||
{{#if (ne item.type 'conteneur')}}
|
{{#if (ne item.type 'conteneur')}}
|
||||||
{{buildLigneInventaire item @root.options}}
|
{{buildLigneInventaire item @root.options}}
|
||||||
|
|||||||
Reference in New Issue
Block a user