mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-15 21:21:08 +01:00
Added hover functionality to adversary damage cards
This commit is contained in:
parent
af780520dd
commit
744412bf9f
3 changed files with 40 additions and 2 deletions
|
|
@ -131,6 +131,41 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage {
|
||||||
html.querySelectorAll('.button-target-selection').forEach(element => {
|
html.querySelectorAll('.button-target-selection').forEach(element => {
|
||||||
element.addEventListener('click', this.onTargetSelection.bind(this));
|
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() {
|
getTargetList() {
|
||||||
|
|
|
||||||
|
|
@ -3,18 +3,20 @@
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
|
|
||||||
.target-container {
|
.token-target-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 2px;
|
gap: 2px;
|
||||||
border: 1px solid light-dark(@dark-blue, @golden);
|
border: 1px solid light-dark(@dark-blue, @golden);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
header {
|
header {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 2px;
|
gap: 2px;
|
||||||
border-bottom: 1px solid light-dark(@dark-blue, @golden);
|
border-bottom: 1px solid light-dark(@dark-blue, @golden);
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
flex: 0;
|
flex: 0;
|
||||||
|
|
@ -35,6 +37,7 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
gap: 2px;
|
gap: 2px;
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
.damage-row {
|
.damage-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="daggerheart chat damage-summary">
|
<div class="daggerheart chat damage-summary">
|
||||||
{{#each targets}}
|
{{#each targets}}
|
||||||
<div class="target-container">
|
<div class="token-target-container" data-token-uuid="{{this.token.uuid}}">
|
||||||
<header>
|
<header>
|
||||||
<img src="{{this.token.texture.src}}" />
|
<img src="{{this.token.texture.src}}" />
|
||||||
<label>{{this.token.name}}</label>
|
<label>{{this.token.name}}</label>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue