Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 10:48, 8 August 2025 by Alaric Greystone (talk | contribs) (Created page with "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",...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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