Module:Sandbox/Samlovesmath

From The Deadlock Wiki
Revision as of 23:06, 2 April 2026 by Samlovesmath (talk | contribs) (added themes for Calico, Graves, Grey Talon, Venator, Billy, Shiv, Pocket ... finished adding "Information" to all characters)
Jump to navigation Jump to search

Documentation for this module may be created at Module:Sandbox/Samlovesmath/doc

local p = {}
local heroData = mw.loadJsonData("Data:HeroData.json")
local langEn = mw.loadJsonData("Data:Lang_en.json")

--   THEME VARS:
--		color1			  <<  custom color1
--		color1_grad		  <<  custom color1 (gradient end)
--		color2			  <<  custom color2
--		text_title		  <<  title color for text
--		stats_text		  <<  text color for stat/info dropdowns
--		stats_back		  <<  background color for stat/info dropdowns
--
--		background_image  <<  background image file (seen in hero roster select)
--		background_height <<  background image height
--		background_margin <<  background image margin (for non-whole background) (ex. silver, graves, rem)
--
--		logo_height		  <<  height of name (name logos can be very different in sizing because of text "bleeding")
--		logo_bleed		  <<  how much the name logo "bleeds" over the supposed padding
--
--	INFO VARS:
--		voice_actor
--		release_date
--		codenames

local infoboxVars = {
	-- Default
	["default"] = {
		["background_image"] = "Default_select_background.png",
		["background_height"] = "700px",
		["background_margin"] = "0px",
		["logo_height"] = "x35px",
		["logo_bleed"] = "0px",
		["logo_bottom"] = "0px",
		
		["color1"] = "098959",
		["color1_grad"] = "0F6D4C",
		["color2"] = "6DD48C",
		["text_title"] = "DCFFE7",
		["stats_text"] = "bbffbf",
		["stats_back"] = "12301aA3"
	},

	-- Lady Geist
	["hero_ghost"] = {
		["background_image"] = "Geist_select_background.png",
		["background-margin"] = "-118px",
		["logo_height"] = "x32px",
		
		["color1"] = "098959",
		["color1_grad"] = "0F6D4C",
		["color2"] = "6DD48C",
		["text_title"] = "DCFFE7",
		["stats_text"] = "bbffbf",
		["stats_back"] = "12301aA3",
		["voice_actor"] = "Abigail Marlowe",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Geist; Ghost; Spectre"
	},	

	-- Holliday
	["hero_astro"] = {
		["background_image"] = "Holliday_select_background.png",
		["background_margin"] = "-123px";
		["logo_height"] = "x42px",
		["logo_bottom"] = "2px",
		
		["color1"] = "934D14",
		["color1_grad"] = "753D22",
		["color2"] = "92CEB5",
		["text_title"] = "FFDBBF",
		["stats_text"] = "CAF7EF",
		["stats_back"] = "382415A3",
		["voice_actor"] = "Melanie Minichino",
		["release_date"] = "January 17, 2025",
		["codenames"] = "Astro"
	},

	-- Abrams
	["hero_atlas"] = {
		["background_image"] = "Abrams_select_background.png",
		["background_margin"] = "-300px",
		["logo_height"] = "x42px",
		["logo_bottom"] = "2px",
		
		["color1"] = "264B66",
		["color1_grad"] = "264B66",
		["color2"] = "AB933C",
		["text_title"] = "FFEEB0",
		["stats_text"] = "BAE2FF",
		["stats_back"] = "11222DA3",
		["voice_actor"] = "Samoa Joe",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Atlas; Bull"
	},

	-- Bebop
	["hero_bebop"] = {
		["background_image"] = "Bebop_select_background.png",
		["background_margin"] = "-283px",
		["logo_height"] = "x42px",
		["logo_bottom"] = "2px",
		
		["color1"] = "683931",
		["color1_grad"] = "5E3C35",
		["color2"] = "D88C70",
		["text_title"] = "FFD1D1",
		["stats_text"] = "FFC9DB",
		["stats_back"] = "2D1611A3",
		["voice_actor"] = "JB Blanc",
		["release_date"] = "April 24, 2024"
	},

	-- Paige
	["hero_bookworm"] = {
		["background_image"] = "Paige_select_background.png",
		["background_margin"] = "-152px",
		["logo_height"] = "x49px",
		["logo_bleed"] = "-4px 0px -4px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "1C6B4E",
		["color1_grad"] = "1A6348",
		["color2"] = "67EA8E",
		["text_title"] = "C1FFED",
		["stats_text"] = "BAFFCD",
		["stats_back"] = "0F2822A3",
		["voice_actor"] = "Jacqueline Emerson",
		["release_date"] = "August 25, 2025",
		["codenames"] = "Bookworm; Patience"
	},

	-- Paradox
	["hero_chrono"] = {
		["background_image"] = "Paradox_select_background.png",
		["background_margin"] = "-218px",
		["logo_height"] = "x28px",
		["logo_bleed"] = "0px 10px 0px 0px",
		
		["color1"] = "983952",
		["color1_grad"] = "7F2B41",
		["color2"] = "52B0D8",
		["text_title"] = "C9EEFF",
		["stats_text"] = "FFD6E8",
		["stats_back"] = "2D1127A3",
		["voice_actor"] = "Elle Newlands",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Chrono"
	},

	-- The Doorman
	["hero_doorman"] = {
		["background_image"] = "Doorman_select_background.png",
		["background_height"] = "550px",
		["background_margin"] = "-216px",
		["logo_height"] = "x42px",
		["logo_bleed"] = "0px 10px 0px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "703d06",
		["color1_grad"] = "83490A",
		["color2"] = "C6A355",
		["text_title"] = "FFE9BF",
		["stats_text"] = "FFE6BF",
		["stats_back"] = "1E1609A3",
		["release_date"] = "August 22, 2025"
	},

	-- Drifter
	["hero_drifter"] = {
		["background_image"] = "Drifter_select_background.png",
		["background_margin"] = "-216px",
		["logo_height"] = "x42px",
		["logo_bleed"] = "0px 10px 0px 0px",
		
		["color1"] = "510D0D",
		["color1_grad"] = "3D0F0F",
		["color2"] = "A05653",
		["text_title"] = "FFB5B5",
		["stats_text"] = "E2CCCC",
		["stats_back"] = "161615A3",
		["voice_actor"] = "Matt Mercer",
		["release_date"] = "August 27, 2025"
	},

	-- Dynamo
	["hero_dynamo"] = {
		["background_image"] = "Dynamo_select_background.png",
		["background_margin"] = "-250px",
		["logo_height"] = "x42px",
		["logo_bleed"] = "0px 10px 0px 0px",
		
		["color1"] = "18637F",
		["color1_grad"] = "1B4656",
		["color2"] = "CC9B28",
		["text_title"] = "FFE89E",
		["stats_text"] = "FFF3D1",
		["stats_back"] = "11262DA3",
		["voice_actor"] = "John Patrick Lowrie",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Prof_dynamo; Prof; Sumo; Jeong"
	},

	-- Rem
	["hero_familiar"] = {
		["background_image"] = "Rem_select_background.png",
		["background_height"] = "600px",
		["background_margin"] = "-207px",
		["logo_height"] = "x47px",
		["logo_bleed"] = "-1px 0px -1px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "25497A",
		["color1_grad"] = "1F3C66",
		["color2"] = "5FB0B7",
		["text_title"] = "D8FFFB",
		["stats_text"] = "C7E2E5",
		["stats_back"] = "111C2DA3",
		["release_date"] = "January 26, 2026",
		["codenames"] = "Familiar"
	},

	-- Apollo
	["hero_fencer"] = {
		["background_image"] = "Apollo_select_background.png",
		["background_margin"] = "-118px",
		["logo_height"] = "x49px",
		["logo_bleed"] = "-2px 6px -2px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "CF1D1D",
		["color1_grad"] = "9E1717",
		["color2"] = "D28567",
		["text_title"] = "FFE5D6",
		["stats_text"] = "FFD3CC",
		["stats_back"] = "301412A3",
		["voice_actor"] = "Chester Rushing",
		["release_date"] = "February 12, 2026",
		["codenames"] = "Fencer"
	},

	-- McGinnis
	["hero_forge"] = {
		["background_image"] = "Mcginnis_select_background.png",
		["background_margin"] = "-116px",
		["logo_height"] = "x42px",
		
		["color1"] = "315182",
		["color1_grad"] = "315182",
		["color2"] = "C8AA32",
		["text_title"] = "FFF0AD",
		["stats_text"] = "D6E6FF",
		["stats_back"] = "111C2DA3",
		["voice_actor"] = "Bennett Abara",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Forge; Engineer"
	},

	-- Victor
	["hero_frank"] = {
		["background_image"] = "Victor_select_background.png",
		["background_margin"] = "-192px",
		["logo_height"] = "x38px",
		
		["color1"] = "3D5443",
		["color1_grad"] = "354538",
		["color2"] = "78A584",
		["text_title"] = "C8FFC1",
		["stats_text"] = "D6FFE0",
		["stats_back"] = "161E18A3",
		["voice_actor"] = "Jason Spisak",
		["release_date"] = "August 29, 2025",
		["codenames"] = "Frank"
	},

	-- Seven
	["hero_gigawatt"] = {
		["background_image"] = "Seven_select_background.png",
		["background_margin"] = "-189px",
		["logo_height"] = "x38px",
		
		["color1"] = "8C5A0B",
		["color1_grad"] = "753E0F",
		["color2"] = "E5A542",
		["text_title"] = "F7EAC3",
		["stats_text"] = "F7E9C0",
		["stats_back"] = "26190DA3",
		["voice_actor"] = "Oliver Vaquer",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Gigawatt"
	},

	-- Haze
	["hero_haze"] = {
		["background_image"] = "Haze_select_background.png",
		["background_margin"] = "-141px",
		["logo_height"] = "x24px",
		["logo_bleed"] = "-2px 8px 0px 0px",
		
		["color1"] = "562913",
		["color1_grad"] = "683C1E",
		["color2"] = "F3A53C",
		["text_title"] = "D8FFF4",
		["stats_text"] = "FFE4BF",
		["stats_back"] = "2D1B11A3",
		["release_date"] = "April 24, 2024"
	},

	-- Vindicta
	["hero_hornet"] = {
		["background_image"] = "Vindicta_select_background.png",
		["background_margin"] = "-199px",
		["logo_height"] = "x34px",
		["logo_bleed"] = "0px 6px 0px 0px",
		
		["color1"] = "54617F",
		["color1_grad"] = "4D5A76",
		["color2"] = "E57E9D",
		["text_title"] = "C6E6FF",
		["stats_text"] = "CEE1ED",
		["stats_back"] = "111A2DA3",
		["voice_actor"] = "Eden Riegel",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Hornet"
	},

	-- Infernus
	["hero_inferno"] = {
		["background_image"] = "Infernus_select_background.png",
		["background_margin"] = "-254px",
		["logo_height"] = "x36px",
		["logo_bleed"] = "0px 2px 0px 0px",
		
		["color1"] = "C93C26",
		["color1_grad"] = "9E3B2B",
		["color2"] = "E68849",
		["text_title"] = "FFE6C9",
		["stats_text"] = "FFDDD3",
		["stats_back"] = "2D1611A3",
		["voice_actor"] = "Phil Morris",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Inferno"
	},

	-- Kelvin
	["hero_kelvin"] = {
		["background_image"] = "Kelvin_select_background.png",
		["background_margin"] = "-283px",
		["logo_height"] = "x40px",
		["logo_bottom"] = "2px",
		
		["color1"] = "3E6276",
		["color1_grad"] = "335368",
		["color2"] = "C1BB9B",
		["text_title"] = "FFF8D8",
		["stats_text"] = "DDF4FF",
		["stats_back"] = "11242DA3",
		["release_date"] = "April 24, 2024"
	},

	-- Mo & Krill
	["hero_krill"] = {
		["background_image"] = "Krill_select_background.png",
		["background_margin"] = "-283px",
		["logo_height"] = "x40px",
		["logo_bottom"] = "2px",
		
		["color1"] = "4F4E43",
		["color1_grad"] = "404039",
		["color2"] = "E0A34E",
		["text_title"] = "FFF3D6",
		["stats_text"] = "E5DDCE",
		["stats_back"] = "1E1E18A3",
		["voice_actor"] = "Ray Chase",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Krill; Digger; Grappler"
	},

	-- Lash
	["hero_lash"] = {
		["background_image"] = "Lash_select_background.png",
		["background_margin"] = "-270x",
		["logo_height"] = "x42px",
		["logo_bleed"] = "-2px 0px 0px 0px",
		
		["color1"] = "424B56",
		["color1_grad"] = "3C434E",
		["color2"] = "6E99AD",
		["text_title"] = "D7E2EF",
		["stats_text"] = "D8E9FF",
		["stats_back"] = "1B2026A3",
		["voice_actor"] = "Andrew Bowen",
		["release_date"] = "April 24, 2024"
	},

	-- Sinclair
	["hero_magician"] = {
		["background_image"] = "Sinclair_select_background.png",
		["background_margin"] = "-37px",
		["logo_height"] = "x42px",
		["logo_bleed"] = "-2px 0px 0px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "343B51",
		["color1_grad"] = "303647",
		["color2"] = "BED9E0",
		["text_title"] = "C1D8FF",
		["stats_text"] = "D5D7E0",
		["stats_back"] = "131723A3",
		["pronouns"] = "They/Them",
		["voice_actor"] = "Harron Atkins (Henry);\nAndia Winslow (Savannah)",
		["release_date"] = "January 17, 2025",
		["codenames"] = "Magician"
	},

	-- Mirage
	["hero_mirage"] = {
		["background_image"] = "Mirage_select_background.png",
		["background_margin"] = "-76px",
		["logo_height"] = "x49px",
		["logo_bleed"] = "-2px 0px -2px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "552E68",
		["color1_grad"] = "452953",
		["color2"] = "CEA05A",
		["text_title"] = "FFE1BC",
		["stats_text"] = "EFD8FF",
		["stats_back"] = "201228A3",
		["voice_actor"] = "Fareed Ward",
		["release_date"] = "September 26, 2024",
		["codenames"] = "Sandeep"
	},

	-- Calico
	["hero_nano"] = {
		["background_image"] = "Calico_select_background.png",
		["background_margin"] = "-155px",
		["logo_height"] = "x42px",
		["logo_bottom"] = "2px",
		
		["color1"] = "572798",
		["color1_grad"] = "472579",
		["color2"] = "BF86CC",
		["text_title"] = "FFEEB2",
		["stats_text"] = "E8D8FF",
		["stats_back"] = "1D122DA3",
		["voice_actor"] = "Toks Olagundoye",
		["release_date"] = "January 17, 2025",
		["codenames"] = "Nano"
	},

	-- Graves
	["hero_necro"] = {
		["background_image"] = "Graves_select_background.png",
		["background_height"] = "600px",
		["background_margin"] = "-385px",
		["logo_height"] = "x36px",
		["logo_bleed"] = "-2px 2px 0px 0px",
		
		["color1"] = "616E15",
		["color1_grad"] = "4D5512",
		["color2"] = "BFCC63",
		["text_title"] = "F5FFAA",
		["stats_text"] = "F8FFCC",
		["stats_back"] = "232610A3",
		["release_date"] = "January 29, 2026",
		["codenames"] = "Necro"
	},

	-- Grey Talon
	["hero_orion"] = {
		["background_image"] = "Greytalon_select_background.png",
		["background_margin"] = "-221px",
		["logo_height"] = "x32px",
		["logo_bleed"] = "0px 8px -2px 0px",
		
		["color1"] = "326850",
		["color1_grad"] = "315746",
		["color2"] = "6DBA90",
		["text_title"] = "D8FFD8",
		["stats_text"] = "CDF2DA",
		["stats_back"] = "0F2323A3",
		["voice_actor"] = "Robbie Daymond",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Archer; Orion"
	},

	-- Venator
	["hero_priest"] = {
		["background_image"] = "Venator_select_background.png",
		["background_margin"] = "-198px",
		["logo_height"] = "x40px",
		["logo_bleed"] = "0px 6px 0px 0px",
		
		["color1"] = "7F386D",
		["color1_grad"] = "562B50",
		["color2"] = "9F69AD",
		["text_title"] = "F9D1FF",
		["stats_text"] = "FCE5FF",
		["stats_back"] = "2D1227A3",
		["release_date"] = "February 5, 2026",
		["codenames"] = "Priest"
	},

	-- Billy
	["hero_punkgoat"] = {
		["background_image"] = "Billy_select_background.png",
		["background_margin"] = "-183px",
		["logo_height"] = "x46px",
		["logo_bottom"] = "2px",
		
		["color1"] = "494230",
		["color1_grad"] = "494230",
		["color2"] = "D3B023",
		["text_title"] = "EDC2DB",
		["stats_text"] = "FFF4CC",
		["stats_back"] = "1E1D15A3",
		["voice_actor"] = "Ari Kappatos",
		["release_date"] = "August 20, 2025",
		["codenames"] = "Punkgoat"
	},

	-- Shiv
	["hero_shiv"] = {
		["background_image"] = "Shiv_select_background.png",
		["background_margin"] = "-202px",
		["logo_height"] = "x45px",
		["logo_margin"] = "-2px 0px 0px 0px",
		["logo_bottom"] = "2px",
		
		["color1"] = "A02630",
		["color1_grad"] = "912B34",
		["color2"] = "CC6884",
		["text_title"] = "FFC6D3",
		["stats_text"] = "FFD1D6",
		["stats_back"] = "2D1111A3",
		
		["voice_actor"] = "Greg Chun",
		["release_date"] = "August 15, 2024"
	},

	-- Pocket
	["hero_synth"] = {
		["background_image"] = "Pocket_select_background.png",
		["background_margin"] = "-66px",
		["logo_height"] = "x45px",
		["logo_bottom"] = "2px",
		
		["color1"] = "6B6B14",
		["color1_grad"] = "535416",
		["color2"] = "D1D84B",
		["text_title"] = "FCFFAD",
		["stats_text"] = "D8D8A9",
		["stats_back"] = "21210EA3",
		
		["pronouns"] = "They/Them",
		["voice_actor"] = "Greg Chun",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Synth; Fairfax"
	},

	-- Ivy
	["hero_tengu"] = {
		["background_image"] = "Ivy_select_background.png",
		
		["voice_actor"] = "Jeannie Tirado",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Tengu"
	},

	-- Celeste
	["hero_unicorn"] = {
		["background_image"] = "Celeste_select_background.png",
		
		["release_date"] = "February 9, 2026",
		["codenames"] = "Unicorn, Pepper"
	},

	-- Mina
	["hero_vampirebat"] = {
		["background_image"] = "Mina_select_background.png",
		
		["voice_actor"] = "Victoria Grace",
		["release_date"] = "August 18, 2025",
		["codenames"] = "Vampirebat"
	},

	-- Vyper
	["hero_viper"] = {
		["background_image"] = "Vyper_select_background.png",
		
		["voice_actor"] = "Stephanie Kerbis",
		["release_date"] = "January 17, 2025",
		["codenames"] = "Viper"
	},

	-- Viscous
	["hero_viscous"] = {
		["background_image"] = "Viscous_select_background.png",
		
		["voice_actor"] = "Yuri Lowenthal",
		["release_date"] = "August 1, 2024"
	},

	-- Warden
	["hero_warden"] = {
		["background_image"] = "Warden_select_background.png",
		
		["voice_actor"] = "Rick D. Wasserman",
		["release_date"] = "April 24, 2024",
		["codenames"] = "Murphy"
	},

	-- Silver
	["hero_werewolf"] = {
		["background_image"] = "Silver_select_background.png",
		["logo_height"] = "x60px",
		["logo_bleed"] = "-10px 0px -20px 0px",
		
		["voice_actor"] = "Erica Lindbeck",
		["release_date"] = "February 2, 2026",
		["codenames"] = "Werewolf"
	},

	-- Silver (Transformed)
	["hero_werewolf_transformed"] = {
		["background_image"] = "Silver_select_background.png",
		
		["voice_actor"] = "Erica Lindbeck",
		["release_date"] = "February 2, 2026",
		["codenames"] = "Werewolf"
	},

	-- Wraith
	["hero_wraith"] = {
		["background_image"] = "Wraith_select_background.png",
		
		["voice_actor"] = "Danielle Nicolet",
		["release_date"] = "April 24, 2024"
	},

	-- Yamato
	["hero_yamato"] = {
		["background_image"] = "Yamato_select_background.png",
		
		["release_date"] = "April 24, 2024"
	}
}

-- get list of heroes (debug)
function create_hero_list()
	local heroList = {}
	for i,v in pairs(heroData) do
		table.insert(heroList, i)
	end
	table.sort(heroList)

	return heroList
end
	
function p.get_value(frame)
	local heroName = frame.args[1]
	local themeVar = frame.args[2]
	if infoboxVars[heroName] ~= nil and infoboxVars[heroName][themeVar] ~= nil then
		return infoboxVars[heroName][themeVar]
	elseif infoboxVars["default"][themeVar] ~= nil then
		return infoboxVars["default"][themeVar]
	end
	return nil
end

return p