Added hover functionality to adversary damage cards

This commit is contained in:
WBHarry 2025-08-25 21:44:29 +02:00
parent af780520dd
commit 744412bf9f
3 changed files with 40 additions and 2 deletions

View file

@ -131,6 +131,41 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
html.querySelectorAll('.button-target-selection').forEach(element => {
element.addEventListener('click', this.onTargetSelection.bind(this));
});
html.querySelectorAll('.token-target-container').forEach(element => {
element.addEventListener('pointerover', this._onTokenTargetHoverIn.bind(this));
element.addEventListener('pointerout', this._onTokenTargetHoverOut.bind(this));
element.addEventListener('click', this._onTokenTargetClick.bind(this));
});
}
async _onTokenTargetHoverIn(event) {
const { tokenUuid } = event.target.dataset;
if (!canvas.ready || !tokenUuid) return;
const token = await foundry.utils.fromUuid(tokenUuid);
if (token?.object && token.object._canHover(game.user, event) && token.object.visible) {
token.object._onHoverIn(event, { hoverOutOthers: true });
}
}
async _onTokenTargetHoverOut(event) {
const { tokenUuid } = event.target.dataset;
if (!canvas.ready || !tokenUuid) return;
const token = await foundry.utils.fromUuid(tokenUuid);
if (token?.object) token.object._onHoverOut(event);
}
async _onTokenTargetClick(event) {
const { tokenUuid } = event.target.dataset;
if (!canvas.ready || !tokenUuid) return;
const token = await foundry.utils.fromUuid(tokenUuid);
if (token?.object) {
const { _x: x, _y: y } = token.object.position;
game.canvas.pan({ x, y });
}
}
getTargetList() {

View file

@ -3,18 +3,20 @@
grid-template-columns: 1fr 1fr;
gap: 4px;
.target-container {
.token-target-container {
display: flex;
flex-direction: column;
gap: 2px;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
cursor: pointer;
header {
display: flex;
align-items: center;
gap: 2px;
border-bottom: 1px solid light-dark(@dark-blue, @golden);
pointer-events: none;
img {
flex: 0;
@ -35,6 +37,7 @@
flex-direction: column;
justify-content: center;
gap: 2px;
pointer-events: none;
.damage-row {
display: flex;

View file

@ -1,6 +1,6 @@
<div class="daggerheart chat damage-summary">
{{#each targets}}
<div class="target-container">
<div class="token-target-container" data-token-uuid="{{this.token.uuid}}">
<header>
<img src="{{this.token.texture.src}}" />
<label>{{this.token.name}}</label>