forked from public/foundryvtt-reve-de-dragon
Compare commits
10 Commits
62dfa8a580
...
12.0.24
Author | SHA1 | Date | |
---|---|---|---|
37c281b300 | |||
9b1a179a71 | |||
8be4c3343f | |||
6af5a85dc1 | |||
c6d64e09d5 | |||
56c99c5044 | |||
a7862a25e5 | |||
f4b5a4a4d2 | |||
6a17586a6c | |||
40f7ef48c9 |
@ -28,7 +28,7 @@ jobs:
|
||||
version: ${{steps.get_version.outputs.version-without-v}}
|
||||
url: https://www.uberwald.me/gitea/${{gitea.repository}}
|
||||
manifest: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download//${{github.event.release.tag_name}}/system.json
|
||||
download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/foundryvtt-reve-de-dragon-${{github.event.release.tag_name}}.zip
|
||||
download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/rddsystem.zip
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v2
|
||||
@ -46,7 +46,7 @@ jobs:
|
||||
apt update -y
|
||||
apt install -y zip
|
||||
|
||||
- run: zip -r ./foundryvtt-reve-de-dragon-${{github.event.release.tag_name}}.zip system.json template.json README.md LICENSE.txt assets/ fonts/ icons lang/ module/ packs/ pic/ sounds/ styles/ templates/
|
||||
- run: zip -r ./rddsystem.zip system.json template.json README.md LICENSE.txt assets/ fonts/ icons lang/ module/ packs/ pic/ sounds/ styles/ templates/
|
||||
|
||||
- name: setup go
|
||||
uses: actions/setup-go@v3
|
||||
@ -58,6 +58,6 @@ jobs:
|
||||
uses: https://gitea.com/actions/release-action@main
|
||||
with:
|
||||
files: |-
|
||||
./foundryvtt-reve-de-dragon-${{github.event.release.tag_name}}.zip
|
||||
./rddsystem.zip
|
||||
system.json
|
||||
api_key: '${{secrets.ALLOW_PUSH_RELEASE}}'
|
||||
|
24
changelog.md
24
changelog.md
@ -1,4 +1,28 @@
|
||||
# 12.0
|
||||
## 12.0.24 - Les ajustements d'Astrobazzarh
|
||||
- amélioration
|
||||
- meilleure gestion des noms des voies de draconic
|
||||
- affichage du détail des sorts avec le nom de voie, 'court', la difficulté, le coût
|
||||
- corrections
|
||||
- les tas dans les conteneurs peuvent être désempilés sans rendre le conteneur inutilisable
|
||||
- les conteneurs ne peuvent plus être empilés (pour éviter que le contenu de Schroedinger quand on les sépare)
|
||||
- on peut maintenant saisir et supprimer les bonus de cases de manière intuitive
|
||||
|
||||
## 12.0.23 - La bibliothèque d'Astrobazzarh
|
||||
- corrections mineures
|
||||
- meilleure gestion de la parade des armes naturelles
|
||||
- cas de "User lacks permission to update" pour les blessures et les StatusEffects
|
||||
- risque de message d'encaissement non affiché
|
||||
- support de sorts à voies multiples
|
||||
- correction de compendiums
|
||||
- résistance des armes mise à jour
|
||||
- voies multiples pour las sorts de Lecture d'aura, Détection d'aura et Annulation de magie
|
||||
- améliorations "Scriptarium"
|
||||
- recherche des compétences sans accents pour permettre les noms accentués (standard Scriptarium)
|
||||
- affichage r1+ des sorts à coût variable dans la feuille simplifiée
|
||||
- affichage de Corps à corps pour le combat à mains nues dans la feuille simplifiée
|
||||
- dans les compendiums, les compétences Écriture et Épée ont une majuscule accentuée. Les Épée dans le compendium d'équipements référence le nom de compétence accentué.
|
||||
|
||||
## 12.0.21 - La nomination d'Astrobazzarh
|
||||
- Les noms pour les messages dans le tchat sont maintenant ceux des tokens plutôt que ceux des acteurs
|
||||
- Fix: le choix des effets dans les options s'affiche correctement
|
||||
|
@ -3017,15 +3017,16 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
case 'queue':
|
||||
case 'ombre':
|
||||
case 'souffle':
|
||||
await this.onDeleteOwnedDraconique(item, options, id);
|
||||
break;
|
||||
await this.onDeleteOwnedDraconique(item, options, id)
|
||||
break
|
||||
case 'casetmr':
|
||||
await this.onDeleteOwnedCaseTmr(item, options, id);
|
||||
break;
|
||||
await this.onDeleteOwnedCaseTmr(item, options, id)
|
||||
break
|
||||
case 'empoignade':
|
||||
await RdDEmpoignade.deleteLinkedEmpoignade(this.id, item)
|
||||
break;
|
||||
break
|
||||
}
|
||||
super.onDeleteItem(item, options, id)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -213,8 +213,20 @@ export class RdDBaseActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async onPreUpdateItem(item, change, options, id) { }
|
||||
async onCreateItem(item, options, id) { }
|
||||
async onDeleteItem(item, options, id) { }
|
||||
async onUpdateActor(update, options, actorId) { }
|
||||
async onDeleteItem(item, options, id) {
|
||||
if (item.isInventaire()) {
|
||||
this._removeItemFromConteneur(item)
|
||||
}
|
||||
}
|
||||
|
||||
_removeItemFromConteneur(item) {
|
||||
this.items.filter(it => it.isConteneur() && it.system.contenu.includes(item.id))
|
||||
.forEach(conteneur => {
|
||||
const nouveauContenu = conteneur.system.contenu.filter(id => id != item.id);
|
||||
conteneur.update({ 'system.contenu': nouveauContenu });
|
||||
});
|
||||
}
|
||||
|
||||
async onTimeChanging(oldTimestamp, newTimestamp) {
|
||||
this.items.filter(it => it.isFinPeriode(oldTimestamp, newTimestamp))
|
||||
|
@ -238,7 +238,7 @@ export class Mapping {
|
||||
|
||||
static prepareSorts(actor) {
|
||||
const codeVoies = Mapping.getCompetencesCategorie(actor, CATEGORIES_DRACONIC)
|
||||
.map(it => RdDItemSort.getVoieCode(it))
|
||||
.map(it => RdDItemSort.getCodeVoie(it.name))
|
||||
|
||||
return actor.itemTypes[ITEM_TYPES.sort].map(it => Mapping.prepareSort(it, codeVoies))
|
||||
.sort(Misc.ascending(it => `${it.voie} : ${it.description}`))
|
||||
@ -246,7 +246,7 @@ export class Mapping {
|
||||
|
||||
static prepareSort(sort, voies) {
|
||||
return {
|
||||
voie: RdDItemSort.getCodeDraconic(sort, voies),
|
||||
voie: RdDItemSort.getCode(sort, voies),
|
||||
description: Mapping.descriptionSort(sort),
|
||||
bonus: Mapping.bonusCase(sort)
|
||||
}
|
||||
@ -255,21 +255,13 @@ export class Mapping {
|
||||
static descriptionSort(sort) {
|
||||
const ptSeuil = Array(sort.system.coutseuil).map(it => '*')
|
||||
const caseTMR = sort.system.caseTMRspeciale.length > 0 ? Mapping.toVar(sort.system.caseTMRspeciale) : Misc.upperFirst(TMRType[sort.system.caseTMR].name)
|
||||
const ptreve = Mapping.addSpaceToNonNumeric(sort.system.ptreve)
|
||||
const diff = Mapping.addSpaceToNonNumeric(sort.system.difficulte)
|
||||
return `${sort.name}${ptSeuil} (${caseTMR}) R${diff} r${ptreve}`
|
||||
}
|
||||
|
||||
static addSpaceToNonNumeric(value) {
|
||||
return Number.isNumeric(value) || /[-\d].*/.match(String(value)) ? value : ' ' + Mapping.toVar(value)
|
||||
}
|
||||
|
||||
static toVar(value) {
|
||||
return value.replace('variable', 'var')
|
||||
const coutReve = 'r' + RdDItemSort.addSpaceToNonNumeric(sort.system.ptreve)
|
||||
const diff = 'R' + RdDItemSort.addSpaceToNonNumeric(sort.system.difficulte)
|
||||
return `${sort.name}${ptSeuil} (${caseTMR}) ${diff} ${coutReve}`
|
||||
}
|
||||
|
||||
static bonusCase(sort) {
|
||||
const list = RdDItemSort.bonuscaseStringToList(sort.system.bonuscase).sort(Misc.descending(it => it.bonus))
|
||||
const list = RdDItemSort.stringToBonuscases(sort.system.bonuscase).sort(Misc.descending(it => it.bonus))
|
||||
if (list.length > 0) {
|
||||
const bonus = list[0]
|
||||
return `+${bonus.bonus}% en ${bonus.case}`
|
||||
|
@ -13,6 +13,7 @@ import { Misc } from "./misc.js";
|
||||
import { RdDTimestamp } from "./time/rdd-timestamp.js";
|
||||
import { RdDItemCompetenceCreature } from "./item-competencecreature.js";
|
||||
import { ITEM_TYPES, RdDItem } from "./item.js";
|
||||
import { FLEUVE_COORD, TMRUtility } from "./tmr-utility.js";
|
||||
|
||||
/**
|
||||
* Extend the basic ItemSheet for RdD specific items
|
||||
@ -100,55 +101,59 @@ export class RdDItemSheet extends ItemSheet {
|
||||
descriptionmj: await TextEditor.enrichHTML(this.item.system.descriptionmj, { async: true }),
|
||||
isComestible: this.item.getUtilisationCuisine(),
|
||||
options: RdDSheetUtility.mergeDocumentRights(this.options, this.item, this.isEditable),
|
||||
competences: await SystemCompendiums.getCompetences('personnage'),
|
||||
categories: RdDItem.getCategories(this.item.type),
|
||||
}
|
||||
|
||||
if (this.item.type == ITEM_TYPES.competencecreature) {
|
||||
formData.isparade = RdDItemCompetenceCreature.isParade(this.item)
|
||||
formData.isdommages = RdDItemCompetenceCreature.isDommages(this.item)
|
||||
}
|
||||
|
||||
const competences = await SystemCompendiums.getCompetences('personnage');
|
||||
formData.categories = RdDItem.getCategories(this.item.type)
|
||||
if (this.item.type == 'tache' || this.item.type == 'livre' || this.item.type == 'meditation' || this.item.type == 'oeuvre') {
|
||||
if (this.item.type == ITEM_TYPES.tache ||
|
||||
this.item.type == ITEM_TYPES.livre ||
|
||||
this.item.type == ITEM_TYPES.meditation ||
|
||||
this.item.type == ITEM_TYPES.oeuvre) {
|
||||
formData.caracList = foundry.utils.duplicate(game.model.Actor.personnage.carac)
|
||||
formData.caracList["reve-actuel"] = foundry.utils.duplicate(game.model.Actor.personnage.reve.reve)
|
||||
formData.competences = competences;
|
||||
}
|
||||
if (this.item.type == 'arme') {
|
||||
formData.competences = competences.filter(it => it.isCompetenceArme())
|
||||
if (this.item.type == ITEM_TYPES.arme) {
|
||||
formData.competences = formData.competences.filter(it => it.isCompetenceArme())
|
||||
}
|
||||
if (['sort', 'sortreserve'].includes(this.item.type)) {
|
||||
formData.competences = competences.filter(it => RdDItemCompetence.isDraconic(it));
|
||||
}
|
||||
if (this.item.type == 'recettecuisine') {
|
||||
if (this.item.type == ITEM_TYPES.recettecuisine) {
|
||||
formData.ingredients = await TextEditor.enrichHTML(this.object.system.ingredients, { async: true })
|
||||
}
|
||||
if (this.item.type == 'extraitpoetique') {
|
||||
if (this.item.type == ITEM_TYPES.extraitpoetique) {
|
||||
formData.extrait = await TextEditor.enrichHTML(this.object.system.extrait, { async: true })
|
||||
formData.texte = await TextEditor.enrichHTML(this.object.system.texte, { async: true })
|
||||
}
|
||||
if (this.item.type == 'recettealchimique') {
|
||||
RdDAlchimie.processManipulation(this.item, this.actor && this.actor.id);
|
||||
if (this.item.type == ITEM_TYPES.recettealchimique) {
|
||||
RdDAlchimie.processManipulation(this.item, this.actor?.id);
|
||||
formData.manipulation_update = await TextEditor.enrichHTML(this.object.system.manipulation_update, { async: true })
|
||||
formData.utilisation = await TextEditor.enrichHTML(this.object.system.utilisation, { async: true })
|
||||
formData.enchantement = await TextEditor.enrichHTML(this.object.system.enchantement, { async: true })
|
||||
formData.sureffet = await TextEditor.enrichHTML(this.object.system.sureffet, { async: true })
|
||||
}
|
||||
if (this.item.type == 'gemme') {
|
||||
if (this.item.type == ITEM_TYPES.gemme) {
|
||||
formData.gemmeTypeList = RdDGemme.getGemmeTypeOptionList();
|
||||
RdDGemme.calculDataDerivees(this.item);
|
||||
RdDGemme.calculDataDerivees(this.item)
|
||||
}
|
||||
if (this.item.type == 'potion') {
|
||||
await RdDHerbes.addPotionFormData(formData);
|
||||
if (this.item.type == ITEM_TYPES.potion) {
|
||||
RdDHerbes.calculFormData(formData, this.item)
|
||||
}
|
||||
if (formData.options.isOwned && this.item.type == 'herbe' && (formData.system.categorie == 'Soin' || formData.system.categorie == 'Repos')) {
|
||||
formData.isIngredientPotionBase = true;
|
||||
if (this.item.type == ITEM_TYPES.herbe) {
|
||||
if (formData.options.isOwned && ['Soin', 'Repos'].includes(formData.system.categorie)) {
|
||||
formData.isIngredientPotionBase = true;
|
||||
}
|
||||
}
|
||||
if (this.item.type == 'sortreserve') {
|
||||
if (this.item.type == ITEM_TYPES.sortreserve) {
|
||||
const sortId = this.item.system.sortid;
|
||||
formData.competences = formData.competences.filter(it => RdDItemCompetence.isDraconic(it));
|
||||
formData.sort = formData.options.isOwned ? this.item.actor.items.get(sortId) : game.items.get(sortId);
|
||||
}
|
||||
formData.bonusCaseList = RdDItemSort.getBonusCaseList(formData, true);
|
||||
|
||||
if (this.item.type == ITEM_TYPES.sort) {
|
||||
formData.competences = formData.competences.filter(it => RdDItemCompetence.isDraconic(it));
|
||||
formData.bonusCaseList = RdDItemSort.getBonusCaseList(this.item);
|
||||
}
|
||||
return formData;
|
||||
}
|
||||
|
||||
@ -185,6 +190,9 @@ export class RdDItemSheet extends ItemSheet {
|
||||
}
|
||||
}
|
||||
})
|
||||
this.html.find('.delete-bonus-case').click((event) => {
|
||||
this.supprimerBonusCase(event.currentTarget.attributes['data-deleteCoord'].value)
|
||||
})
|
||||
|
||||
this.html.find('.date-enchantement').change((event) => {
|
||||
const jour = Number(this.html.find('input.date-enchantement[name="enchantement.jour"]').val());
|
||||
@ -264,23 +272,66 @@ export class RdDItemSheet extends ItemSheet {
|
||||
}
|
||||
}
|
||||
|
||||
async supprimerBonusCase(deleteCoord){
|
||||
if (this.item.type == ITEM_TYPES.sort) {
|
||||
const oldList = RdDItemSort.getBonusCaseList(this.item)
|
||||
const newList = oldList.filter(it => it.case != deleteCoord);
|
||||
if (newList.length != oldList.length) {
|
||||
await this.item.update({
|
||||
'system.bonuscase': RdDItemSort.bonuscasesToString(newList)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
_updateObject(event, formData) {
|
||||
switch (this.item.type) {
|
||||
case ITEM_TYPES.sort:
|
||||
// Données de bonus de cases ?
|
||||
formData['system.bonuscase'] = RdDItemSort.buildBonuscaseFromArrays(formData.bonusValue, formData.caseValue)
|
||||
formData['system.bonuscase'] = RdDItemSort.bonuscasesToString(RdDItemSheet._listCaseTmr(
|
||||
formData.caseTmrCoord,
|
||||
formData.caseTmrBonus,
|
||||
formData.caseTmrAdd
|
||||
))
|
||||
break
|
||||
case ITEM_TYPES.competence:
|
||||
if (formData['system.niveau'] == undefined) {
|
||||
formData['system.niveau'] = formData['system.base']
|
||||
}
|
||||
formData['system.niveau'] = formData['system.niveau'] ?? formData['system.base']
|
||||
break
|
||||
}
|
||||
|
||||
return this.item.update(formData);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/**
|
||||
* reconstruit les bonus de cases
|
||||
* @param {*} caseTmrCoord tableau des coordonées
|
||||
* @param {*} caseTmrBonus tableau des bonus
|
||||
* @param {*} caseTmrAdd case à ajouter
|
||||
* @returns list d'objets {coord, bonus}
|
||||
*/
|
||||
static _listCaseTmr(caseTmrCoord, caseTmrBonus, caseTmrAdd) {
|
||||
const listCaseTmrCoord = caseTmrCoord == undefined ? [] : Array.isArray(caseTmrCoord) ? caseTmrCoord : [caseTmrCoord]
|
||||
const listCaseTmrBonus = caseTmrBonus == undefined ? [] : Array.isArray(caseTmrBonus) ? caseTmrBonus : [caseTmrBonus]
|
||||
if (caseTmrAdd != undefined && caseTmrAdd != '' && TMRUtility.verifyTMRCoord(caseTmrAdd) && !listCaseTmrCoord.includes(caseTmrAdd)) {
|
||||
listCaseTmrCoord.push(TMRUtility.getTMR(caseTmrAdd).coord)
|
||||
listCaseTmrBonus.push(1)
|
||||
}
|
||||
|
||||
const list = [];
|
||||
const caseChecked = {};
|
||||
for (let i = 0; i < listCaseTmrBonus.length && i < listCaseTmrCoord.length; i++) {
|
||||
const coord = listCaseTmrCoord[i] == FLEUVE_COORD ? FLEUVE_COORD : (listCaseTmrCoord[i]?.toUpperCase() ?? 'A1')
|
||||
const bonus = listCaseTmrBonus[i] ?? 0
|
||||
if (TMRUtility.verifyTMRCoord(coord) && bonus >= 0 && !caseChecked[coord]) {
|
||||
caseChecked[coord] = coord
|
||||
list.push({ case: coord, bonus: bonus })
|
||||
}
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDragStart(event) {
|
||||
}
|
||||
|
@ -2,19 +2,32 @@ import { Grammar } from "./grammar.js";
|
||||
import { RdDItemCompetence } from "./item-competence.js";
|
||||
import { ITEM_TYPES } from "./item.js";
|
||||
import { Misc } from "./misc.js";
|
||||
import { TMRUtility } from "./tmr-utility.js";
|
||||
import { FLEUVE_COORD, TMRUtility } from "./tmr-utility.js";
|
||||
|
||||
const VOIES_DRACONIC = [
|
||||
export const VOIES_DRACONIC = [
|
||||
{ code: 'O', label: "Voie d'Oniros", short: 'Oniros', ordre: 'a' },
|
||||
{ code: 'H', label: "Voie d'Hypnos", short: 'Hypnos', ordre: 'b' },
|
||||
{ code: 'N', label: "Voie de Narcos", short: 'Narcos', ordre: 'c' },
|
||||
{ code: 'T', label: "Voie de Thanatos", short: 'Thanatos', ordre: 'd' },
|
||||
{ code: 'O/H/N/T', label: "Oniros/Hypnos/Narcos/Thanatos", short: 'Oniros/Hypnos/Narcos/Thanatos', ordre: 'e' },
|
||||
{ code: 'O/H/N', label: "Oniros/Hypnos/Narcos", short: "Oniros/Hypnos/Narcos", ordre: 'f' }
|
||||
{ code: 'O/H/N/T', label: "Oniros/Hypnos/Narcos/Thanatos", short: 'O/H/N/T', ordre: 'e' },
|
||||
{ code: 'O/H/N', label: "Oniros/Hypnos/Narcos", short: "O/H/N", ordre: 'f' }
|
||||
]
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class RdDItemSort extends Item {
|
||||
static preloadHandlebars() {
|
||||
Handlebars.registerHelper('itemSort-spaceIfText', val => RdDItemSort.addSpaceToNonNumeric(val))
|
||||
Handlebars.registerHelper('itemSort-codeDraconic', voie => RdDItemSort.getCode(voie))
|
||||
Handlebars.registerHelper('itemSort-shortDraconic', voie => RdDItemSort.getShortVoie(voie))
|
||||
}
|
||||
|
||||
static addSpaceToNonNumeric(value) {
|
||||
return Number.isNumeric(value) || ['-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes( String(value).charAt[0]) ? value : ' ' + RdDItemSort.toVar(value)
|
||||
}
|
||||
|
||||
static toVar(value) {
|
||||
return value ? value.replace('variable', 'var') : ''
|
||||
}
|
||||
|
||||
static getDraconicsSort(competencesDraconic, sort) {
|
||||
// se baser sur la voie du sort?
|
||||
@ -33,20 +46,23 @@ export class RdDItemSort extends Item {
|
||||
return (VOIES_DRACONIC.find(it => it.code == code)?.ordre ?? '?')
|
||||
}
|
||||
|
||||
static getVoieCode(voie) {
|
||||
return VOIES_DRACONIC.find(it => voie.name.includes(it.short))?.code ?? '?'
|
||||
static getCodeVoie(voie) {
|
||||
return VOIES_DRACONIC.find(it => [it.code, it.short, it.label].includes(voie))?.code ?? '?'
|
||||
}
|
||||
|
||||
static getCodeDraconic(sort, voies = ['O', 'H', 'N', 'T']) {
|
||||
static getShortVoie(voie) {
|
||||
return VOIES_DRACONIC.find(it => [it.code, it.short, it.label].includes(voie))?.short ?? voie
|
||||
}
|
||||
|
||||
static getCode(sort, codeVoies = ['O', 'H', 'N', 'T']) {
|
||||
switch (Grammar.toLowerCaseNoAccent(sort.name)) {
|
||||
case "lecture d'aura":
|
||||
case "detection d'aura":
|
||||
return RdDItemSort.$voiesConnues('O/H/N/T', voies)
|
||||
return RdDItemSort.$voiesConnues('O/H/N/T', codeVoies)
|
||||
case "annulation de magie":
|
||||
return RdDItemSort.$voiesConnues('O/H/N', voies)
|
||||
return RdDItemSort.$voiesConnues('O/H/N', codeVoies)
|
||||
}
|
||||
const voie = VOIES_DRACONIC.find(it => it.label.includes(sort.system.draconic))
|
||||
return voie?.code ?? sort.system.draconic
|
||||
return RdDItemSort.getCodeVoie(sort.system.draconic)
|
||||
}
|
||||
|
||||
static $voiesConnues(voiesSort, voies) {
|
||||
@ -80,89 +96,60 @@ export class RdDItemSort extends Item {
|
||||
return variable;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static buildBonusCaseList(bonuscase, newCase) {
|
||||
const list = RdDItemSort.bonuscaseStringToList(bonuscase)
|
||||
if (newCase) {
|
||||
list.push({ case: "Nouvelle", bonus: 0 })
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne une liste de bonus/case pour un item-sheet
|
||||
* @param {} item
|
||||
*/
|
||||
static getBonusCaseList(item, newCase = false) {
|
||||
static getBonusCaseList(item) {
|
||||
// Gestion spéciale case bonus
|
||||
if (item.type == ITEM_TYPES.sort) {
|
||||
return RdDItemSort.buildBonusCaseList(item.system.bonuscase, newCase);
|
||||
return RdDItemSort.stringToBonuscases(item.system.bonuscase)
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** Met à jour les données de formulaire
|
||||
* si static des bonus de cases sont présents
|
||||
* */
|
||||
static buildBonuscaseFromArrays(bonuses, coords) {
|
||||
if (bonuses) {
|
||||
const list = [];
|
||||
const caseCheck = {};
|
||||
for (let i = 0; i < bonuses.length && i < coords.length; i++) {
|
||||
const coord = coords[i] == 'Fleuve' ? 'Fleuve' : (coords[i]?.toUpperCase() ?? 'A1');
|
||||
const bonus = bonuses[i] || 0;
|
||||
if (TMRUtility.verifyTMRCoord(coord) && bonus > 0 && caseCheck[coord] == undefined) {
|
||||
caseCheck[coord] = bonus;
|
||||
list.push({ case: coord, bonus: bonus });
|
||||
}
|
||||
}
|
||||
return RdDItemSort._bonuscaseListToString(list);
|
||||
}
|
||||
return undefined;
|
||||
return [];
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static incrementBonusCase(actor, sort, coord) {
|
||||
if (TMRUtility.getTMR(coord).type == "fleuve") {
|
||||
coord = 'Fleuve';
|
||||
if (TMRUtility.isFleuve(coord)) {
|
||||
coord = FLEUVE_COORD;
|
||||
}
|
||||
let list = RdDItemSort.stringToBonuscases(sort.system.bonuscase);
|
||||
const existing = list.find(it => it.case == coord)
|
||||
const bonus = Number(existing?.bonus ?? 0) + 1
|
||||
if (existing) {
|
||||
existing.bonus = bonus
|
||||
}
|
||||
else {
|
||||
list.push({ case: coord, bonus: 1 })
|
||||
}
|
||||
const list = RdDItemSort.buildBonusCaseList(sort.system.bonuscase, false);
|
||||
const bonus = Number(list.find(it => it.case == coord)?.bonus ?? 0);
|
||||
const modified = { case: coord, bonus: bonus + 1 };
|
||||
|
||||
const bonuscase = RdDItemSort._bonuscaseListToString(
|
||||
list.filter(it => it.case != coord).concat(modified)
|
||||
);
|
||||
|
||||
// Sauvegarde/update
|
||||
actor.updateEmbeddedDocuments('Item', [{ _id: sort._id, 'system.bonuscase': bonuscase }]);
|
||||
actor.updateEmbeddedDocuments('Item', [{ _id: sort._id, 'system.bonuscase': RdDItemSort.bonuscasesToString(list) }]);
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getCaseBonus(sort, coord) {
|
||||
const isFleuve = TMRUtility.getTMR(coord).type == "fleuve";
|
||||
|
||||
let bc = RdDItemSort.buildBonusCaseList(sort.system.bonuscase, false)
|
||||
.filter(it => it.case == coord || (isFleuve && it.case == 'Fleuve'))
|
||||
.find(it => true)
|
||||
const search = TMRUtility.isFleuve(coord)
|
||||
? it => it.case == 'Fleuve'
|
||||
: it => it.case == coord;
|
||||
const bc = RdDItemSort.stringToBonuscases(sort.system.bonuscase)
|
||||
.find(search)
|
||||
return Number(bc?.bonus ?? 0);
|
||||
}
|
||||
|
||||
static _bonuscaseListToString(list) {
|
||||
static bonuscasesToString(list) {
|
||||
return list.map(it => `${it.case}:${it.bonus}`)
|
||||
.sort(Misc.ascending())
|
||||
.join(',');
|
||||
}
|
||||
static bonuscaseStringToList(bonuscase) {
|
||||
|
||||
static stringToBonuscases(bonuscase) {
|
||||
if (bonuscase == undefined || bonuscase == '') {
|
||||
return []
|
||||
}
|
||||
return bonuscase.split(',').map(it => {
|
||||
const b = it.split(':');
|
||||
return { case: b[0], bonus: b[1] };
|
||||
});
|
||||
return bonuscase.split(',')
|
||||
.map(it => it.split(':'))
|
||||
.map(it => { return { case: it[0], bonus: it[1] } });
|
||||
}
|
||||
|
||||
}
|
@ -571,6 +571,7 @@ export class RdDItem extends Item {
|
||||
else {
|
||||
await this.quantiteIncDec(item.system.quantite);
|
||||
}
|
||||
// TODO: suppression dans les conteneurs!
|
||||
await item.delete();
|
||||
}
|
||||
|
||||
@ -601,6 +602,9 @@ export class RdDItem extends Item {
|
||||
if (!other || !this.isInventaire()) {
|
||||
return [false, undefined];
|
||||
}
|
||||
if (this.isConteneur()){
|
||||
return [false, `Impossible de regrouper des conteneurs, ils ne sont pas empilables`];
|
||||
}
|
||||
if (this.system.quantite == undefined) {
|
||||
return [false, `Impossible de regrouper des ${this.type}, ils ne sont pas empilables`];
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { Monnaie } from "./item-monnaie.js";
|
||||
import { RdDItem, ITEM_TYPES } from "./item.js";
|
||||
import { RdDTimestamp } from "./time/rdd-timestamp.js";
|
||||
import { RdDRaretes } from "./item/raretes.js";
|
||||
import { RdDCalendrier } from "./time/rdd-calendrier.js";
|
||||
import { VOIES_DRACONIC } from "./item-sort.js";
|
||||
|
||||
class Migration {
|
||||
get code() { return "sample"; }
|
||||
@ -530,6 +530,32 @@ class _11_2_20_MigrationAstrologie extends Migration {
|
||||
}
|
||||
}
|
||||
|
||||
class _12_0_24_MigrationVoieSorts extends Migration {
|
||||
get code() { return "migration-voies-sorts" }
|
||||
get version() { return "12.0.24" }
|
||||
|
||||
async migrate() {
|
||||
await this.applyItemsUpdates(items => items
|
||||
.filter(it => ITEM_TYPES.sort == it.type)
|
||||
.map(it => this.migrateSort(it))
|
||||
)
|
||||
}
|
||||
migrateSort(it) {
|
||||
return {
|
||||
_id: it.id,
|
||||
'system.draconic': this.convertDraconic(it.system.draconic),
|
||||
}
|
||||
}
|
||||
convertDraconic(draconic) {
|
||||
for (let v of VOIES_DRACONIC) {
|
||||
if ([v.label, v.short, v.code].includes(draconic)) {
|
||||
return v.short
|
||||
}
|
||||
}
|
||||
return draconic
|
||||
}
|
||||
}
|
||||
|
||||
export class Migrations {
|
||||
static getMigrations() {
|
||||
return [
|
||||
|
@ -360,13 +360,14 @@ export class RdDCommands {
|
||||
|
||||
async getTMRAleatoire(msg, params) {
|
||||
if (params.length < 2) {
|
||||
let type = params[0];
|
||||
const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == type) : (it => true));
|
||||
return RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
let type = params[0]
|
||||
const solvedTerrain = TMRUtility.findTMRLike(type)?.type
|
||||
if (solvedTerrain){
|
||||
const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == solvedTerrain) : (it => true))
|
||||
return RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`)
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async findTMR(msg, params) {
|
||||
@ -384,11 +385,11 @@ export class RdDCommands {
|
||||
async tableRencontres(msg, params) {
|
||||
if (params && params.length > 0) {
|
||||
const search = Misc.join(params, ' ');
|
||||
const solvedTerrain = TMRUtility.findTMRLike(search);
|
||||
const solvedTerrain = TMRUtility.findTMRLike(search)
|
||||
if (solvedTerrain == undefined) {
|
||||
return RdDCommands._chatAnswer(msg, 'Aucune TMR correspondant à ' + search);
|
||||
}
|
||||
return await game.system.rdd.rencontresTMR.chatTable(solvedTerrain);
|
||||
return await game.system.rdd.rencontresTMR.chatTable(solvedTMRType.name)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -28,9 +28,9 @@ export class RdDHerbes extends Item {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async addPotionFormData(formData) {
|
||||
formData.isSoins = formData.system.categorie.includes('Soin');
|
||||
formData.isRepos = formData.system.categorie.includes('Repos');
|
||||
static calculFormData(formData, item) {
|
||||
formData.isSoins = item.system.categorie.includes('Soin');
|
||||
formData.isRepos = item.system.categorie.includes('Repos');
|
||||
if (formData.isSoins) {
|
||||
RdDHerbes.calculBonusHerbe(formData, this.herbesSoins, 12);
|
||||
}
|
||||
@ -40,7 +40,7 @@ export class RdDHerbes extends Item {
|
||||
formData.herbesSoins = RdDHerbes.buildHerbesList(this.herbesSoins, 12);
|
||||
formData.herbesRepos = RdDHerbes.buildHerbesList(this.herbesRepos, 7);
|
||||
formData.dateActuelle = game.system.rdd.calendrier.dateCourante();
|
||||
formData.enchantement = RdDTimestamp.splitIndexDate(formData.system.prdate);
|
||||
formData.enchantement = RdDTimestamp.splitIndexDate(item.system.prdate);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -69,6 +69,7 @@ import { ExportScriptarium } from "./actor/export-scriptarium/export-scriptarium
|
||||
import { AppPersonnageAleatoire } from "./actor/random/app-personnage-aleatoire.js"
|
||||
import { RdDActorExportSheet } from "./actor/export-scriptarium/actor-encart-sheet.js"
|
||||
import { RdDStatBlockParser } from "./apps/rdd-import-stats.js"
|
||||
import { RdDItemSort } from "./item-sort.js"
|
||||
|
||||
/**
|
||||
* RdD system
|
||||
@ -122,6 +123,7 @@ export class SystemReveDeDragon {
|
||||
// preload handlebars templates
|
||||
RdDUtility.preloadHandlebarsTemplates()
|
||||
AppPersonnageAleatoire.preloadHandlebars()
|
||||
RdDItemSort.preloadHandlebars()
|
||||
|
||||
/* -------------------------------------------- */
|
||||
ReglesOptionnelles.initSettings()
|
||||
|
@ -284,23 +284,20 @@ export class CompendiumTableHelpers {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async tableRowToChatMessage(row, type = 'Item') {
|
||||
static async tableRowToChatMessage(row, type, options = {showSource: true}) {
|
||||
if (!row) {
|
||||
return;
|
||||
}
|
||||
const percentages = (row.total == 100) ? '%' : ''
|
||||
const flavorContent = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/chat-compendium-table-roll.hbs', {
|
||||
roll: row.roll,
|
||||
document: row.document,
|
||||
percentages,
|
||||
typeName: Misc.typeName(type, row.document?.type ?? 'objet'),
|
||||
isGM: game.user.isGM,
|
||||
options
|
||||
});
|
||||
const messageData = {
|
||||
// flavor: flavorContent,
|
||||
user: game.user.id,
|
||||
type: CONST.CHAT_MESSAGE_TYPES.ROLL,
|
||||
roll: row.roll,
|
||||
rolls: [row.roll],
|
||||
sound: CONFIG.sounds.dice,
|
||||
content: flavorContent
|
||||
};
|
||||
|
@ -26,22 +26,19 @@ export class TMRRencontres {
|
||||
* @param {*} forcedRoll
|
||||
*/
|
||||
async rollRencontre(terrain, forcedRoll) {
|
||||
terrain = TMRUtility.findTMRLike(terrain);
|
||||
if (terrain == undefined) {
|
||||
const tmrType = TMRUtility.findTMRLike(terrain)?.type
|
||||
if (tmrType == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (forcedRoll && (forcedRoll <= 0 || forcedRoll > 100)) {
|
||||
forcedRoll = undefined;
|
||||
}
|
||||
const codeTerrain = Grammar.toLowerCaseNoAccent(terrain)
|
||||
const filtreMauvaise = codeTerrain == 'mauvaise' ? it => it.system.mauvaiseRencontre : it => !it.system.mauvaiseRencontre;
|
||||
const frequence = it => it.system.frequence[codeTerrain];
|
||||
const filtreMauvaise = tmrType == 'mauvaise' ? it => it.system.mauvaiseRencontre : it => !it.system.mauvaiseRencontre;
|
||||
const frequence = it => it.system.frequence[tmrType];
|
||||
const row = await this.table.getRandom(frequence, filtreMauvaise, forcedRoll);
|
||||
if (row) {
|
||||
console.log("DORM", row);
|
||||
//row.document.system.computedForce = new Roll(row.document.system.formula).roll({async: false}).total;
|
||||
await CompendiumTableHelpers.tableRowToChatMessage(row);
|
||||
await CompendiumTableHelpers.tableRowToChatMessage(row, 'Item', {showSource: false});
|
||||
}
|
||||
|
||||
return row?.document;
|
||||
|
@ -2,228 +2,216 @@ import { Misc } from "./misc.js";
|
||||
import { Grammar } from "./grammar.js";
|
||||
import { RdDDice } from "./rdd-dice.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const TMRMapping = {
|
||||
A1: { type: "cite", label: "Cité Vide" },
|
||||
B1: { type: "plaines", label: "Plaines d’Assorh" },
|
||||
C1: { type: "necropole", label: "Nécropole de Kroak" },
|
||||
D1: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
E1: { type: "monts", label: "Monts de Kanaï" },
|
||||
F1: { type: "cite", label: "Cité Glauque" },
|
||||
G1: { type: "desolation", label: "Désolation de Jamais" },
|
||||
H1: { type: "lac", label: "Lac d’Anticalme" },
|
||||
I1: { type: "plaines", label: "Plaines Grises" },
|
||||
J1: { type: "monts", label: "Monts Fainéants" },
|
||||
K1: { type: "cite", label: "Cité d’Onkause" },
|
||||
L1: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
M1: { type: "cite", label: "Cité Jalouse" },
|
||||
|
||||
A2: { type: "desert", label: "Désert de Mieux" },
|
||||
B2: { type: "collines", label: "Collines de Dawell" },
|
||||
C2: { type: "marais", label: "Marais Glignants" },
|
||||
D2: { type: "cite", label: "Cité de Frost" },
|
||||
E2: { type: "plaines", label: "Plaines de Fiask" },
|
||||
F2: { type: "lac", label: "Lac de Misère" },
|
||||
G2: { type: "marais", label: "Marais Nuisants" },
|
||||
H2: { type: "collines", label: "Collines de Parta" },
|
||||
I2: { type: "foret", label: "Forêt Fade" },
|
||||
J2: { type: "desert", label: "Désert de Poly" },
|
||||
K2: { type: "foret", label: "Forêt Tamée" },
|
||||
L2: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
M2: { type: "necropole", label: "Nécropole de Logos" },
|
||||
|
||||
A3: { type: "desolation", label: "Désolation de Demain" },
|
||||
B3: { type: "plaines", label: "Plaines de Rubéga" },
|
||||
C3: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
D3: { type: "gouffre", label: "Gouffre d’Oki" },
|
||||
E3: { type: "foret", label: "Forêt d’Estoubh" },
|
||||
F3: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
G3: { type: "gouffre", label: "Gouffre de Sun" },
|
||||
H3: { type: "foret", label: "Forêt de Ganna" },
|
||||
I3: { type: "monts", label: "Monts Grinçants" },
|
||||
J3: { type: "cite", label: "Cité Venin" },
|
||||
K3: { type: "plaines", label: "Plaines de Dois" },
|
||||
L3: { type: "lac", label: "Lac Laineux" },
|
||||
M3: { type: "monts", label: "Monts de Vdah" },
|
||||
|
||||
A4: { type: "foret", label: "Forêt de Falconax" },
|
||||
B4: { type: "monts", label: "Monts Crâneurs" },
|
||||
C4: { type: "pont", label: "Pont de Giolii" },
|
||||
D4: { type: "lac", label: "Lac de Foam" },
|
||||
E4: { type: "plaines", label: "Plaines d’Orti" },
|
||||
F4: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
G4: { type: "sanctuaire", label: "Sanctuaire Blanc" },
|
||||
H4: { type: "plaines", label: "Plaines de Psark" },
|
||||
I4: { type: "plaines", label: "Plaines de Xiax" },
|
||||
J4: { type: "collines", label: "Collines d’Encre" },
|
||||
K4: { type: "pont", label: "Pont de Fah" },
|
||||
L4: { type: "sanctuaire", label: "Sanctuaire Mauve" },
|
||||
M4: { type: "gouffre", label: "Gouffre Grisant" },
|
||||
|
||||
A5: { type: "plaines", label: "Plaines de Trilkh" },
|
||||
B5: { type: "collines", label: "Collines de Tanegy" },
|
||||
C5: { type: "marais", label: "Marais Flouants" },
|
||||
D5: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
E5: { type: "monts", label: "Monts Brûlants" },
|
||||
F5: { type: "cite", label: "Cité de Panople" },
|
||||
G5: { type: "pont", label: "Pont d’Ik" },
|
||||
H5: { type: "desert", label: "Désert de Krane" },
|
||||
I5: { type: "desolation", label: "Désolation de Toujours" },
|
||||
J5: { type: "marais", label: "Marais de Jab" },
|
||||
K5: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
L5: { type: "collines", label: "Collines Suaves" },
|
||||
M5: { type: "cite", label: "Cité Rimarde" },
|
||||
|
||||
A6: { type: "necropole", label: "Nécropole de Zniak" },
|
||||
B6: { type: "foret", label: "Forêt de Bust" },
|
||||
C6: { type: "cite", label: "Cité Pavois" },
|
||||
D6: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
E6: { type: "sanctuaire", label: "Sanctuaire de Plaine" },
|
||||
F6: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
G6: { type: "marais", label: "Marais Glutants" },
|
||||
H6: { type: "monts", label: "Monts Gurdes" },
|
||||
I6: { type: "necropole", label: "Nécropole de Xotar" },
|
||||
J6: { type: "lac", label: "Lac d’Iaupe" },
|
||||
K6: { type: "desolation", label: "Désolation de Poor" },
|
||||
L6: { type: "foret", label: "Forêt Gueuse" },
|
||||
M6: { type: "desolation", label: "Désolation de Presque" },
|
||||
|
||||
A7: { type: "plaines", label: "Plaines de l’Arc" },
|
||||
B7: { type: "marais", label: "Marais Bluants" },
|
||||
C7: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
D7: { type: "plaines", label: "Plaines d’Affa" },
|
||||
E7: { type: "foret", label: "Forêt de Glusks" },
|
||||
F7: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
G7: { type: "cite", label: "Cité de Terwa" },
|
||||
H7: { type: "gouffre", label: "Gouffre de Kapfa" },
|
||||
I7: { type: "plaines", label: "Plaines de Troo" },
|
||||
J7: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
K7: { type: "cite", label: "Cité de Kolix" },
|
||||
L7: { type: "gouffre", label: "Gouffre d’Episophe" },
|
||||
M7: { type: "desert", label: "Désert de Lave" },
|
||||
|
||||
A8: { type: "gouffre", label: "Gouffre de Shok" },
|
||||
B8: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
C8: { type: "foret", label: "Forêt Turmide" },
|
||||
D8: { type: "cite", label: "Cité d’Olak" },
|
||||
E8: { type: "plaines", label: "Plaines d’Iolise" },
|
||||
F8: { type: "lac", label: "Lac des Chats" },
|
||||
G8: { type: "plaines", label: "Plaines Sans Joie" },
|
||||
H8: { type: "foret", label: "Forêt d’Ourf" },
|
||||
I8: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
J8: { type: "monts", label: "Monts Barask" },
|
||||
K8: { type: "desert", label: "Désert de Fumée" },
|
||||
L8: { type: "monts", label: "Monts Tavelés" },
|
||||
M8: { type: "plaines", label: "Plaines Lavées" },
|
||||
|
||||
A9: { type: "collines", label: "Collines de Korrex" },
|
||||
B9: { type: "lac", label: "Lac de Lucre" },
|
||||
C9: { type: "monts", label: "Monts Tuméfiés" },
|
||||
D9: { type: "pont", label: "Pont d’Orx" },
|
||||
E9: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
F9: { type: "plaines", label: "Plaines de Foe" },
|
||||
G9: { type: "desolation", label: "Désolation de Sel" },
|
||||
H9: { type: "collines", label: "Collines de Noirseul" },
|
||||
I9: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
J9: { type: "marais", label: "Marais Gronchants" },
|
||||
K9: { type: "sanctuaire", label: "Sanctuaire Noir" },
|
||||
L9: { type: "collines", label: "Collines Cornues" },
|
||||
M9: { type: "necropole", label: "Nécropole de Zonar" },
|
||||
|
||||
A10: { type: "sanctuaire", label: "Sanctuaire d’Olis" },
|
||||
B10: { type: "monts", label: "Monts Salés" },
|
||||
C10: { type: "marais", label: "Marais de Dom" },
|
||||
D10: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
E10: { type: "gouffre", label: "Gouffre de Junk" },
|
||||
F10: { type: "marais", label: "Marais Zultants" },
|
||||
G10: { type: "cite", label: "Cité de Sergal" },
|
||||
H10: { type: "plaines", label: "Plaines Noires" },
|
||||
I10: { type: "lac", label: "Lac Wanito" },
|
||||
J10: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
K10: { type: "plaines", label: "Plaines Jaunes" },
|
||||
L10: { type: "desert", label: "Désert de Nicrop" },
|
||||
M10: { type: "foret", label: "Forêt de Jajou" },
|
||||
|
||||
A11: { type: "desolation", label: "Désolation d’Hier" },
|
||||
B11: { type: "cite", label: "Cité de Brilz" },
|
||||
C11: { type: "pont", label: "Pont de Roï" },
|
||||
D11: { type: "desolation", label: "Désolation de Partout" },
|
||||
E11: { type: "lac", label: "Lac de Glinster" },
|
||||
F11: { type: "cite", label: "Cité de Noape" },
|
||||
G11: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
H11: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
I11: { type: "pont", label: "Pont de Yalm" },
|
||||
J11: { type: "plaines", label: "Plaines de Miltiar" },
|
||||
K11: { type: "cite", label: "Cité Tonnerre" },
|
||||
L11: { type: "collines", label: "Collines de Kol" },
|
||||
M11: { type: "cite", label: "Cité Crapaud" },
|
||||
|
||||
A12: { type: "plaines", label: "Plaines Sages" },
|
||||
B12: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
C12: { type: "lac", label: "Lac de Fricassa" },
|
||||
D12: { type: "collines", label: "Collines d’Huaï" },
|
||||
E12: { type: "monts", label: "Monts Ajourés" },
|
||||
F12: { type: "necropole", label: "Nécropole de Throat" },
|
||||
G12: { type: "plaines", label: "Plaines de Lufmil" },
|
||||
H12: { type: "collines", label: "Collines de Tooth" },
|
||||
I12: { type: "gouffre", label: "Gouffre Abimeux" },
|
||||
J12: { type: "cite", label: "Cité Folle" },
|
||||
K12: { type: "desolation", label: "Désolation d’Amour" },
|
||||
L12: { type: "plaines", label: "Plaines Venteuses" },
|
||||
M12: { type: "collines", label: "Collines Révulsantes" },
|
||||
|
||||
A13: { type: "fleuve", label: "Fleuve de l'Oubli" },
|
||||
B13: { type: "gouffre", label: "Gouffre des Litiges" },
|
||||
C13: { type: "desert", label: "Désert de Neige" },
|
||||
D13: { type: "cite", label: "Cité Sordide" },
|
||||
E13: { type: "plaines", label: "Plaines de Xnez" },
|
||||
F13: { type: "foret", label: "Forêt des Cris" },
|
||||
G13: { type: "plaines", label: "Plaines Calcaires" },
|
||||
H13: { type: "desolation", label: "Désolation de Rien" },
|
||||
I13: { type: "monts", label: "Monts Bigleux" },
|
||||
J13: { type: "gouffre", label: "Gouffre de Gromph" },
|
||||
K13: { type: "foret", label: "Forêt de Kluth" },
|
||||
L13: { type: "monts", label: "Monts Dormants" },
|
||||
M13: { type: "plaines", label: "Plaines d’Anjou" },
|
||||
|
||||
A14: { type: "collines", label: "Collines de Stolis" },
|
||||
B14: { type: "necropole", label: "Nécropole de Gorlo" },
|
||||
C14: { type: "foret", label: "Forêt de Bissam" },
|
||||
D14: { type: "sanctuaire", label: "Sanctuaire Plat" },
|
||||
E14: { type: "monts", label: "Monts de Quath" },
|
||||
F14: { type: "plaines", label: "Plaines Brisées" },
|
||||
G14: { type: "desert", label: "Désert de Sek" },
|
||||
H14: { type: "plaines", label: "Plaines Blanches" },
|
||||
I14: { type: "cite", label: "Cité Destituée" },
|
||||
J14: { type: "desert", label: "Désert de Sank" },
|
||||
K14: { type: "necropole", label: "Nécropole d’Antinéar" },
|
||||
L14: { type: "plaines", label: "Plaines de Jislith" },
|
||||
M14: { type: "desolation", label: "Désolation d’Après" },
|
||||
|
||||
A15: { type: "cite", label: "Cité de Mielh" },
|
||||
C15: { type: "plaines", label: "Plaines de Toué" },
|
||||
E15: { type: "foret", label: "Forêt des Furies" },
|
||||
G15: { type: "plaines", label: "Plaines des Soupirs" },
|
||||
I15: { type: "monts", label: "Monts des Dragées" },
|
||||
K15: { type: "collines", label: "Collines Pourpres" },
|
||||
M15: { type: "cite", label: "Cité de Klana" }
|
||||
export const TMRType = {
|
||||
cite: { type: 'cite', name: "cité", genre: "f" },
|
||||
sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' },
|
||||
plaines: { type: 'plaines', name: "plaines", genre: "fp" },
|
||||
pont: { type: 'pont', name: "pont", genre: "m" },
|
||||
collines: { type: 'collines', name: "collines", genre: "p" },
|
||||
foret: { type: 'foret', name: "forêt", genre: "f" },
|
||||
monts: { type: 'monts', name: "monts", genre: "p" },
|
||||
desert: { type: 'desert', name: "désert", genre: "m" },
|
||||
fleuve: { type: 'fleuve', name: "fleuve", genre: "m" },
|
||||
lac: { type: 'lac', name: "lac", genre: "m" },
|
||||
marais: { type: 'marais', name: "marais", genre: "m" },
|
||||
gouffre: { type: 'gouffre', name: "gouffre", genre: "m" },
|
||||
necropole: { type: 'necropole', name: "nécropole", genre: "f" },
|
||||
desolation: { type: 'desolation', name: "désolation", genre: "f" }
|
||||
}
|
||||
|
||||
export const TMRType = {
|
||||
cite: { name: "cité", genre: "f" },
|
||||
sanctuaire: { name: "sanctuaire", genre: 'm' },
|
||||
plaines: { name: "plaines", genre: "fp" },
|
||||
pont: { name: "pont", genre: "m" },
|
||||
collines: { name: "collines", genre: "p" },
|
||||
foret: { name: "forêt", genre: "f" },
|
||||
monts: { name: "monts", genre: "p" },
|
||||
desert: { name: "désert", genre: "m" },
|
||||
fleuve: { name: "fleuve", genre: "m" },
|
||||
lac: { name: "lac", genre: "m" },
|
||||
marais: { name: "marais", genre: "m" },
|
||||
gouffre: { name: "gouffre", genre: "m" },
|
||||
necropole: { name: "nécropole", genre: "f" },
|
||||
desolation: { name: "désolation", genre: "f" }
|
||||
export const FLEUVE_COORD = 'Fleuve'
|
||||
|
||||
const TMRMapping = {
|
||||
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
||||
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
||||
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
||||
D1: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
E1: { type: TMRType.monts.type, label: "Monts de Kanaï" },
|
||||
F1: { type: TMRType.cite.type, label: "Cité Glauque" },
|
||||
G1: { type: TMRType.desolation.type, label: "Désolation de Jamais" },
|
||||
H1: { type: TMRType.lac.type, label: "Lac d’Anticalme" },
|
||||
I1: { type: TMRType.plaines.type, label: "Plaines Grises" },
|
||||
J1: { type: TMRType.monts.type, label: "Monts Fainéants" },
|
||||
K1: { type: TMRType.cite.type, label: "Cité d’Onkause" },
|
||||
L1: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
M1: { type: TMRType.cite.type, label: "Cité Jalouse" },
|
||||
A2: { type: TMRType.desert.type, label: "Désert de Mieux" },
|
||||
B2: { type: TMRType.collines.type, label: "Collines de Dawell" },
|
||||
C2: { type: TMRType.marais.type, label: "Marais Glignants" },
|
||||
D2: { type: TMRType.cite.type, label: "Cité de Frost" },
|
||||
E2: { type: TMRType.plaines.type, label: "Plaines de Fiask" },
|
||||
F2: { type: TMRType.lac.type, label: "Lac de Misère" },
|
||||
G2: { type: TMRType.marais.type, label: "Marais Nuisants" },
|
||||
H2: { type: TMRType.collines.type, label: "Collines de Parta" },
|
||||
I2: { type: TMRType.foret.type, label: "Forêt Fade" },
|
||||
J2: { type: TMRType.desert.type, label: "Désert de Poly" },
|
||||
K2: { type: TMRType.foret.type, label: "Forêt Tamée" },
|
||||
L2: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
M2: { type: TMRType.necropole.type, label: "Nécropole de Logos" },
|
||||
A3: { type: TMRType.desolation.type, label: "Désolation de Demain" },
|
||||
B3: { type: TMRType.plaines.type, label: "Plaines de Rubéga" },
|
||||
C3: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
D3: { type: TMRType.gouffre.type, label: "Gouffre d’Oki" },
|
||||
E3: { type: TMRType.foret.type, label: "Forêt d’Estoubh" },
|
||||
F3: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
G3: { type: TMRType.gouffre.type, label: "Gouffre de Sun" },
|
||||
H3: { type: TMRType.foret.type, label: "Forêt de Ganna" },
|
||||
I3: { type: TMRType.monts.type, label: "Monts Grinçants" },
|
||||
J3: { type: TMRType.cite.type, label: "Cité Venin" },
|
||||
K3: { type: TMRType.plaines.type, label: "Plaines de Dois" },
|
||||
L3: { type: TMRType.lac.type, label: "Lac Laineux" },
|
||||
M3: { type: TMRType.monts.type, label: "Monts de Vdah" },
|
||||
A4: { type: TMRType.foret.type, label: "Forêt de Falconax" },
|
||||
B4: { type: TMRType.monts.type, label: "Monts Crâneurs" },
|
||||
C4: { type: TMRType.pont.type, label: "Pont de Giolii" },
|
||||
D4: { type: TMRType.lac.type, label: "Lac de Foam" },
|
||||
E4: { type: TMRType.plaines.type, label: "Plaines d’Orti" },
|
||||
F4: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
G4: { type: TMRType.sanctuaire.type, label: "Sanctuaire Blanc" },
|
||||
H4: { type: TMRType.plaines.type, label: "Plaines de Psark" },
|
||||
I4: { type: TMRType.plaines.type, label: "Plaines de Xiax" },
|
||||
J4: { type: TMRType.collines.type, label: "Collines d’Encre" },
|
||||
K4: { type: TMRType.pont.type, label: "Pont de Fah" },
|
||||
L4: { type: TMRType.sanctuaire.type, label: "Sanctuaire Mauve" },
|
||||
M4: { type: TMRType.gouffre.type, label: "Gouffre Grisant" },
|
||||
A5: { type: TMRType.plaines.type, label: "Plaines de Trilkh" },
|
||||
B5: { type: TMRType.collines.type, label: "Collines de Tanegy" },
|
||||
C5: { type: TMRType.marais.type, label: "Marais Flouants" },
|
||||
D5: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
E5: { type: TMRType.monts.type, label: "Monts Brûlants" },
|
||||
F5: { type: TMRType.cite.type, label: "Cité de Panople" },
|
||||
G5: { type: TMRType.pont.type, label: "Pont d’Ik" },
|
||||
H5: { type: TMRType.desert.type, label: "Désert de Krane" },
|
||||
I5: { type: TMRType.desolation.type, label: "Désolation de Toujours" },
|
||||
J5: { type: TMRType.marais.type, label: "Marais de Jab" },
|
||||
K5: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
L5: { type: TMRType.collines.type, label: "Collines Suaves" },
|
||||
M5: { type: TMRType.cite.type, label: "Cité Rimarde" },
|
||||
A6: { type: TMRType.necropole.type, label: "Nécropole de Zniak" },
|
||||
B6: { type: TMRType.foret.type, label: "Forêt de Bust" },
|
||||
C6: { type: TMRType.cite.type, label: "Cité Pavois" },
|
||||
D6: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
E6: { type: TMRType.sanctuaire.type, label: "Sanctuaire de Plaine" },
|
||||
F6: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
G6: { type: TMRType.marais.type, label: "Marais Glutants" },
|
||||
H6: { type: TMRType.monts.type, label: "Monts Gurdes" },
|
||||
I6: { type: TMRType.necropole.type, label: "Nécropole de Xotar" },
|
||||
J6: { type: TMRType.lac.type, label: "Lac d’Iaupe" },
|
||||
K6: { type: TMRType.desolation.type, label: "Désolation de Poor" },
|
||||
L6: { type: TMRType.foret.type, label: "Forêt Gueuse" },
|
||||
M6: { type: TMRType.desolation.type, label: "Désolation de Presque" },
|
||||
A7: { type: TMRType.plaines.type, label: "Plaines de l’Arc" },
|
||||
B7: { type: TMRType.marais.type, label: "Marais Bluants" },
|
||||
C7: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
D7: { type: TMRType.plaines.type, label: "Plaines d’Affa" },
|
||||
E7: { type: TMRType.foret.type, label: "Forêt de Glusks" },
|
||||
F7: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
G7: { type: TMRType.cite.type, label: "Cité de Terwa" },
|
||||
H7: { type: TMRType.gouffre.type, label: "Gouffre de Kapfa" },
|
||||
I7: { type: TMRType.plaines.type, label: "Plaines de Troo" },
|
||||
J7: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
K7: { type: TMRType.cite.type, label: "Cité de Kolix" },
|
||||
L7: { type: TMRType.gouffre.type, label: "Gouffre d’Episophe" },
|
||||
M7: { type: TMRType.desert.type, label: "Désert de Lave" },
|
||||
A8: { type: TMRType.gouffre.type, label: "Gouffre de Shok" },
|
||||
B8: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
C8: { type: TMRType.foret.type, label: "Forêt Turmide" },
|
||||
D8: { type: TMRType.cite.type, label: "Cité d’Olak" },
|
||||
E8: { type: TMRType.plaines.type, label: "Plaines d’Iolise" },
|
||||
F8: { type: TMRType.lac.type, label: "Lac des Chats" },
|
||||
G8: { type: TMRType.plaines.type, label: "Plaines Sans Joie" },
|
||||
H8: { type: TMRType.foret.type, label: "Forêt d’Ourf" },
|
||||
I8: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
J8: { type: TMRType.monts.type, label: "Monts Barask" },
|
||||
K8: { type: TMRType.desert.type, label: "Désert de Fumée" },
|
||||
L8: { type: TMRType.monts.type, label: "Monts Tavelés" },
|
||||
M8: { type: TMRType.plaines.type, label: "Plaines Lavées" },
|
||||
A9: { type: TMRType.collines.type, label: "Collines de Korrex" },
|
||||
B9: { type: TMRType.lac.type, label: "Lac de Lucre" },
|
||||
C9: { type: TMRType.monts.type, label: "Monts Tuméfiés" },
|
||||
D9: { type: TMRType.pont.type, label: "Pont d’Orx" },
|
||||
E9: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
F9: { type: TMRType.plaines.type, label: "Plaines de Foe" },
|
||||
G9: { type: TMRType.desolation.type, label: "Désolation de Sel" },
|
||||
H9: { type: TMRType.collines.type, label: "Collines de Noirseul" },
|
||||
I9: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
J9: { type: TMRType.marais.type, label: "Marais Gronchants" },
|
||||
K9: { type: TMRType.sanctuaire.type, label: "Sanctuaire Noir" },
|
||||
L9: { type: TMRType.collines.type, label: "Collines Cornues" },
|
||||
M9: { type: TMRType.necropole.type, label: "Nécropole de Zonar" },
|
||||
A10: { type: TMRType.sanctuaire.type, label: "Sanctuaire d’Olis" },
|
||||
B10: { type: TMRType.monts.type, label: "Monts Salés" },
|
||||
C10: { type: TMRType.marais.type, label: "Marais de Dom" },
|
||||
D10: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
E10: { type: TMRType.gouffre.type, label: "Gouffre de Junk" },
|
||||
F10: { type: TMRType.marais.type, label: "Marais Zultants" },
|
||||
G10: { type: TMRType.cite.type, label: "Cité de Sergal" },
|
||||
H10: { type: TMRType.plaines.type, label: "Plaines Noires" },
|
||||
I10: { type: TMRType.lac.type, label: "Lac Wanito" },
|
||||
J10: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
K10: { type: TMRType.plaines.type, label: "Plaines Jaunes" },
|
||||
L10: { type: TMRType.desert.type, label: "Désert de Nicrop" },
|
||||
M10: { type: TMRType.foret.type, label: "Forêt de Jajou" },
|
||||
A11: { type: TMRType.desolation.type, label: "Désolation d’Hier" },
|
||||
B11: { type: TMRType.cite.type, label: "Cité de Brilz" },
|
||||
C11: { type: TMRType.pont.type, label: "Pont de Roï" },
|
||||
D11: { type: TMRType.desolation.type, label: "Désolation de Partout" },
|
||||
E11: { type: TMRType.lac.type, label: "Lac de Glinster" },
|
||||
F11: { type: TMRType.cite.type, label: "Cité de Noape" },
|
||||
G11: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
H11: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
I11: { type: TMRType.pont.type, label: "Pont de Yalm" },
|
||||
J11: { type: TMRType.plaines.type, label: "Plaines de Miltiar" },
|
||||
K11: { type: TMRType.cite.type, label: "Cité Tonnerre" },
|
||||
L11: { type: TMRType.collines.type, label: "Collines de Kol" },
|
||||
M11: { type: TMRType.cite.type, label: "Cité Crapaud" },
|
||||
A12: { type: TMRType.plaines.type, label: "Plaines Sages" },
|
||||
B12: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
C12: { type: TMRType.lac.type, label: "Lac de Fricassa" },
|
||||
D12: { type: TMRType.collines.type, label: "Collines d’Huaï" },
|
||||
E12: { type: TMRType.monts.type, label: "Monts Ajourés" },
|
||||
F12: { type: TMRType.necropole.type, label: "Nécropole de Throat" },
|
||||
G12: { type: TMRType.plaines.type, label: "Plaines de Lufmil" },
|
||||
H12: { type: TMRType.collines.type, label: "Collines de Tooth" },
|
||||
I12: { type: TMRType.gouffre.type, label: "Gouffre Abimeux" },
|
||||
J12: { type: TMRType.cite.type, label: "Cité Folle" },
|
||||
K12: { type: TMRType.desolation.type, label: "Désolation d’Amour" },
|
||||
L12: { type: TMRType.plaines.type, label: "Plaines Venteuses" },
|
||||
M12: { type: TMRType.collines.type, label: "Collines Révulsantes" },
|
||||
A13: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli" },
|
||||
B13: { type: TMRType.gouffre.type, label: "Gouffre des Litiges" },
|
||||
C13: { type: TMRType.desert.type, label: "Désert de Neige" },
|
||||
D13: { type: TMRType.cite.type, label: "Cité Sordide" },
|
||||
E13: { type: TMRType.plaines.type, label: "Plaines de Xnez" },
|
||||
F13: { type: TMRType.foret.type, label: "Forêt des Cris" },
|
||||
G13: { type: TMRType.plaines.type, label: "Plaines Calcaires" },
|
||||
H13: { type: TMRType.desolation.type, label: "Désolation de Rien" },
|
||||
I13: { type: TMRType.monts.type, label: "Monts Bigleux" },
|
||||
J13: { type: TMRType.gouffre.type, label: "Gouffre de Gromph" },
|
||||
K13: { type: TMRType.foret.type, label: "Forêt de Kluth" },
|
||||
L13: { type: TMRType.monts.type, label: "Monts Dormants" },
|
||||
M13: { type: TMRType.plaines.type, label: "Plaines d’Anjou" },
|
||||
A14: { type: TMRType.collines.type, label: "Collines de Stolis" },
|
||||
B14: { type: TMRType.necropole.type, label: "Nécropole de Gorlo" },
|
||||
C14: { type: TMRType.foret.type, label: "Forêt de Bissam" },
|
||||
D14: { type: TMRType.sanctuaire.type, label: "Sanctuaire Plat" },
|
||||
E14: { type: TMRType.monts.type, label: "Monts de Quath" },
|
||||
F14: { type: TMRType.plaines.type, label: "Plaines Brisées" },
|
||||
G14: { type: TMRType.desert.type, label: "Désert de Sek" },
|
||||
H14: { type: TMRType.plaines.type, label: "Plaines Blanches" },
|
||||
I14: { type: TMRType.cite.type, label: "Cité Destituée" },
|
||||
J14: { type: TMRType.desert.type, label: "Désert de Sank" },
|
||||
K14: { type: TMRType.necropole.type, label: "Nécropole d’Antinéar" },
|
||||
L14: { type: TMRType.plaines.type, label: "Plaines de Jislith" },
|
||||
M14: { type: TMRType.desolation.type, label: "Désolation d’Après" },
|
||||
A15: { type: TMRType.cite.type, label: "Cité de Mielh" },
|
||||
C15: { type: TMRType.plaines.type, label: "Plaines de Toué" },
|
||||
E15: { type: TMRType.foret.type, label: "Forêt des Furies" },
|
||||
G15: { type: TMRType.plaines.type, label: "Plaines des Soupirs" },
|
||||
I15: { type: TMRType.monts.type, label: "Monts des Dragées" },
|
||||
K15: { type: TMRType.collines.type, label: "Collines Pourpres" },
|
||||
M15: { type: TMRType.cite.type, label: "Cité de Klana" }
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -251,13 +239,16 @@ const TMR_MOVE = {
|
||||
*/
|
||||
export class TMRUtility {
|
||||
static init() {
|
||||
|
||||
for (let coord in TMRMapping) {
|
||||
const tmr = TMRMapping[coord];
|
||||
tmr.coord = coord;
|
||||
tmr.oddq = TMRUtility.coordTMRToOddq(coord);
|
||||
tmr.genre = TMRType[tmr.type].genre;
|
||||
const tmr = TMRMapping[coord]
|
||||
tmr.coord = coord
|
||||
tmr.genre = TMRType[tmr.type].genre
|
||||
if (coord != FLEUVE_COORD) {
|
||||
tmr.oddq = TMRUtility.coordTMRToOddq(coord)
|
||||
}
|
||||
}
|
||||
let tmrByType = Misc.classify(Object.values(TMRMapping));
|
||||
let tmrByType = Misc.classify(Object.values(TMRMapping).filter(it => it.coord != FLEUVE_COORD))
|
||||
for (const [type, list] of Object.entries(tmrByType)) {
|
||||
TMRType[type].list = list;
|
||||
}
|
||||
@ -265,14 +256,17 @@ export class TMRUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static verifyTMRCoord(coord) {
|
||||
return Grammar.equalsInsensitive(coord, 'Fleuve') || TMRUtility.getTMR(coord);
|
||||
return Grammar.equalsInsensitive(coord, FLEUVE_COORD) || TMRUtility.getTMR(coord);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getTMR(coord) {
|
||||
return coord == 'Fleuve' ? TMRMapping['D1'] : TMRMapping[coord];
|
||||
return coord == FLEUVE_COORD ? TMRMapping['D1'] : TMRMapping[coord];
|
||||
}
|
||||
|
||||
static isFleuve(coord) {
|
||||
return TMRMapping[coord]?.type == TMRType.fleuve.type
|
||||
}
|
||||
static getTMRLabel(coord) {
|
||||
return TMRUtility.getTMR(coord)?.label ?? (coord + ": case inconnue");
|
||||
}
|
||||
@ -290,18 +284,18 @@ export class TMRUtility {
|
||||
static findTMRLike(type, options = { inclusMauvaise: true }) {
|
||||
const choix = [...Object.values(TMRType)]
|
||||
if (options.inclusMauvaise) {
|
||||
choix.push({ name: 'Mauvaise' });
|
||||
choix.push({ name: 'Mauvaise', type: 'mauvaise'});
|
||||
}
|
||||
const selection = Misc.findAllLike(type, choix).map(it => it.name);
|
||||
const selection = Misc.findAllLike(type, choix)
|
||||
if (selection.length == 0) {
|
||||
ui.notifications.warn(`Un type de TMR doit être indiqué, '${type}' n'est pas trouvé dans ${choix}`);
|
||||
return undefined;
|
||||
return undefined
|
||||
}
|
||||
if (selection.length > 1) {
|
||||
ui.notifications.warn(`Plusieurs types de TMR pourraient correspondre à '${type}': ${selection}`);
|
||||
ui.notifications.warn(`Plusieurs types de TMR pourraient correspondre à '${type}': ${selection.map(it => it.name)}`);
|
||||
return undefined;
|
||||
}
|
||||
return selection[0];
|
||||
return selection[0]
|
||||
}
|
||||
|
||||
static typeTmrName(type) {
|
||||
@ -326,7 +320,7 @@ export class TMRUtility {
|
||||
/* -------------------------------------------- */
|
||||
static deplacement(coordOrig, moveName) {
|
||||
const tmrMove = TMR_MOVE[moveName];
|
||||
if (! tmrMove) {
|
||||
if (!tmrMove) {
|
||||
ui.notifications.error(`Le déplacement dans les TMR '${moveName}' est inconnu`)
|
||||
return coordOrig
|
||||
}
|
||||
|
@ -3670,7 +3670,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '13'
|
||||
competence: Epée à 2 mains
|
||||
competence: Épée à 2 mains
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4001,7 +4001,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 13/12
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4052,7 +4052,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4099,7 +4099,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '10'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4152,7 +4152,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4204,7 +4204,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '8'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4260,7 +4260,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: null
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
@ -4353,7 +4353,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '10'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ryUZTa17LzNv25UY.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ryUZTa17LzNv25UY.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ryUZTa17LzNv25UY.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ohmz9Jn4jxD88Kll.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ohmz9Jn4jxD88Kll.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ohmz9Jn4jxD88Kll.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JARnWt2MQWDyRwQt.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JARnWt2MQWDyRwQt.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JARnWt2MQWDyRwQt.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
@ -2239,7 +2239,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 13/12
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!SJb0c8FDcYdd41rB.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!SJb0c8FDcYdd41rB.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!SJb0c8FDcYdd41rB.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JQCwAOK64Yijwtch.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JQCwAOK64Yijwtch.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!JQCwAOK64Yijwtch.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!CRRP8ucJpljX6tq8.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!CRRP8ucJpljX6tq8.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!CRRP8ucJpljX6tq8.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!51vL4MhEE0asjgF2.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!51vL4MhEE0asjgF2.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!51vL4MhEE0asjgF2.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
@ -2086,7 +2086,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!NX1nAqKKIcQlyGua.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!NX1nAqKKIcQlyGua.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!NX1nAqKKIcQlyGua.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
@ -2086,7 +2086,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -1,5 +1,5 @@
|
||||
_id: IeKSXignUpfUTU4m
|
||||
name: Garde - Epée/bouclier niv.5
|
||||
name: Garde - Épée/bouclier niv.5
|
||||
type: personnage
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/archetypes/fantassin.webp
|
||||
items:
|
||||
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!IeKSXignUpfUTU4m.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!IeKSXignUpfUTU4m.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!IeKSXignUpfUTU4m.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
@ -2117,7 +2117,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2bRaEDuwZezKAyEq.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2bRaEDuwZezKAyEq.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2bRaEDuwZezKAyEq.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
@ -2117,7 +2117,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!pSM0ku0RJNLvHSvF.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!pSM0ku0RJNLvHSvF.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!pSM0ku0RJNLvHSvF.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!5xPFHgrY5AIP9Mnb.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!5xPFHgrY5AIP9Mnb.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!5xPFHgrY5AIP9Mnb.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!U9NNcXQBJmsI9Ttk.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!U9NNcXQBJmsI9Ttk.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!U9NNcXQBJmsI9Ttk.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!oLDROOdwfctyRusH.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!oLDROOdwfctyRusH.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!oLDROOdwfctyRusH.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2KN3nKGZ36Qkn7Mf.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2KN3nKGZ36Qkn7Mf.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!2KN3nKGZ36Qkn7Mf.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -674,7 +674,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!V2WOs8deCYdBT2Jo.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -704,7 +704,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!V2WOs8deCYdBT2Jo.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -736,7 +736,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!V2WOs8deCYdBT2Jo.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -674,7 +674,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!UNs4RBLYiGbfxd1c.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -704,7 +704,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!UNs4RBLYiGbfxd1c.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -736,7 +736,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!UNs4RBLYiGbfxd1c.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -674,7 +674,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jfXs7qaHEWQpIHud.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -704,7 +704,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jfXs7qaHEWQpIHud.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -736,7 +736,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jfXs7qaHEWQpIHud.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!awZg7bGbTjEGRMiw.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!awZg7bGbTjEGRMiw.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!awZg7bGbTjEGRMiw.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -673,7 +673,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dMdBctaRRdGJgced.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
flags: {}
|
||||
@ -703,7 +703,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dMdBctaRRdGJgced.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
flags: {}
|
||||
@ -735,7 +735,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dMdBctaRRdGJgced.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
flags: {}
|
||||
|
@ -1,5 +1,5 @@
|
||||
_id: gPOQd9NI7AFH0whX
|
||||
name: Epée Bâtarde
|
||||
name: Épée Bâtarde
|
||||
type: competencecreature
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
effects: []
|
||||
|
@ -1,4 +1,4 @@
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
_id: qmIpUeedvjC8nGF1
|
||||
|
@ -1,4 +1,4 @@
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
_id: fPhPcCP3sbS6mfbS
|
||||
|
@ -1,4 +1,4 @@
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
_id: MLIEbxSJHkY1m3No
|
||||
|
@ -32,7 +32,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!DEk8ZXP3qP2eHYBa.6G14MO5gckhbo0bX'
|
||||
- _id: qWjxtD8YUMtXORTC
|
||||
name: Epée Bâtarde
|
||||
name: Épée Bâtarde
|
||||
type: competencecreature
|
||||
sort: 650000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
|
@ -5,7 +5,7 @@ sort: 100001
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/entites/squelette.webp
|
||||
items:
|
||||
- _id: QNJH22nturvz1CnL
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 100000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -36,7 +36,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Fl95F6S0OrCbqQbY.QNJH22nturvz1CnL'
|
||||
- _id: 9rHJziIIEQlwezim
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 200000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -5,7 +5,7 @@ sort: 100001
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/entites/vaseux.webp
|
||||
items:
|
||||
- _id: QNJH22nturvz1CnL
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 100000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -36,7 +36,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!cmWQYuyzVsz02NMt.QNJH22nturvz1CnL'
|
||||
- _id: 9rHJziIIEQlwezim
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 200000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -31,7 +31,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '13'
|
||||
competence: Epée à 2 mains
|
||||
competence: Épée à 2 mains
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -37,7 +37,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '10'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -31,7 +31,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 13/12
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -29,7 +29,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -25,7 +25,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '10'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -29,7 +29,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -29,7 +29,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '8'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -34,7 +34,7 @@ system:
|
||||
mortalite: mortel
|
||||
penetration: null
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -18,7 +18,7 @@ system:
|
||||
- milieu: Villes
|
||||
rarete: Rare
|
||||
frequence: 6
|
||||
competence: Ecriture
|
||||
competence: Écriture
|
||||
auteur: Inconnu
|
||||
difficulte: 0
|
||||
points_de_tache: 0
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!qscItDC5z6Hr2Lrh.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!qscItDC5z6Hr2Lrh.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!qscItDC5z6Hr2Lrh.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -650,7 +650,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!zACge7QxwyJkC6nD.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -679,7 +679,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!zACge7QxwyJkC6nD.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -710,7 +710,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!zACge7QxwyJkC6nD.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2600000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!esJWonwDGLFaMRK3.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!esJWonwDGLFaMRK3.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!esJWonwDGLFaMRK3.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -1985,7 +1985,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!gscYFtwk73WrGvA5.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!gscYFtwk73WrGvA5.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!gscYFtwk73WrGvA5.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -2038,7 +2038,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dW4RMKpz2WaXbW3h.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dW4RMKpz2WaXbW3h.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!dW4RMKpz2WaXbW3h.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ncXFs8oaZWG68Tzn.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ncXFs8oaZWG68Tzn.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!ncXFs8oaZWG68Tzn.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OKMXH6YpPXUyvqzN.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OKMXH6YpPXUyvqzN.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OKMXH6YpPXUyvqzN.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!EzV1Zxuwi7jwa6bj.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!EzV1Zxuwi7jwa6bj.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!EzV1Zxuwi7jwa6bj.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -2017,7 +2017,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '8'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!YQ6vavAVyZecPvGQ.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!YQ6vavAVyZecPvGQ.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!YQ6vavAVyZecPvGQ.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!b7ThiitioBVXxU7D.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!b7ThiitioBVXxU7D.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!b7ThiitioBVXxU7D.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!XnBXyRyE2BUVVT1k.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!XnBXyRyE2BUVVT1k.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!XnBXyRyE2BUVVT1k.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kKI9izKrKftYVnvs.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kKI9izKrKftYVnvs.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kKI9izKrKftYVnvs.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!nzw2q9BHSDN6TIQQ.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!nzw2q9BHSDN6TIQQ.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!nzw2q9BHSDN6TIQQ.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Pf4cLn0kandYzviD.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Pf4cLn0kandYzviD.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Pf4cLn0kandYzviD.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -674,7 +674,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!xGtM3z3KM6N6lpd5.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
flags: {}
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -704,7 +704,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!xGtM3z3KM6N6lpd5.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 100000
|
||||
flags: {}
|
||||
@ -736,7 +736,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!xGtM3z3KM6N6lpd5.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 200000
|
||||
flags: {}
|
||||
@ -2088,7 +2088,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!z87rV5CJ3inc6ZPc.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!z87rV5CJ3inc6ZPc.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!z87rV5CJ3inc6ZPc.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!I8Q3Aj4ZUrsU4yBg.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!I8Q3Aj4ZUrsU4yBg.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!I8Q3Aj4ZUrsU4yBg.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kB7OSWKvd6m9v0dB.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kB7OSWKvd6m9v0dB.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!kB7OSWKvd6m9v0dB.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -29,7 +29,7 @@ system:
|
||||
- milieu: Villes
|
||||
rarete: Rare
|
||||
frequence: 6
|
||||
competence: Ecriture
|
||||
competence: Écriture
|
||||
auteur: Werther de Zloth
|
||||
difficulte: -2
|
||||
points_de_tache: 15
|
||||
|
@ -30,7 +30,7 @@ system:
|
||||
- milieu: Villes
|
||||
rarete: Rare
|
||||
frequence: 6
|
||||
competence: Ecriture
|
||||
competence: Écriture
|
||||
auteur: Frampanar le Bienveillant
|
||||
difficulte: -1
|
||||
points_de_tache: 18
|
||||
|
@ -7,7 +7,7 @@ _id: kqfaAu35MCg08eaU
|
||||
system:
|
||||
description: ''
|
||||
descriptionmj: ''
|
||||
competence: Ecriture
|
||||
competence: Écriture
|
||||
theme: Écriture (la diversité des runes)
|
||||
support: un texte étranger
|
||||
heure: couronne
|
||||
|
@ -22,7 +22,7 @@ results:
|
||||
- _id: eBlqM8jwRJ5PB5gm
|
||||
flags: {}
|
||||
type: pack
|
||||
text: Epée à 1 main
|
||||
text: Épée à 1 main
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
weight: 1
|
||||
range:
|
||||
@ -39,7 +39,7 @@ results:
|
||||
- _id: tZBAPUjyjQy8EUHO
|
||||
flags: {}
|
||||
type: pack
|
||||
text: Epée à 2 mains
|
||||
text: Épée à 2 mains
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
weight: 1
|
||||
range:
|
||||
@ -1025,7 +1025,7 @@ results:
|
||||
- _id: nqtBe0jgDEtvm2Ob
|
||||
flags: {}
|
||||
type: pack
|
||||
text: Ecriture
|
||||
text: Écriture
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
weight: 1
|
||||
range:
|
||||
|
@ -23,7 +23,7 @@ results:
|
||||
- _id: hRvvPoX8nv7AonqM
|
||||
flags: {}
|
||||
type: pack
|
||||
text: L'Epée
|
||||
text: L'Épée
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp
|
||||
weight: 1
|
||||
range:
|
||||
|
@ -1,5 +1,5 @@
|
||||
_id: inWYIYIuHkoZ3S4A
|
||||
name: L'Epée
|
||||
name: L'Épée
|
||||
type: tarot
|
||||
folder: LmM8c5pdDkCsDXka
|
||||
sort: 1762500
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!GJWEoGXy5kSd4sT8.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!GJWEoGXy5kSd4sT8.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!GJWEoGXy5kSd4sT8.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!m63oPEPvCrds4akp.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!m63oPEPvCrds4akp.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!m63oPEPvCrds4akp.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jtJqqegMrF3fuND3.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jtJqqegMrF3fuND3.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!jtJqqegMrF3fuND3.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -2324,7 +2324,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 13/12
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!8Jeas59CdpnnYabL.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!8Jeas59CdpnnYabL.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!8Jeas59CdpnnYabL.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!7WgNJwO7p5QNraXA.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!7WgNJwO7p5QNraXA.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!7WgNJwO7p5QNraXA.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!N5ybrpVwbpL8aPG0.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
effects: []
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!N5ybrpVwbpL8aPG0.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
effects: []
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!N5ybrpVwbpL8aPG0.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
effects: []
|
||||
|
@ -651,7 +651,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!X9d5McdSAT1Ivp39.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
effects: []
|
||||
@ -680,7 +680,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!X9d5McdSAT1Ivp39.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
effects: []
|
||||
@ -711,7 +711,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!X9d5McdSAT1Ivp39.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
effects: []
|
||||
@ -2438,7 +2438,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: 13/12
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!hvNej1XRliayVZu1.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!hvNej1XRliayVZu1.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!hvNej1XRliayVZu1.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -2782,7 +2782,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: null
|
||||
force: 12/11
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!4bI9HX4oomMEXrOT.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!4bI9HX4oomMEXrOT.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!4bI9HX4oomMEXrOT.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!AZBxORb7IYgXaOfb.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!AZBxORb7IYgXaOfb.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!AZBxORb7IYgXaOfb.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OOIjBdFjCKdgJKff.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OOIjBdFjCKdgJKff.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!OOIjBdFjCKdgJKff.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
@ -2796,7 +2796,7 @@ items:
|
||||
mortalite: mortel
|
||||
penetration: 0
|
||||
force: '11'
|
||||
competence: Epée à 1 main
|
||||
competence: Épée à 1 main
|
||||
lancer: ''
|
||||
tir: ''
|
||||
portee_courte: 0
|
||||
|
@ -652,7 +652,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Jas7Wr22jSllfkin.94P55yZfeipCGbsr'
|
||||
- _id: qmIpUeedvjC8nGF1
|
||||
name: Ecriture
|
||||
name: Écriture
|
||||
type: competence
|
||||
sort: 2300000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_ecriture.webp
|
||||
@ -681,7 +681,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Jas7Wr22jSllfkin.qmIpUeedvjC8nGF1'
|
||||
- _id: fPhPcCP3sbS6mfbS
|
||||
name: Epée à 1 main
|
||||
name: Épée à 1 main
|
||||
type: competence
|
||||
sort: 2400000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_1_main.webp
|
||||
@ -712,7 +712,7 @@ items:
|
||||
coreVersion: '12.331'
|
||||
_key: '!actors.items!Jas7Wr22jSllfkin.fPhPcCP3sbS6mfbS'
|
||||
- _id: MLIEbxSJHkY1m3No
|
||||
name: Epée à 2 mains
|
||||
name: Épée à 2 mains
|
||||
type: competence
|
||||
sort: 2500000
|
||||
img: systems/foundryvtt-reve-de-dragon/icons/competence_epee_2_mains.webp
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "foundryvtt-reve-de-dragon",
|
||||
"title": "Rêve de Dragon",
|
||||
"version": "12.0.22",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/foundryvtt-reve-de-dragon-12.0.21/foundryvtt-reve-de-dragon-foundryvtt-reve-de-dragon-12.0.21.zip",
|
||||
"version": "12.0.24",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/latest/rddsystem.zip",
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/releases/download/latest/system.json",
|
||||
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
||||
"compatibility": {
|
||||
|
@ -4,14 +4,15 @@
|
||||
{{#each (trier sorts) as |sort key|}}
|
||||
<li class="item list-item flexrow" data-item-id="{{sort._id}}" data-attribute="{{key}}" data-tooltip="{{#if sort.system.isrituel}}Rituel{{else}}Sort{{/if}}: {{sort.name}}">
|
||||
<img class="sheet-competence-img" src="{{sort.img}}"/>
|
||||
<span class="item-edit flex-grow-3">
|
||||
<a data-item-id="{{sort._id}}">{{sort.name}}
|
||||
- {{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
|
||||
</a>
|
||||
</span>
|
||||
<span class="flex-grow-0-5">{{#if sort.system.isrituel}}Rituel{{/if}}</span>
|
||||
<span class="flex-grow-2">{{sort.system.draconic}}/{{sort.system.difficulte}}</span>
|
||||
<span class="flex-shrink">{{itemSort-shortDraconic sort.system.draconic}}</span>
|
||||
<span class="item-edit flex-grow-3">{{sort.name}}{{#if sort.system.isrituel}}
|
||||
<i class="fa-regular fa-book-sparkles"></i>{{/if}}</span>
|
||||
<span class="flex-grow-2">
|
||||
{{#if sort.system.caseTMRspeciale}}{{sort.system.caseTMRspeciale}}{{else}}{{upperFirst sort.system.caseTMR}}{{/if}}
|
||||
</span>
|
||||
<span class="flex-grow-1">R{{itemSort-spaceIfText sort.system.difficulte}} r{{itemSort-spaceIfText sort.system.ptreve}}</span>
|
||||
<div class="item-controls flex-shrink">
|
||||
<a class="item-edit" data-tooltip="Modifier"><i class="fas fa-edit"></i></a>
|
||||
<a class="item-delete" data-tooltip="Supprimer"><i class="fas fa-trash"></i></a>
|
||||
<a class="item-montrer" data-tooltip="Montrer"><i class="fas fa-comment"></i></a>
|
||||
</div>
|
||||
|
@ -1,6 +1,9 @@
|
||||
<h4>Tirage aléatoire: {{document.name}}</h4>
|
||||
<div>Tirage de {{typeName}} aléatoire depuis {{document.pack}}</div>
|
||||
<div>Jet {{roll.formula}} : {{roll.total}}{{percentages}}</div>
|
||||
<div>
|
||||
Tirage de {{typeName}} aléatoire
|
||||
{{#if options.showSource}} depuis {{document.pack}}{{/if}}
|
||||
</div>
|
||||
<div>Jet {{roll.formula}} : {{roll.total}}</div>
|
||||
<hr>
|
||||
<div>
|
||||
<img class="chat-icon" src="{{document.img}}" data-tooltip="{{document.name}}" />
|
||||
|
@ -1,6 +1,6 @@
|
||||
{{#each (trier @root.competences) as |competence key|}}
|
||||
{{#if (eq competence.system.categorie 'draconic')}}
|
||||
<option value="{{competence.name}}">{{competence.name}}</option>
|
||||
<option value="{{itemSort-shortDraconic competence.name}}">{{itemSort-shortDraconic competence.name}}</option>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
<option value="O/H/N/T">Oniros/Hypnos/Narcos/Thanatos</option>
|
||||
|
@ -37,7 +37,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="system.isrituel">Rituel</label>
|
||||
<input class="attribute-value" type="checkbox" name="system.isrituel" {{#if system.isrituel}}checked{{/if}}/>
|
||||
<input class="attribute-value" type="checkbox" name="system.isrituel" {{#if system.isrituel}}checked{{/if}} />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="system.duree">Durée</label>
|
||||
@ -59,14 +59,23 @@
|
||||
<label for="system.xp">XP</label>
|
||||
<input class="attribute-value" type="text" name="system.xp" value="{{system.xp}}" data-dtype="Number"/>
|
||||
</div>
|
||||
{{#each bonusCaseList as |bcData key|}}
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label for="caseValue">Case/Bonus :</label>
|
||||
<input class="attribute-value" type="text" name="caseValue" value="{{bcData.case}}" data-dtype="String"/>
|
||||
<input class="attribute-value" type="text" name="bonusValue" value="{{bcData.bonus}}" data-dtype="Number"/>
|
||||
<label class="flex-grow-2" for="caseTmrAdd">Nouveau bonus de case en</label>
|
||||
<input class="flex-grow-0-5 attribute-value" type="text" name="caseTmrAdd" value="" maxlength="7" data-dtype="String"/>
|
||||
</div>
|
||||
{{#each bonusCaseList as |caseTmr key|}}
|
||||
<div class="form-group">
|
||||
<label style="flex-grow: 5;">Bonus en {{caseTmr-label caseTmr.case}} ({{caseTmr.case}})</label>
|
||||
<input type="text" name="caseTmrCoord" value="{{caseTmr.case}}" data-dtype="String" hidden/>
|
||||
|
||||
<input class="flex-grow-0-5 flex-group-right" type="number" name="caseTmrBonus" value="{{caseTmr.bonus}}" data-dtype="Number"/>
|
||||
<a class="flex-shrink delete-bonus-case"
|
||||
data-deleteCoord="{{caseTmr.case}}"
|
||||
data-tooltip="Supprimer le bonus de case"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
<hr>
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.html"}}
|
||||
</section>
|
||||
</form>
|
||||
|
Reference in New Issue
Block a user