diff --git a/SerpentRace_Frontend/src/pages/Decks/Card_display.jsx b/SerpentRace_Frontend/src/pages/Decks/Card_display.jsx index 175aed1d..49451377 100644 --- a/SerpentRace_Frontend/src/pages/Decks/Card_display.jsx +++ b/SerpentRace_Frontend/src/pages/Decks/Card_display.jsx @@ -145,6 +145,8 @@ const Card_display = () => { "QUESTION": "Kérdés", "LUCK": "Szerencse", "JOKER": "Joker", + "joker": "Joker", + "luck": "Szerencse", // If backend converts to different numbers, map them: "0": "Igaz/Hamis", // truefalse = 0 "1": "Feleletválasztós", // multiplechoice = 1 @@ -352,7 +354,7 @@ const Card_display = () => { )} {paginatedCards.map((card, idx) => { const cardIndex = startIndex + idx + 1 - const questionText = card.question || card.statement || 'Kérdés hiányzik' + const questionText = card.text || card.question || card.statement || 'Kérdés hiányzik' // Get answers based on card type let answerOptions = [] @@ -364,13 +366,30 @@ const Card_display = () => { // Detect card type by fields if subType is missing let detectedType = subType if (subType === 'undefined' || subType === 'null') { - // Check by numeric type field first - if (card.type === 3) { - // type 3 = True/False - detectedType = 'truefalse' - } else if (card.type === 2) { - // type 2 = Text answer - detectedType = 'text' + // First check deck type - if deck is JOKER or LUCK type, cards inherit that + if (deck.type === 1) { + // Deck type 1 = Joker deck + detectedType = 'joker' + } else if (deck.type === 0) { + // Deck type 0 = Luck deck + detectedType = 'luck' + } else if (card.type !== undefined) { + // Check by card.type field (string or numeric) + const cardType = typeof card.type === 'string' ? card.type.toLowerCase() : card.type + + if (cardType === 'joker' || card.type === 'JOKER') { + // Joker card + detectedType = 'joker' + } else if (cardType === 'luck' || card.type === 'LUCK') { + // Luck card + detectedType = 'luck' + } else if (card.type === 3) { + // type 3 = True/False + detectedType = 'truefalse' + } else if (card.type === 2) { + // type 2 = Text answer + detectedType = 'text' + } } else if (card.leftItems && card.rightItems && card.correctPairs) { // Has leftItems, rightItems AND correctPairs = matching detectedType = 'matching' @@ -385,6 +404,28 @@ const Card_display = () => { } } + // Extract consequence info for JOKER and LUCK cards + let consequenceText = null + if ((detectedType === 'joker' || detectedType === 'luck') && card.consequence) { + const consequenceLabels = { + 0: 'Lépj előre', + 1: 'Lépj hátra', + 2: 'Kör kihagyás', + 3: 'Extra kör', + 5: 'Vissza a starthoz' + } + const consequenceType = consequenceLabels[card.consequence.type] || 'Ismeretlen hatás' + const consequenceValue = card.consequence.value + + if (consequenceValue && [0, 1].includes(card.consequence.type)) { + consequenceText = `${consequenceType} ${consequenceValue} mezőt` + } else if (consequenceValue && [2, 3].includes(card.consequence.type)) { + consequenceText = `${consequenceType} (${consequenceValue} kör)` + } else { + consequenceText = consequenceType + } + } + if (detectedType === 'truefalse' || detectedType === '0') { // True/False cards answerOptions = ['Igaz', 'Hamis'] @@ -432,16 +473,92 @@ const Card_display = () => { return (