Attaques à distance sans tokens

- correction d'attaques à distance depuis l'onglet combat sans token
sélectionné
This commit is contained in:
2025-12-13 02:07:49 +01:00
parent 31764e0118
commit 75a50257ac
3 changed files with 14 additions and 11 deletions
+1
View File
@@ -14,6 +14,7 @@
- la fenêtre de jet pour les jets depuis un lien texte
- affichage des ajustements dans la fenêtre d'attaque avec arme à distance
- gestion des défenses contre les armes à distance
- attaque depuis l'onglet combat de la feuille de personnage, sans token sélectionné
- défense contre possession
- correction du mode "méditation" quand le haut-rêvant ne connait pas de méditation
- correction du mode "jeu" quand le personnage ne connait pas de jeux
+3 -3
View File
@@ -36,7 +36,7 @@ export class Distance {
}
static distance(token, defenderToken) {
if (token && defenderToken) {
if (token instanceof Token && defenderToken instanceof Token) {
const ray = new foundry.canvas.geometry.Ray(
token.getCenterPoint(),
defenderToken.getCenterPoint()
@@ -48,7 +48,7 @@ export class Distance {
static isVisible(token, defenderToken) {
// TODO: regarder les StatusEffect aveuglé?
if (token && defenderToken) {
if (token instanceof Token && defenderToken instanceof Token) {
return canvas.effects.visibility.testVisibility(defenderToken.getCenterPoint(), { object: token })
}
return true
@@ -79,7 +79,7 @@ export class Distance {
}
static ajustementMouvement(defenderToken) {
if (defenderToken) {
if (defenderToken instanceof Token) {
if (defenderToken.actor?.getSurprise(true) != '') return { msg: "immobile (surprise)", diff: 0 };
if (defenderToken.inCombat) return { msg: "en mouvement (combat)", diff: -4 };
}
+10 -8
View File
@@ -64,21 +64,23 @@
</subline>
{{/if}}
{{#if current.distance}}
<subline><hr></subline>
<subline>
<span>
<strong>Attaque à distance</strong> {{current.main}} difficulté proposée de <strong>{{current.distance.total}}</strong> à valider par le Gardien
</span>
</subline>
<subline></subline>
<subline>
<ul>
<li>La cible est à une distance indicative de {{numberFormat current.distance.distance decimals=1}} mètres.</li>
<li>Avec les murs et la lumière, la cible
{{#if current.distance.isVisible}}est{{else}}n'est pas{{/if}} visible.
</li>
<li>Portée {{current.distance.portee.msg}} : {{current.distance.portee.diff}}</li>
<li>De taille {{current.distance.taille.msg}}: {{current.distance.taille.diff}}</li>
<li>Mouvement {{current.distance.activite.msg}}: {{current.distance.activite.diff}}</li>
</ul>
<li>Avec les murs et la lumière, la cible
{{#if current.distance.isVisible}}est{{else}}n'est pas{{/if}} visible.
</li>
<li>La cible est à une distance {{#if (lt current.distance.distance 0)}}indéterminée{{else}}indicative de {{numberFormat current.distance.distance decimals=1}} mètres{{/if}}.</li>
<li>Portée {{current.distance.portee.msg}} : {{current.distance.portee.diff}}</li>
<li>Taille {{current.distance.taille.msg}}: {{current.distance.taille.diff}}</li>
<li>Mouvement {{current.distance.activite.msg}}: {{current.distance.activite.diff}}</li>
</ul>
</subline>
{{/if}}
</roll-part-detail>