Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Documentation for this module may be created at Module:MysteryTracker/doc

local p = {}

function p.getTotalMysteries(frame)
    return "47"
end

function p.getSolvedCount(frame)
    return "23"
end

function p.renderActiveInvestigations(frame)
    local investigations = {
        {
            title = "The Chen Constellation Chain",
            status = "Active",
            difficulty = 4,
            investigators = {"MysterySeeker", "QuantumWizard", "StarGazer"},
            progress = 75,
            lastUpdate = "2 hours ago",
            clues = 8,
            nextStep = "Analyze telescope data from Astronomy Tower"
        },
        {
            title = "Operation Mindbridge", 
            status = "Critical",
            difficulty = 5,
            investigators = {"CodeBreaker", "RoomWalker"},
            progress = 45,
            lastUpdate = "1 day ago",
            clues = 12,
            nextStep = "Access restricted basement archives"
        },
        {
            title = "The Digital Dark Ages",
            status = "Recruiting",
            difficulty = 3,
            investigators = {"HistoryBuff"},
            progress = 20,
            lastUpdate = "3 days ago", 
            clues = 4,
            nextStep = "Gather testimony from 2040s survivors"
        }
    }
    
    local output = {}
    table.insert(output, '<div class="investigations-grid">')
    
    for i, inv in ipairs(investigations) do
        local statusClass = inv.status:lower():gsub(" ", "-")
        local difficultyStars = string.rep("⭐", inv.difficulty)
        local investigatorsList = table.concat(inv.investigators, ", ")
        
        table.insert(output, '<div class="investigation-card status-' .. statusClass .. '">')
        table.insert(output, '<div class="investigation-header">')
        table.insert(output, '<h3 class="investigation-title"><a href="/wiki/' .. inv.title .. '">' .. inv.title .. '</a></h3>')
        table.insert(output, '<span class="investigation-status">' .. inv.status .. '</span>')
        table.insert(output, '</div>')
        table.insert(output, '<div class="investigation-meta">')
        table.insert(output, '<div class="difficulty">' .. difficultyStars .. '</div>')
        table.insert(output, '<div class="progress-section">')
        table.insert(output, '<div class="progress-bar">')
        table.insert(output, '<div class="progress-fill" style="width: ' .. inv.progress .. '%"></div>')
        table.insert(output, '</div>')
        table.insert(output, '<span class="progress-text">' .. inv.progress .. '% Complete</span>')
        table.insert(output, '</div>')
        table.insert(output, '</div>')
        table.insert(output, '<div class="investigation-details">')
        table.insert(output, '<div class="investigators"><strong>👥 Investigators:</strong> ' .. investigatorsList .. '</div>')
        table.insert(output, '<div class="clues"><strong>🔍 Clues Found:</strong> ' .. inv.clues .. '</div>')
        table.insert(output, '<div class="next-step"><strong>📋 Next Step:</strong> ' .. inv.nextStep .. '</div>')
        table.insert(output, '<div class="last-update"><strong>🕒 Last Update:</strong> ' .. inv.lastUpdate .. '</div>')
        table.insert(output, '</div>')
        table.insert(output, '<div class="investigation-actions">')
        table.insert(output, '<a href="/wiki/' .. inv.title .. '" class="btn-primary">View Case File</a>')
        table.insert(output, '<a href="/wiki/Talk:' .. inv.title .. '" class="btn-secondary">Join Discussion</a>')
        table.insert(output, '</div>')
        table.insert(output, '</div>')
    end
    
    table.insert(output, '</div>')
    
    table.insert(output, '<div class="mystery-stats">')
    table.insert(output, '<div class="stat-box">')
    table.insert(output, '<div class="stat-number">47</div>')
    table.insert(output, '<div class="stat-label">Total Mysteries</div>')
    table.insert(output, '</div>')
    table.insert(output, '<div class="stat-box">')
    table.insert(output, '<div class="stat-number">23</div>')
    table.insert(output, '<div class="stat-label">Solved</div>')
    table.insert(output, '</div>')
    table.insert(output, '<div class="stat-box">')
    table.insert(output, '<div class="stat-number">24</div>')
    table.insert(output, '<div class="stat-label">Active</div>')
    table.insert(output, '</div>')
    table.insert(output, '<div class="stat-box">')
    table.insert(output, '<div class="stat-number">15</div>')
    table.insert(output, '<div class="stat-label">Investigators</div>')
    table.insert(output, '</div>')
    table.insert(output, '</div>')
    
    return table.concat(output)
end

return p