Module:AchievementSystem: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Line 358: Line 358:
-- Get a user-friendly name for a given achievement type
-- Get a user-friendly name for a given achievement type
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function Achievements.getAchievementName(achievementType)
function Achievements.getAchievementName(achievementType, frame)
     if not achievementType or achievementType == '' then
     if not achievementType or achievementType == '' then
         return 'Unknown'
         return 'Unknown'
     end
     end


     local types = Achievements.loadTypes()
     local types = Achievements.loadTypes(frame)
      
      
     -- Try to match achievement ID
     -- Try to match achievement ID
Line 383: Line 383:
-- Return the CSS class and the readable achievement name
-- Return the CSS class and the readable achievement name
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function Achievements.getTitleClass(pageId)
function Achievements.getTitleClass(pageId, frame)
     if not pageId or pageId == '' then
     if not pageId or pageId == '' then
         return '', ''
         return '', ''
Line 393: Line 393:
     end
     end


     local types = Achievements.loadTypes()
     local types = Achievements.loadTypes(frame)
     local highestTier = 999
     local highestTier = 999
     local highestAchievement = nil
     local highestAchievement = nil
Line 424: Line 424:
-- Renders a box with the top-tier achievement for the user
-- Renders a box with the top-tier achievement for the user
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function Achievements.renderAchievementBox(pageId)
function Achievements.renderAchievementBox(pageId, frame)
     if not pageId or pageId == '' then
     if not pageId or pageId == '' then
         return ''
         return ''
Line 434: Line 434:
     end
     end
      
      
     local types = Achievements.loadTypes()
     local types = Achievements.loadTypes(frame)
      
      
     -- Build a lookup table for achievement type definitions
     -- Build a lookup table for achievement type definitions
Line 537: Line 537:
-- Get achievement definition directly from JSON data
-- Get achievement definition directly from JSON data
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function Achievements.getAchievementDefinition(achievementType)
function Achievements.getAchievementDefinition(achievementType, frame)
     if not achievementType or achievementType == '' then
     if not achievementType or achievementType == '' then
         return nil
         return nil
     end
     end
      
      
     local types = Achievements.loadTypes()
     local types = Achievements.loadTypes(frame)
      
      
     -- Direct lookup in achievement_types array
     -- Direct lookup in achievement_types array
Line 559: Line 559:
-- Return the CSS class, readable achievement name, and achievement ID (or empty strings if none found)
-- Return the CSS class, readable achievement name, and achievement ID (or empty strings if none found)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
function Achievements.getTitleAchievement(pageId)
function Achievements.getTitleAchievement(pageId, frame)
     if not pageId or pageId == '' then
     if not pageId or pageId == '' then
         return '', '', ''
         return '', '', ''
Line 569: Line 569:
     end
     end


     local types = Achievements.loadTypes()
     local types = Achievements.loadTypes(frame)
      
      
     -- Build a table of achievement definitions for quick lookup
     -- Build a table of achievement definitions for quick lookup