74 lines
2.5 KiB
JavaScript
74 lines
2.5 KiB
JavaScript
import { CARD_ZONES } from "../cards/hench-card.mjs";
|
|
import { HenchDeckEditor } from "./hench-deck-editor.mjs";
|
|
import { HenchDiscardView } from "./hench-discard-view.mjs";
|
|
|
|
export class HenchCardsSheet extends CardsConfig {
|
|
/** @override */
|
|
get template() {
|
|
return `systems/hench/templates/cards/cards.hbs`;
|
|
}
|
|
|
|
/** @override */
|
|
getData() {
|
|
const t = super.getData();
|
|
return t;
|
|
}
|
|
|
|
/** @override */
|
|
activateListeners(html) {
|
|
super.activateListeners(html);
|
|
|
|
html.find('.hench-cards-action-draw').on('click', (event) => {
|
|
if(this.document.spread.length < 5) {
|
|
this.document.drawSpread(1);
|
|
}
|
|
});
|
|
|
|
html.find('.hench-cards-action-play').on('click', async (event) => {
|
|
const element = event.currentTarget;
|
|
const index = element.dataset.cardIndex;
|
|
|
|
// play the card!
|
|
await this.document.sendCards(this.document.spread.slice(index, index + 1), CARD_ZONES.DISCARD, CONST.CARD_DRAW_MODES.TOP);
|
|
await this.document.sendCards(this.document.spread, CARD_ZONES.DECK, CONST.CARD_DRAW_MODES.BOTTOM);
|
|
});
|
|
|
|
html.find('.hench-card-action-play-held').on('click', async (event) => {
|
|
// play the card!
|
|
await this.document.sendCards(this.document.held.slice(0, 1), CARD_ZONES.DISCARD, CONST.CARD_DRAW_MODES.TOP);
|
|
});
|
|
|
|
html.find('.hench-cards-action-draw-bottom').on('click', (event) => {
|
|
if(this.document.spread.length < 5) {
|
|
this.document.drawSpread(1, CONST.CARD_DRAW_MODES.BOTTOM);
|
|
}
|
|
});
|
|
|
|
html.find('.hench-cards-action-reset').on('click', (event) => {
|
|
this.document.resetDeck();
|
|
});
|
|
|
|
html.find('.hench-cards-action-return-spread').on('click', (event) => {
|
|
this.document.sendCards(this.document.spread, CARD_ZONES.DECK, CONST.CARD_DRAW_MODES.BOTTOM);
|
|
});
|
|
|
|
html.find('.hench-cards-action-edit-deck').on('click', (event) => {
|
|
const editor = new HenchDeckEditor(this.document);
|
|
editor.render(true);
|
|
});
|
|
|
|
html.find('.hench-cards-action-view-discard').on('click', (event) => {
|
|
const discard = new HenchDiscardView(this.document);
|
|
discard.render(true);
|
|
});
|
|
}
|
|
|
|
/** @override */
|
|
static get defaultOptions() {
|
|
let opts = super.defaultOptions;
|
|
|
|
opts.resizable = true;
|
|
|
|
return opts;
|
|
}
|
|
} |