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:Item/Mod/doc

local effect = {
	['Double Jump'] = 'jump a second time in mid-air',
	['Speedy'] = 'move faster on land',
	['Punch Damage'] = 'break blocks faster',
	['Punch Range'] = 'punch 1 tile further',
	['Punch Power'] = 'knock back other players further',
	['Changing Skin Colors'] = 'alter the color of the player\'s skin to a specific tone',
	['Miscellaneous'] = 'revist me',
	['Light Source'] = 'emit light in [[Dark Background Block (block category)|dark areas]]',
	['Build Range'] = 'build 1 tile further',
	['Punch Pull'] = 'pull other players towards them upon punching them',
	['High Jump'] = 'jump higher',
	['Slow Fall'] = 'glide slowly to the ground when pressing the jump button',
	['Wall Climbing'] = 'cling onto [[Climbing Wall|Climbing Walls]] by pressing the jump button',
	['Fire Hose'] = 'extinguish [[Fire|fires]]',
	['Fireproof'] = 'take 50% less damage from [[Lava Pain Block (block category)|lava pain blocks]]',
	['Ghost Immunity'] = 'immunity against certain types of ghosts',
	['Healing'] = 'heal faster than usual after receiving damage from hitting a [[Pain Block (block category)|Pain Blocks]]',
	['XP Buff'] = 'gain more [[Leveling|XP]]',
	['Slippery'] = 'glide on any surface as if it is [[Slippery Block (block category)|slippery]]',
	['Putt Putt Putt'] = 'move slower, but allows the player to harvest trees by walking through them',
	['Damage Reduction'] = 'break blocks more slowly',
	['Knock Back Reduction'] = 'resist a percentage of knockback when [[Punching|punched]] by other players',
	['Speedy in Water'] = 'move faster in water',
	['Float on Water'] = 'float on [[Water Bucket|water]]',
	['Grow Effect'] = 'expand in size',
	['Zombie Weapon'] = 'kill [[G-Virus|zombies]] during a Pandemic',
	['Low Jump'] = 'decrease the player\'s jump height',
}

local item = {}

function item.parseEffects(args) 
	local parsedEffects = {}
	mw.log("Debug - frame.args: " .. mw.dumpObject(args))
    for i = 2, #args do
        local key = args[i]
        if effect[key] then
            table.insert(parsedEffects, effect[key])
        end
    end
    
    local n = #parsedEffects
    if n == 0 then
        return ""
    elseif n == 1 then
        return parsedEffects[1]
    elseif n == 2 then
        return parsedEffects[1] .. " and " .. parsedEffects[2]
    else
        -- Join all elements except the last with ", " then append " and " with the last one
        local firstPart = table.concat(parsedEffects, ", ", 1, n - 1)
        return firstPart .. " and " .. parsedEffects[n]
    end
end

function item.description(frame) 
	local parent = frame:getParent().args
	local title = mw.title.getCurrentTitle().text or 'unknown'
	local label = parent['label'] or parent[1]
    local formattedEffects =  #frame.args
    
    return "When equipped, the "..title.." grants the player the ''"..label.."'' [[Mods|mod]], which allows the player to "..formattedEffects.."."
end


function item.debug(frame)
    return '<pre>' .. mw.dumpObject(frame:getParent().args) .. '</pre>'
end

return item