diff --git a/package-lock.json b/package-lock.json
index 02491002f..1d954dcf4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "gloomhavensecretariat",
- "version": "0.100.4",
+ "version": "0.100.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "gloomhavensecretariat",
- "version": "0.100.4",
+ "version": "0.100.5",
"license": "AGPL3",
"dependencies": {
"@angular/animations": "^18.2.6",
diff --git a/package.json b/package.json
index 36313fdfc..6895723d1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "gloomhavensecretariat",
- "version": "0.100.4",
+ "version": "0.100.5",
"license": "AGPL3",
"description": "Gloomhaven Secretariat is a Gloomhaven/Frosthaven Companion app.",
"homepage": "https://gloomhaven-secretariat.de",
diff --git a/src/app/ui/figures/loot/loot-deck.ts b/src/app/ui/figures/loot/loot-deck.ts
index babe410ed..c68ba4f3f 100644
--- a/src/app/ui/figures/loot/loot-deck.ts
+++ b/src/app/ui/figures/loot/loot-deck.ts
@@ -224,8 +224,8 @@ export class LootDeckComponent implements OnInit, OnDestroy, OnChanges {
}, !settingsManager.settings.animations ? 0 : (this.vertical ? 1050 : 1850));
}
- draw(event: any) {
- if (this.compact && this.fullscreen) {
+ draw(event: any, forceDraw: boolean = false) {
+ if (this.compact && this.fullscreen && !forceDraw) {
this.openFullscreen(event);
} else if (!this.disabled && this.deck.cards.length > 0) {
if (!this.drawTimeout && this.deck.current < (this.deck.cards.length - (this.queue == 0 ? 0 : 1))) {
diff --git a/src/app/ui/footer/footer.html b/src/app/ui/footer/footer.html
index 81ed17f76..9fe97539d 100644
--- a/src/app/ui/footer/footer.html
+++ b/src/app/ui/footer/footer.html
@@ -22,7 +22,7 @@
0, 'no-monster-deck' : !settingsManager.settings.monsterAttackModifierDeck}">
-
@@ -34,7 +34,7 @@
= 0 && !gameManager.game.monsterAttackModifierDeck.state), 'full' : gameManager.game.monsterAttackModifierDeck.active && (!gameManager.game.monsterAttackModifierDeck.bb && gameManager.game.monsterAttackModifierDeck.current > 0 || gameManager.game.monsterAttackModifierDeck.bb && gameManager.game.monsterAttackModifierDeck.current >= 0 && gameManager.game.monsterAttackModifierDeck.state)}">
-
@@ -46,8 +46,8 @@
0}"
- *ngIf="settingsManager.settings.lootDeck && (lootDeck || settingsManager.settings.alwaysLootDeck || gameManager.fhRules())">
-
+
figure instanceof Monster && (figure.isAlly || figure.isAllied) || figure instanceof ObjectiveContainer && figure.objectiveId && gameManager.objectiveManager.objectiveDataByObjectiveIdentifier(figure.objectiveId)?.allyDeck) || gameManager.game.scenario && gameManager.game.scenario.allyDeck) || false;
- this.lootDeck = settingsManager.settings.lootDeck && Object.keys(gameManager.game.lootDeck.cards).length > 0;
+ this.lootDeckEnabeld = settingsManager.settings.lootDeck && Object.keys(gameManager.game.lootDeck.cards).length > 0;
gameManager.uiChange.subscribe({
next: () => {
this.hasAllyAttackModifierDeck = settingsManager.settings.allyAttackModifierDeck && (settingsManager.settings.alwaysAllyAttackModifierDeck || gameManager.fhRules() && gameManager.game.figures.some((figure) => figure instanceof Monster && (figure.isAlly || figure.isAllied) || figure instanceof ObjectiveContainer && figure.objectiveId && gameManager.objectiveManager.objectiveDataByObjectiveIdentifier(figure.objectiveId)?.allyDeck) || gameManager.game.scenario && gameManager.game.scenario.allyDeck) || false;
- this.lootDeck = settingsManager.settings.lootDeck && Object.keys(gameManager.game.lootDeck.cards).length > 0;
+ this.lootDeckEnabeld = settingsManager.settings.lootDeck && Object.keys(gameManager.game.lootDeck.cards).length > 0;
}
})
diff --git a/src/app/ui/helper/keyboard-shortcuts.ts b/src/app/ui/helper/keyboard-shortcuts.ts
index 4d1ea4f91..3ff41c997 100644
--- a/src/app/ui/helper/keyboard-shortcuts.ts
+++ b/src/app/ui/helper/keyboard-shortcuts.ts
@@ -148,17 +148,11 @@ export class KeyboardShortcuts implements OnInit, OnDestroy {
gameManager.stateManager.after();
}
event.preventDefault();
- } else if ((!this.dialogOpen || this.allowed.indexOf('loot') != -1) && gameManager.game.state == GameState.next && !event.ctrlKey && !event.shiftKey && !this.zoomInterval && event.key.toLowerCase() === 'l' && settingsManager.settings.lootDeck && gameManager.game.lootDeck.cards.length > 0) {
- gameManager.stateManager.before('lootDeckDraw');
- gameManager.game.lootDeck.active = true;
- const activeCharacter = gameManager.game.figures.find((figure) => figure instanceof Character && figure.active);
- if (!settingsManager.settings.alwaysLootApplyDialog && activeCharacter instanceof Character) {
- gameManager.lootManager.drawCard(gameManager.game.lootDeck, activeCharacter);
- } else {
- gameManager.lootManager.drawCard(gameManager.game.lootDeck, undefined);
+ } else if ((!this.dialogOpen || this.allowed.indexOf('loot') != -1) && gameManager.game.state == GameState.next && !event.ctrlKey && !event.shiftKey && !this.zoomInterval && event.key.toLowerCase() === 'l' && settingsManager.settings.lootDeck && gameManager.game.lootDeck.cards.length > 0 && this.footer && this.footer.lootDeck) {
+ if (!this.footer.lootDeck.deck.active) {
+ this.footer.toggleLootDeck();
}
- gameManager.stateManager.after();
-
+ this.footer.lootDeck.draw(event, true);
event.preventDefault();
} else if (!this.dialogOpen && !event.ctrlKey && event.key === 'Tab' && gameManager.game.figures.length > 0) {
if (gameManager.game.state == GameState.next) {