forked from public/foundryvtt-reve-de-dragon
Ajout Périple & urgence draconique
# Conflicts: # module/tmr-utility.js
This commit is contained in:
@ -210,8 +210,8 @@ const TMRMapping = {
|
||||
|
||||
export const TMRType = {
|
||||
cite: { name: "cité", genre: "f" },
|
||||
sanctuaire: { name: "sanctuaire" },
|
||||
plaines: { name: "plaines", genre: "p" },
|
||||
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" },
|
||||
@ -332,7 +332,12 @@ export class TMRUtility {
|
||||
}
|
||||
|
||||
static getTMRLabel(coord) {
|
||||
return TMRMapping[coord]?.label ?? (coord+": case inconnue");
|
||||
return TMRMapping[coord]?.label ?? (coord + ": case inconnue");
|
||||
}
|
||||
|
||||
static getTMRDescr(coord) {
|
||||
const tmr = TMRMapping[coord];
|
||||
return Grammar.articleDetermine(tmr.genre) + ' ' + tmr.label;
|
||||
}
|
||||
|
||||
static isCaseHumide(tmr) {
|
||||
@ -384,7 +389,7 @@ export class TMRUtility {
|
||||
currentPos.x = currentPos.x + direction.x;
|
||||
currentPos.y = currentPos.y + direction.y;
|
||||
if (this._checkTMRCoord(currentPos.x, currentPos.y)) { // Sortie de carte ! Ré-insertion aléatoire
|
||||
coord = TMRUtility.getTMR(TMRUtility.convertToTMRCoord(currentPos));
|
||||
coord = TMRUtility.getTMR(TMRUtility.convertToTMRCoord(currentPos));
|
||||
} else {
|
||||
coord = await actor.reinsertionAleatoire('Sortie de carte');
|
||||
}
|
||||
@ -435,7 +440,7 @@ export class TMRUtility {
|
||||
return reserveList.filter(it => TMRUtility.getTMR(it.coord).type == 'fleuve');
|
||||
}
|
||||
// Reserve sur un case "normale"
|
||||
return reserveList.filter(it => it.coord == coord);
|
||||
return reserveList.filter(it => it.coord == coord);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -450,9 +455,8 @@ export class TMRUtility {
|
||||
for (let dy = -portee; dy <= portee; dy++) { // Loop thru lines
|
||||
const currentPos = { x: centerPos.x + dx, y: centerPos.y + dy };
|
||||
if (this._checkTMRCoord(currentPos.x, currentPos.y)) { // Coordinate is valie
|
||||
let posPicNow = this.computeRealPictureCoordinates(currentPos, tmrConstants);
|
||||
let dist = Math.sqrt(Math.pow(posPicNow.x - posPic.x, 2) + Math.pow(posPicNow.y - posPic.y, 2)) / tmrConstants.cellw;
|
||||
if (dist < portee + 0.5) {
|
||||
let dist = this.distancePosTMR(centerPos, currentPos);
|
||||
if (dist <= portee) {
|
||||
caseList.push(this.convertToTMRCoord(currentPos)); // Inside the area
|
||||
}
|
||||
}
|
||||
@ -460,5 +464,21 @@ export class TMRUtility {
|
||||
}
|
||||
return caseList;
|
||||
}
|
||||
|
||||
static distanceTMR(coord1, coord2) {
|
||||
let pos1 = this.convertToCellPos(coord1);
|
||||
let pos2 = this.convertToCellPos(coord2);
|
||||
return this.distancePosTMR(pos1, pos2);
|
||||
}
|
||||
|
||||
static distancePosTMR(pos1, pos2) {
|
||||
const dx = pos2.x - pos1.x;
|
||||
const dy = pos2.y - pos1.y;
|
||||
const abs_dx = Math.abs(dx);
|
||||
const abs_dy = Math.abs(dy);
|
||||
const distance = Math.sign(dx) == Math.sign(dy) ? Math.max(abs_dx, abs_dy) : (abs_dx + abs_dy);
|
||||
return distance;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user