allow games to be created with no initial cards

This commit is contained in:
AlecM33
2023-08-07 10:12:44 -04:00
parent 9bb88810cb
commit 1a65088377
4 changed files with 7 additions and 9 deletions

View File

@@ -38,8 +38,6 @@ export class GameCreationStepManager {
forwardHandler: () => {
if (this.deckManager.getDeckSize() > 50) {
toast('Your deck is too large. The max is 50 cards.', 'error', true);
} else if (this.deckManager.getDeckSize() < 1) {
toast('You must add at least one card', 'error', true);
} else {
this.currentGame.deck = this.deckManager.deck.filter((card) => card.quantity > 0);
cancelCurrentToast();
@@ -366,7 +364,7 @@ function renderTimerStep (containerId, stepNumber, game, steps) {
const hoursDiv = document.createElement('div');
const hoursLabel = document.createElement('label');
hoursLabel.setAttribute('for', 'game-hours');
hoursLabel.innerText = 'Hours (max 5)';
hoursLabel.innerText = 'Hours';
const hours = document.createElement('input');
hours.addEventListener('keyup', steps[stepNumber].forwardHandler);
setAttributes(hours, { type: 'number', id: 'game-hours', name: 'game-hours', min: '0', max: '5', value: game.timerParams?.hours });
@@ -414,7 +412,7 @@ function renderReviewAndCreateStep (containerId, stepNumber, game, deckManager)
'</div>' +
'<div>' +
"<label id='roles-option-label' for='roles-option'>Game Deck:</label>" +
"<div id='roles-option' class='review-option'></div>" +
"<div id='roles-option' class='review-option'>No cards selected.</div>" +
'</div>';
div.querySelector('#test-game').innerText = game.isTestGame ? 'Yes' : 'No';

View File

@@ -81,8 +81,6 @@ export class Lobby {
roleEditPrompt.querySelector('#save-role-changes-button').addEventListener('click', () => {
if (this.gameCreationStepManager.deckManager.getDeckSize() > 50) {
toast('Your deck is too large. The max is 50 cards.', 'error', true);
} else if (this.gameCreationStepManager.deckManager.getDeckSize() < 1) {
toast('You must add at least one card', 'error', true);
} else {
document.querySelector('#mid-game-role-editor')?.remove();
document.querySelector('#role-edit-container-background')?.remove();

View File

@@ -27,7 +27,9 @@ class Game {
this.previousModeratorId = null;
this.createTime = createTime;
this.timerParams = timerParams;
this.isStartable = (this.gameSize === 1 && !this.hasDedicatedModerator) || isTestGame;
this.isStartable = (this.gameSize === 1 && !this.hasDedicatedModerator)
|| (this.gameSize === 0 && this.hasDedicatedModerator)
|| isTestGame;
this.timeRemaining = null;
}
}

View File

@@ -31,7 +31,7 @@ class GameCreationRequest {
};
static deckIsValid = (deck) => {
if (Array.isArray(deck) && deck.length > 0) {
if (Array.isArray(deck)) {
for (const entry of deck) {
if (entry !== null
&& typeof entry === 'object'
@@ -45,7 +45,7 @@ class GameCreationRequest {
&& entry.description.length <= globals.MAX_CUSTOM_ROLE_DESCRIPTION_LENGTH
&& (!entry.custom || typeof entry.custom === 'boolean')
&& typeof entry.quantity === 'number'
&& entry.quantity >= 1
&& entry.quantity >= 0
&& entry.quantity <= 50
) {
continue;