diff --git a/hench.mjs b/hench.mjs index bcfc764..d094300 100644 --- a/hench.mjs +++ b/hench.mjs @@ -3,6 +3,7 @@ import { HenchCards, HenchCardsDataModel } from "./module/cards/hench-cards.mjs" import { BossDataModel, HenchDataModel } from "./module/data-models.mjs"; import { HenchActorSheet } from "./module/sheets/hench-actor-sheet.mjs"; +import { HenchCardsSheet } from "./module/sheets/hench-cards-sheet.mjs"; Handlebars.registerHelper('int2checkbox', (size, threshold, options) => { return Array(size).fill(0).map( @@ -59,4 +60,10 @@ Hooks.once("init", () => { makeDefault: true, label: 'Hench Sheet', }); + + CardStacks.unregisterSheet('core', CardsConfig); + CardStacks.registerSheet('hench', HenchCardsSheet, { + makeDefault: true, + label: 'Hench Cards Sheet' + }); }); \ No newline at end of file diff --git a/module/cards/hench-cards.mjs b/module/cards/hench-cards.mjs index 315b9a6..b448536 100644 --- a/module/cards/hench-cards.mjs +++ b/module/cards/hench-cards.mjs @@ -132,4 +132,24 @@ export class HenchCards extends Cards { await this.realignSorting(); } + + async drawSpread(amount, from = CONST.CARD_DRAW_MODES.TOP) { + let cardsToGrab = []; + + switch(dest) { + case CONST.CARD_DRAW_MODES.BOTTOM: + case CONST.CARD_DRAW_MODES.LAST: + cardsToGrab = this.deck.slice(this.deck.length - amount, this.deck.length); + break; + case CONST.CARD_DRAW_MODES.TOP: + case CONST.CARD_DRAW_MODES.FIRST: + cardsToGrab = this.deck.slice(0, amount); + break; + default: // Random + const randomized = this.deck.toSorted((a, b) => (Math.random() - 0.5)); + cardsToGrab = randomized.slice(0, amount); + } + + await this.sendCards(cardsToGrab, CARD_ZONES.SPREAD); + } } \ No newline at end of file diff --git a/module/sheets/hench-cards-sheet.mjs b/module/sheets/hench-cards-sheet.mjs new file mode 100644 index 0000000..164787c --- /dev/null +++ b/module/sheets/hench-cards-sheet.mjs @@ -0,0 +1,16 @@ +export class HenchCardsSheet extends CardsConfig { + /** @override */ + get template() { + return `systems/hench/templates/cards/cards.hbs`; + } + + /** @override */ + getData() { + return super.getData(); + } + + /** @override */ + activateListeners(html) { + super.activateListeners(html); + } +} \ No newline at end of file diff --git a/templates/cards/cards.hbs b/templates/cards/cards.hbs new file mode 100644 index 0000000..ed2e012 --- /dev/null +++ b/templates/cards/cards.hbs @@ -0,0 +1,3 @@ +
+ Cards sheet +
\ No newline at end of file