38d0ba2734
Utiliser les différents repères de cases: - coordonnées TMR A5 - oddq pour les coordonnées de case (ligne, colonne) - axial (q,r) pour effectuer les calculs de distance utiliser x, y rend la distinction de positions de pixels vs position dans la grille parfois ardue. Utilisation des coordonnées axiales pour le calcul de distance.
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
import { Grammar } from "../grammar.js";
|
|
import { TMRUtility } from "../tmr-utility.js";
|
|
import { tmrConstants, tmrTokenZIndex } from "../tmr-constants.js";
|
|
import { Draconique } from "./draconique.js";
|
|
|
|
export class ReserveExtensible extends Draconique {
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
type() { return 'tete' }
|
|
match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes("reserve extensible"); }
|
|
manualMessage() { return "Vous pouvez re-configurer votre Réserve extensible" }
|
|
async onActorCreateOwned(actor, tete) {
|
|
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
|
const tmr = await TMRUtility.getTMRAleatoire(it => !(it.type == 'fleuve' || existants.includes(it.coord)));
|
|
await this.createCaseTmr(actor, "Nouvelle Réserve extensible", tmr, tete.id);
|
|
}
|
|
|
|
code() { return 'reserve_extensible' }
|
|
tooltip(linkData) { return `Réserve extensible en ${this.tmrLabel(linkData)} !` }
|
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/treasure-chest.webp' }
|
|
|
|
createSprite(pixiTMR) {
|
|
return pixiTMR.sprite(this.code(), {
|
|
zIndex: tmrTokenZIndex.tetes,
|
|
alpha: 0.7,
|
|
decallage: tmrConstants.left
|
|
});
|
|
}
|
|
|
|
}
|