WARFRAME Wiki
WARFRAME Wiki
WARFRAME Wiki
Official wiki
9,107
pages


Polarity maps WARFRAME's polarity names to their appropriate image on the wiki.

This module is meant to be used in other modules.

On this Wiki, Polarity is used in:

Usage

Module

local p = {}
local Polarity = require('Module:Polarity')

local function func(polName)
    return Polarity._polarity(polName)
end

Documentation

Package items

polarity._polarity(pol, lightIconOnly) (function)
Returns the image file wikitext link of the corresponding polarity.
Parameters:
  • pol Polarity name, could be shorthand/nickname or official name (string)
  • lightIconOnly If true, black polarity icon will always be inverted regardless of theme, otherwise icon will only be inverted on dark theme (boolean)
Returns: Wikitext link of image of polarity (string)
polarity._pols(pols, lightIconOnly) (function)
Returns multiple image file wikitext links of the corresponding polarities.
Parameters:
  • pols Array of polarity names (table)
  • lightIconOnly If true, black polarity icon will always be inverted regardless of theme, otherwise icon will only be inverted on dark theme (boolean)
Returns: Wikitext links of images of polarities (string)
polarity.getPolarityImage(frame) (function)
Returns the image file wikitext link of the corresponding polarity.
Parameter: frame Frame object (table)
Returns: Wikitext link of image of polarity (string)

Created with Docbunto

See Also

Code


---	'''Polarity''' maps [[WARFRAME]]'s [[polarity]] names to their appropriate image on the wiki.<br />
--	
--	This module is meant to be used in other modules.<br />
--	
--	On this Wiki, Polarity is used in:
--	* [[Module:Tooltips]]
--	* [[Module:Weapons]]
--	* [[Template:Pol]]
--	* [[Template:TableWarframePol]]
--	
--	@module		polarity
--	@alias		p
--	@author		[[User:Gigamicro|Gigamicro]]
--	@attribution		[[User:Cephalon Scientia|User:Cephalon Scientia]]
--	@image		Madurai Pol.svg
--	@release	stable
--	<nowiki>

local p = {}

-- Mapping official polarity names to image files
local IMAGE_MAP = {
	-- Black polarity icons
	Zenurik = 'Zenurik_Pol.svg',
	Naramon = 'Naramon_Pol.svg',
	Vazarin = 'Vazarin_Pol.svg',
	Penjaga = 'Penjaga_Pol.svg',
	Exilus = 'Exilus_Pol.svg',
	Madurai = 'Madurai_Pol.svg',
	Koneksi = 'Koneksi_Pol.svg',
	Umbra = 'Umbra_Pol.svg',
	Unairu = 'Unairu_Pol.svg',
	Any = 'Any_Pol.svg',
	Universal = 'Spacer.png',
}

-- Mapping nicknames/internal names to official names
local POLARITY_NICKNAME_MAP = {
	Ability = 'Zenurik', AP_POWER = 'Zenurik',
	Bar = 'Naramon', AP_TACTIC = 'Naramon',
	D = 'Vazarin', AP_DEFENSE = 'Vazarin',
	Y = 'Penjaga', Sila = 'Penjaga', Sentinel = 'Penjaga', Precept = 'Penjaga', AP_PRECEPT = 'Penjaga',
	V = 'Madurai', AP_ATTACK = 'Madurai',
	O = 'Koneksi', Core = 'Koneksi', Fusion = 'Koneksi', Pengetikan = 'Koneksi', AP_FUSION = 'Koneksi',
	U = 'Umbra', Q = 'Umbra', AP_UMBRA = 'Umbra',
	Ward = 'Unairu', R = 'Unairu', AP_WARD = 'Unairu',
	Aura = 'Any', AP_ANY = 'Any',
	None = 'Universal', [''] = 'Universal', AP_UNIVERSAL = 'Universal'
}

---	Returns the image file wikitext link of the corresponding polarity.
--	@function		p._polarity
--	@param			{string} pol Polarity name, could be shorthand/nickname or official name
--	@param			{boolean} lightIconOnly If true, black polarity icon will always be inverted regardless of theme, otherwise
--							  icon will only be inverted on dark theme
--	@return			{string} Wikitext link of image of polarity
function p._polarity(pol, lightIconOnly)
	return string.format('[[File:%s|20px|class=icon '..(lightIconOnly and 'invert' or 'dark-invert')..']]', 
		IMAGE_MAP[POLARITY_NICKNAME_MAP[pol] or pol] or error('p._polarity(pol): Could not find polarity: '..mw.dumpObject(pol)))
end

---	Returns multiple image file wikitext links of the corresponding polarities.
--	@function		p._pols
--	@param			{table} pols Array of polarity names
--	@param			{boolean} lightIconOnly If true, black polarity icon will always be inverted regardless of theme, otherwise
--							  icon will only be inverted on dark theme
--	@return			{string} Wikitext links of images of polarities
function p._pols(pols, lightIconOnly)
	if not (pols and pols[1]) then return 'None' end
	local polarities = {}
	for i, v in ipairs(pols or {'None'}) do
		polarities[i] = p._polarity(v, lightIconOnly)
	end
	return table.concat(polarities)
end

---	Returns the image file wikitext link of the corresponding polarity.
--	@function		p.getPolarityImage
--	@param			{table} frame Frame object
--	@return			{string} Wikitext link of image of polarity
function p.getPolarityImage(frame)
	return p._polarity(frame.args[1] or frame.args or frame)
end

return p