function alertMessage(message) { let newHtml = ''; const alertId = `alert-${Date.now()}`; const fadeTime = 500; const duration = 5000; newHtml += `
`; $('#main-body').prepend(newHtml); const $notice = $(`#${alertId}`); $notice.fadeIn(fadeTime); setTimeout(function() { $notice.fadeOut(fadeTime, function() { $(this).parent().remove(); }); }, duration); } function receiveHandEvent(eventData) { //Data const dog = eventData.dog; const hand = eventData.hand; const handElement = $('#card-slide'); handElement.addClass('ingame-cards-slide') let newHtml = ''; //Build Hand Container hand.forEach((card) => { //Data const idx = card.idx const cardS = card.card; const cardHtml = `
${cardS}
`; newHtml += cardHtml; }); //Build dog if needed if (dog) { newHtml += `
`; } handElement.html(newHtml); } function newRoundEvent(eventData) { const trumpsuit = eventData.trumpsuit; const players = eventData.players; const tableElement = $('#score-table-body'); let tablehtml = `

Tricks Won

PLAYER
TRICKS
`; players.forEach( tablehtml += `
'${players}'
0
` ); tableElement.html(tablehtml); const trumpsuitClass = $('#trumpsuit'); trumpsuitClass.html(trumpsuit); } function trickEndEvent(eventData) { const winner = eventData.playerwon; const players = eventData.playersin; const tricklist = eventData.tricklist; let newHtml = ''; let tricktable = $('#score-table-body'); newHtml += `

Tricks Won

PLAYER
TRICKS
`; let playercounts = new Map(); players.forEach( player => { playercounts.set(player, 0) }); tricklist.forEach( player => { if ( player !== "Trick in Progress" && playercounts.has(player)) { playercounts.set(player, playercounts.get(player) + 1) } } ) const playerorder = players.sort((playerA, playerB) => { const countA = playercounts.get(playerA.name) || 0; const countB = playercounts.get(playerB.name) || 0; return countB - countA; }); playerorder.forEach( player => { newHtml += `
${player}
${playercounts.get(player)}
` }); tricktable.html(newHtml); } function newTrickEvent() { const firstCardContainer = $('#first-card-container'); let newHtml = ''; newHtml += ` Blank Card `; console.log("NEW TRICK EVENT") firstCardContainer.html(newHtml); } function requestCardEvent(eventData) { const player = eventData.player; const handElement = $('#card-slide') console.log("PLAY A CARD") handElement.removeClass('inactive'); } //alertMessage("JANIS DU DUMMER WICHSER") //alertMessage("NOCHMAL DUMMER WICHSER") function receiveGameStateChange(eventData) { const content = eventData.content; const title = eventData.title || 'Knockout Whist'; exchangeBody(content, title); } function receiveCardPlayedEvent(eventData) { const firstCard = eventData.firstCard; const playedCards = eventData.playedCards; const trickCardsContainer = $('#trick-cards-container'); const firstCardContainer = $('#first-card-container') let trickHTML = ''; playedCards.forEach(cardCombo => { trickHTML += `
${cardCombo.cardId}
${cardCombo.player}
`; }); trickCardsContainer.html(trickHTML); let altText; let imageSrc; if (firstCard === "BLANK") { imageSrc = "/assets/images/cards/1B.png"; altText = "Blank Card"; } else { imageSrc = `/assets/images/cards/${firstCard}.png`; altText = `Card ${firstCard}`; } const newFirstCardHTML = ` ${altText} `; firstCardContainer.html(newFirstCardHTML); } onEvent("ReceivedHandEvent", receiveHandEvent) onEvent("GameStateChangeEvent", receiveGameStateChange) onEvent("NewRoundEvent", newRoundEvent) onEvent("TrickEndEvent", trickEndEvent) onEvent("NewTrickEvent", newTrickEvent) onEvent("RequestCardEvent", requestCardEvent) onEvent("CardPlayedEvent", receiveCardPlayedEvent) globalThis.alertMessage = alertMessage