Utilisation de la compétence draconic

Utiliser le nom de la compétence au lieu du nom de la voie:

=> "Voie d'Hypnos" au lieu de "hypnos"

Permet de définir d'autres compétences de draconic.

Fix de la mise de sort en réserve: utilise correctement l'id du sort
Migration des sorts et sorts en réserve du monde
Migration des compendiums
This commit is contained in:
Vincent Vandemeulebrouck
2022-11-01 00:48:46 +01:00
parent ad9f04de4a
commit ca01bc2605
14 changed files with 218 additions and 179 deletions

View File

@ -812,7 +812,7 @@ export class RdDActor extends Actor {
type: 'sortreserve',
name: sort.name,
img: sort.img,
system: { sortid: sort.id, draconic: (draconic ?? sort.system.draconic), ptreve: ptreve, coord: coord, heurecible: 'Vaisseau' } }],
system: { sortid: sort._id, draconic: (draconic?.name ?? sort.system.draconic), ptreve: ptreve, coord: coord, heurecible: 'Vaisseau' } }],
{ renderSheet: false});
this.currentTMR.updateTokens();
}

View File

@ -95,6 +95,9 @@ export class RdDItemSheet extends ItemSheet {
if (this.item.type == 'arme') {
formData.competences = await RdDUtility.loadItems(it => RdDItemCompetence.isCompetenceArme(it), RdDItemCompetence.actorCompendium(this.actor?.type))
}
if (['sort', 'sortreserve'].includes(this.item.type)) {
formData.competences = await RdDUtility.loadItems(it => RdDItemCompetence.isDraconic(it), RdDItemCompetence.actorCompendium(this.actor?.type))
}
if (this.item.type == 'recettecuisine') {
formData.ingredients = await TextEditor.enrichHTML(this.object.system.ingredients, {async: true})
}

View File

@ -1,5 +1,6 @@
import { LOG_HEAD, SYSTEM_RDD } from "./constants.js";
import { Grammar } from "./grammar.js";
import { Misc } from "./misc.js";
class Migration {
get code() { return "sample"; }
@ -98,12 +99,41 @@ class _10_0_21_VehiculeStructureResistanceMax extends Migration {
}
}
class _10_0_33_MigrationNomsDraconic extends Migration {
get code() { return "competences-creature-parade"; }
get version() { return "10.0.33"; }
migrationNomDraconic(ancien) {
if (typeof ancien == 'string'){
switch (ancien) {
case 'oniros': case "Voie d'Oniros": return "Voie d'Oniros";
case 'hypnos': case "Voie d'Hypnos": return "Voie d'Hypnos";
case 'narcos': case "Voie de Narcos": return "Voie de Narcos";
case 'thanatos': case "Voie de Thanatos": return "Voie de Thanatos";
}
return ancien;
}
else if (typeof ancien.name == 'string') {
return this.migrationNomDraconic(ancien.name)
}
return ancien;
}
async migrate() {
await this.applyItemsUpdates(items => items
.filter(it => ["sort", "sortreserve"].includes(it.type)
&& (typeof it.system.draconic == 'string') || (typeof it.system.draconic?.name == 'string'))
.map(it => { return { _id: it.id, "system.draconic": this.migrationNomDraconic(it.system.draconic)} }));
}
}
export class Migrations {
static getMigrations() {
return [
new _10_0_16_MigrationSortsReserve(),
new _10_0_17_MigrationCompetenceCreature(),
new _10_0_21_VehiculeStructureResistanceMax(),
new _10_0_33_MigrationNomsDraconic(),
];
}

View File

@ -206,7 +206,7 @@ export class RdDUtility {
'systems/foundryvtt-reve-de-dragon/templates/enum-initpremierround.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-niveau-ethylisme.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-rarete.html',
'systems/foundryvtt-reve-de-dragon/templates/sort-draconic.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-draconic.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-type.html',
'systems/foundryvtt-reve-de-dragon/templates/enum-tmr-effet.html',
// Dialogs