Dead by Daylight Wiki

Current Tome: Tome VIII - Deliverance
Featuring Jake Park SurvivorJake.png and The Clown IconHelpLoading clown.png
TomeVIII Deliverance Banner.jpg

READ MORE

Dead by Daylight Wiki
Jouki (talk | contribs)
m (Protected "Module:Survivors" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
Jouki (talk | contribs)
m
Line 76: Line 76:
 
 
 
fileName = getFileNameFromTableById(id)
 
fileName = getFileNameFromTableById(id)
if not isValidFileName(fileName) then --looking for new convention fileName
+
if not utils.isValidFileName(fileName) then --looking for new convention fileName
 
fileName = resolveNewInitialsByIndex(i) .. fileConst
 
fileName = resolveNewInitialsByIndex(i) .. fileConst
 
end
 
end
if not isValidFileName(fileName) then --looking for old convention fileName
+
if not utils.isValidFileName(fileName) then --looking for old convention fileName
 
mw.log("File not found. Looking further...")
 
mw.log("File not found. Looking further...")
 
fileName = getSurvivorsInitialsByIndex(i) .. fileConst
 
fileName = getSurvivorsInitialsByIndex(i) .. fileConst
 
end
 
end
if not isValidFileName(fileName) then --File not Found
+
if not utils.isValidFileName(fileName) then --File not Found
 
fileName = "UnknownSurvivor" .. fileConst
 
fileName = "UnknownSurvivor" .. fileConst
 
end
 
end
Line 90: Line 90:
 
mw.log(fileName)
 
mw.log(fileName)
 
return fileName
 
return fileName
end
 
 
function isValidFileName(name)
 
return not (name == "" or not mw.title.new("File:" .. name .. ".png").exists)
 
 
end
 
end
   

Revision as of 16:13, 10 November 2020


local p = {}
local data = require("Module:Datatable")
local mathOps = require("Module:MathOps")
local utils = require("Module:Utils")
local frame = mw.getCurrentFrame()
local bar = "|" -- code for |
local nl = "\n"

function p.getCountOfSurvivors()
	return utils.getCount("survivor")
end

function getSurvivorIndexById(id)
	for i, s in ipairs(survivors) do
		if s.id == id then return i end
	end
	return 0
end

function getSurvivorIndexByName(name) --not used
	local i = 1
	while survivors[i] do
		if survivors[i].name == name then
			return i
		end
		i = i + 1
	end
	return 0
end

function p.resolveSurvivorsTable()
	local result = ""
	local name
	local fileName

	result = result .. "<div style=\"color: #fff;\">"
	for i, survivor in ipairs(survivors) do
		
		fileName = resolveSurvivorsPortraitFileNameById(survivor.id)
		
		result = result .. "<div style=\"display: inline-block; text-align:center; margin: 10px\">[[" .. survivor.name .. "]]"
		result = result .. "[[File:" .. fileName .. ".png|center|frameless|link=" .. survivor.name .. "]]</div>"

	end
	result = result .. "</div>"

	return result
end

function p.resolveSurvivorsTableMainPage()
	local result = ""
	local name
	local fileName

	result = result .. "<div class=\"fpbox\" id=\"fpsurvivors\" style=\"text-align: center;\">"
	result = result .. "<div class=\"heading\">The [[Survivors]] [[File:IconHelpLoading survivor.png|32px]]</div>"
	result = result .. "<div class=\"fplinks\">"
	for i, survivor in ipairs(survivors) do
		name = survivor.shortName or survivor.name
		fileName = resolveSurvivorsPortraitFileNameById(survivor.id)
		
		result = result .. "<div class=\"fplink plainlinks image\"><div class=\"box\"><div class=\"row\"><div class=\"cell\">"
		result = result .. "<div class=\"image\">[[File:" .. fileName .. ".png|link=" .. name .. "]]</div>"
		result = result .. "<div class=\"link\">[[" .. name .. "]]</div></div></div></div></div>"
	end
	result = result .. "</div>"
	result = result .. "</div>"

	return result
end
	
function resolveSurvivorsPortraitFileNameById(id)
	i = getSurvivorIndexById(id)
	local fileConst = "_charPreview_portrait"
	local fileName
	
	fileName = getFileNameFromTableById(id)
	if not utils.isValidFileName(fileName) then --looking for new convention fileName
		fileName = resolveNewInitialsByIndex(i) .. fileConst
	end
	if not utils.isValidFileName(fileName) then --looking for old convention fileName
		mw.log("File not found. Looking further...")
		fileName = getSurvivorsInitialsByIndex(i) .. fileConst
	end
	if not utils.isValidFileName(fileName) then --File not Found
		fileName = "UnknownSurvivor" .. fileConst
	end
	
	fileName = fileName
	mw.log(fileName)
	return fileName
end

function getFileNameFromTableById(id)
	mw.log(id)
	for j, sImage in ipairs(survivorImages) do
		if sImage.id == id then
			return sImage.preview
		end
	end
	return ""
end

function resolveNewInitialsByIndex(i)
	if survivors[i] == nil then
		return ""	
	end
	local s = survivors
	local initials = getSurvivorsInitialsByIndex(i)
	local dlcCodeName =""
	if s[i].dlc ~= nil and dlcs[s[i].dlc] ~= nil then
		dlcCodeName = getDlcById(s[i].dlc).codeName
	end
	
	local dlcInitial = dlcCodeName:match("^(%S).*$") or "A" --A is for characters from original game as they don't have any DLC code Name nor DLC id

	mw.log(dlcInitial .. "S " .. initials)
	return dlcInitial .. "S " .. initials
end

function getSurvivorsInitialsByIndex(i)
	if survivors[i] == nil then
		return ""	
	end
	
	local firstLetter, lastLetter
	
	firstLetter, lastLetter = survivors[i].name:match("^(%S).+ (%S).-$")
	
	return firstLetter .. lastLetter
end

function getDlcById(id)
	for _, dlc in ipairs(dlcs) do
		if dlc.id == id then return dlc end
	end
end

return p