Module:Item/Mod: Difference between revisions
From Growtopia
Jump to navigationJump to search
>HashJona mNo edit summary |
>HashJona mNo edit summary |
||
| Line 3: | Line 3: | ||
['Speedy'] = 'move faster on land', | ['Speedy'] = 'move faster on land', | ||
['Punch Damage'] = 'break blocks faster', | ['Punch Damage'] = 'break blocks faster', | ||
['Punch Range'] = 'punch | ['Punch Range'] = 'punch one tile further', | ||
['Punch Power'] = 'knock back other players further', | ['Punch Power'] = 'knock back other players further', | ||
['Changing Skin Colors'] = 'alter the color of the player\'s skin to a specific tone', | ['Changing Skin Colors'] = 'alter the color of the player\'s skin to a specific tone', | ||
['Miscellaneous'] = 'revist me', | ['Miscellaneous'] = 'revist me', | ||
['Light Source'] = 'emit light in [[Dark Background Block (block category)|dark areas]]', | ['Light Source'] = 'emit light in [[Dark Background Block (block category)|dark areas]]', | ||
['Build Range'] = 'build | ['Build Range'] = 'build one tile further', | ||
['Punch Pull'] = 'pull other players towards them upon punching them', | ['Punch Pull'] = 'pull other players towards them upon punching them', | ||
['High Jump'] = 'jump higher', | ['High Jump'] = 'jump higher', | ||
| Line 68: | Line 68: | ||
local label = parent['label'] or parent[1] | local label = parent['label'] or parent[1] | ||
local formattedEffects = item.parseEffects(parent) | local formattedEffects = item.parseEffects(parent) | ||
local baseSentence = "When equipped, the " .. title .. " grants the player the ''" .. label .. "'' [[Mods|mod]]" | |||
local fullSentence | |||
if formattedEffects == "" then | |||
fullSentence = baseSentence .. "." | |||
else | |||
fullSentence = baseSentence.. ", which allows the player to " .. formattedEffects .. "." | |||
end | |||
return fullSentence | |||
end | end | ||
return item | return item | ||
Revision as of 22:49, 2 March 2025
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 one 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 one 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 = {}
local numericKeys = {}
for k, _ in pairs(args) do
if type(k) == 'number' then
table.insert(numericKeys, k)
end
end
table.sort(numericKeys)
for i = 2, #numericKeys do
local argIndex = numericKeys[i]
local key = args[argIndex]
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
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 = item.parseEffects(parent)
local baseSentence = "When equipped, the " .. title .. " grants the player the ''" .. label .. "'' [[Mods|mod]]"
local fullSentence
if formattedEffects == "" then
fullSentence = baseSentence .. "."
else
fullSentence = baseSentence.. ", which allows the player to " .. formattedEffects .. "."
end
return fullSentence
end
return item