Anonymous

Module:Icons: Difference between revisions

From Melvor Idle
3,701 bytes added ,  13 January 2021
Added extension overrides for the pets
(Added ability to override extensions as necessary)
(Added extension overrides for the pets)
(19 intermediate revisions by the same user not shown)
Line 10: Line 10:
   ["Charge Stone of Rhaelyx"] = "png",
   ["Charge Stone of Rhaelyx"] = "png",
   ["Mysterious Stone"] = "png",
   ["Mysterious Stone"] = "png",
  ["Aeris Godsword"] = "png",
   ["Cloudburst Staff"] = "png",
   ["Cloudburst Staff"] = "png",
  ["Earth Layered Shield"] = "png",
  ["Lemon"] = "jpg",
  ["Lemons"] = "jpg",
  ["Lemonade"] = "jpg",
  ["Miolite Sprig"] = "png",
  ["Miolite Trio"] = "png",
  ["Miolite Warden"] = "png",
  ["Miolite Monarch"] = "png",
  ["Wicked Greater Dragon"] = "png",
  ["Hunting Greater Dragon"] = "png",
  ["Chaotic Greater Dragon"] = "png",
  ["Beavis"] = "png",
  ["Pudding Duckie"] = "png",
  ["Pyro"] = "png",
  ["Snek"] = "png",
  ["Larry, the Lonely Lizard"] = "png",
  ["Caaarrrlll"] = "png",
  ["Gronk"] = "png",
  ["Finn, the Cat"] = "png",
  ["Marahute"] = "png",
  ["Monk-ey"] = "png",
  ["Asura"] = "png"
}
--When calling for an icon of type Key, instead use type Value
local typeOverrides = {
  ['combat'] = 'combatArea',
  ['slayer'] = 'combatArea',
}
--When calling for an icon for Key, replace with image Value
local imgOverrides = {
  ['Alt Magic'] = 'Magic',
  ['Alt. Magic'] = 'Magic',
  ['Alternative Magic'] = 'Magic',
  ['Melee'] = 'Combat',
  ['Spider (lv. 51)'] = 'Spider',
  ['Spider (lv. 52)'] = 'Spider2'
}
--When calling for an icon for Key, the link goes to Value
local linkOverrides = {
  ['Alt Magic'] = 'Alternative Magic',
  ['Alt. Magic'] = 'Alternative Magic',
  ['Spider'] = 'Spider (lv. 51)',
  ['Spider2'] = 'Spider (lv. 52)'
}
--If no other text override was specified for the given link, use these
local txtOverrides = {
  ['Spider'] = 'Spider (lv. 51)',
  ['Spider2'] = 'Spider (lv. 52)'
}
}


Line 27: Line 75:
   local imgSize = args.size ~= nil and args.size or 25
   local imgSize = args.size ~= nil and args.size or 25
   local qty = args.qty
   local qty = args.qty
  local img = args.img ~= nil and args.img or link
  link = string.gsub(link, "%%27", "'")
  link = string.gsub(link, "'", "'")
  link = string.gsub(link, "'", "'")
  img = string.gsub(img, "%%27", "'")
  img = string.gsub(img, "'", "'")
  img = string.gsub(img, "'", "'")


   local img = link
   img = string.gsub(img, '#', '')
  link = string.gsub(link, '#', '')
   --MANUAL OVERRIDES
   --MANUAL OVERRIDES
   if link == 'Melee' then
   if imgOverrides[link] ~= nil and img == link then
     img = 'Combat'
     img = imgOverrides[link]
   elseif link == 'Spider (lv. 51)' then
  end
     img = 'Spider'
   if text == nil and txtOverrides[link] ~= nil then
  elseif link == 'Spider (lv. 52)' then
    text = txtOverrides[link]
     img = 'Spider2'
  end
   elseif link == 'Spider' then
  if linkOverrides[link] ~= nil then
     link = 'Spider (lv. 51)'
     if text == nil then text = link end
  elseif link == 'Spider2' then
    link = linkOverrides[link]
     link = 'Spider (lv. 52)'
  end
  if extOverrides[img] ~= nil then  
     ext = extOverrides[img]
  end
  if typeOverrides[type] ~= nil then
    type = typeOverrides[type]
  end
  --There are a couple specific double overrides I want to include that don't fit in the above lists
   if link == 'Golbin' then
     if text == nil then text = 'Golbin' end
     link = 'Golbin ('..type..')'
   end
   end


   if extOverrides[img] ~= nil then ext = extOverrides[img] end
   --Creating the image...
 
   local result = '[[File:'..img
   local result = '[[File:'..img
  --Add in type if one is set
   if type ~= nil and type ~= '' then result = result..'_('..type..')' end
   if type ~= nil and type ~= '' then result = result..'_('..type..')' end
   result = result..'.'..ext..'|'..tostring(imgSize)..'px'  
  --Add in extension and image size
   result = result..'.'..ext..'|'..tostring(imgSize)..'x'..tostring(imgSize)..'px'  
  --Include a link unless no link -and- no text was requested
   if not (nolink and notext) then result = result..'|link='..link end
   if not (nolink and notext) then result = result..'|link='..link end
   result = result..']]'
   result = result..']]'
 
 
   if qty ~= nil and qty ~= '' then result = result..' '..Shared.formatnum(qty) end
  --Add Quantity to the front if requested
   if qty ~= nil and qty ~= '' then result = Shared.formatnum(qty)..' '..result end


   if not notext then  
   if not notext then  
Line 61: Line 131:
     else
     else
       result = result..' [['..link
       result = result..' [['..link
       if text ~= nil and text ~= '' then
       if text ~= nil and text ~= '' and text ~= link then
         result = result..'|'..text
         result = result..'|'..text
       end
       end
Line 78: Line 148:
end
end


function p._SkillReq(skill, level)
function p._SkillReq(skill, level, showText)
   local result = '[[File:'..skill..'_(skill).svg|25px|link='..skill..']]'
   local result = p.Icon({skill, type='skill', notext='true'})
   result = result.." '''"..level.."'''"
  if showText then
    result = result..' [['..skill..']]'
  end
   result = result.." Level "..level


   result = '<span style="display:inline-block">'..result..'</span>'
   result = '<span style="display:inline-block">'..result..'</span>'
Line 90: Line 163:
   local skill = args[1]
   local skill = args[1]
   local level = tonumber(args[2])
   local level = tonumber(args[2])
   return p._SkillReq(skill, level)
  local showText = args.showText ~= nil and args.showText ~= '' and args.showText ~= 'false'
   return p._SkillReq(skill, level, showText)
end
 
function p._MasteryReq(itemName, level, showText)
  local iconname = itemName
  local linkname = itemName
  --First, go with the lowest tier of potions if a potion is mentioned
  local s, e = string.find(itemName, 'Potion')
  if e ~= nil then
    linkname = string.sub(itemName, 1, e)
    iconname = linkname..' I'
  end
 
  local result = 'Level '..level..' '
  result = result..p.Icon({linkname, img=iconname, type='item', notext = true})..p.Icon({'Mastery', notext=true})
  if showText  then result = result..'[['..linkname..']] [[Mastery]]' end
  result = '<span style="display:inline-block">'..result..'</span>'
  return result
end
 
function p.MasteryReq(frame)
  local args = frame.args ~= nil and frame.args or frame
  local itemName = args[1]
  local level = tonumber(args[2])
  local showText = args.showText ~= nil and args.showText ~= '' and args.showText ~= 'false'
  return p._MasteryReq(itemName, level, showText)
end
end


function p.GP(amt, maxamt)
function p.GP(amt, maxamt)
   local result = '[[File:Coins.svg|25px|link=Coins]]'
   local result = '[[File:Coins.svg|25px|link=Coins]]'
  result = result..'&nbsp;'..Shared.formatnum(amt)
  if maxamt ~= nil then result = result..' - '..Shared.formatnum(maxamt) end
  result = '<span style="display:inline-block">'..result..'</span>'
  return result
end
function p.SC(amt, maxamt)
  local result = '[[File:Slayer Coins.svg|25px|link=Currency#Slayer Coins]]'
   result = result..'&nbsp;'..Shared.formatnum(amt)
   result = result..'&nbsp;'..Shared.formatnum(amt)
   if maxamt ~= nil then result = result..' - '..Shared.formatnum(maxamt) end
   if maxamt ~= nil then result = result..' - '..Shared.formatnum(maxamt) end