22,848
edits
mNo edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
--Fix Mega-CD SMT1 | --Fix Mega-CD SMT1 | ||
--Fix Soul Hackers | --Fix Soul Hackers | ||
--Add Persona 2 | --Add Persona 2: Eternal Punishment (formulas unknown) | ||
--Add Shin Megami Tensei: Nine (formulas unknown) | |||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
Line 12: | Line 13: | ||
end | end | ||
local function | local function outputCells6(stat1,stat2,stat3,stat4,stat5,stat6) | ||
return string.format("| %s\n| %s\n| %s\n| %s\n| %s\n| %s",stat1,stat2,stat3,stat4,stat5,stat6) | return string.format("| %s\n| %s\n| %s\n| %s\n| %s\n| %s",stat1,stat2,stat3,stat4,stat5,stat6) | ||
end | |||
local function outputCells4(stat1,stat2,stat3,stat4) | |||
return string.format("| %s\n| %s\n| %s\n| %s",stat1,stat2,stat3,stat4) | |||
end | |||
local function outputCells7(stat1,stat2,stat3,stat4,stat5,stat6,stat7) | |||
return string.format("| %s\n| %s\n| %s\n| %s\n| %s\n| %s\n| %s",stat1,stat2,stat3,stat4,stat5,stat6,stat7) | |||
end | end | ||
Line 45: | Line 54: | ||
end | end | ||
end | end | ||
return | return outputCells6(statTable["atk"],statTable["acc"],statTable["def"],statTable["eva"],statTable["matk"],statTable["mefc"]) | ||
end | end | ||
Line 82: | Line 91: | ||
end | end | ||
end | end | ||
return | return outputCells6(statTable["atk"],statTable["acc"],statTable["def"],statTable["eva"],statTable["matk"],statTable["mefc"]) | ||
end | end | ||
Line 102: | Line 111: | ||
mefc = intelligence + math.floor(magic / 4) | mefc = intelligence + math.floor(magic / 4) | ||
} | } | ||
return | return outputCells6(statTable["atk"],statTable["acc"],statTable["def"],statTable["eva"],statTable["matk"],statTable["mefc"]) | ||
end | end | ||
Line 147: | Line 156: | ||
local outputMdef = bothPlatsValue("mdef") | local outputMdef = bothPlatsValue("mdef") | ||
return | return outputCells6(outputAtk,outputAcc,outputDef,outputEva,outputMatk,outputMdef) | ||
end | end | ||
Line 173: | Line 182: | ||
end | end | ||
end | end | ||
return | return outputCells6(statTable["patk"],statTable["phit"],statTable["matk"],statTable["mhit"],statTable["def"],statTable["eva"]) | ||
end | |||
function p.p2is(frame) | |||
local args = getArgs(frame) | |||
local level = args[1] --Level | |||
local strength = args[2] --Strength | |||
local vitality = args[3] --Vitality | |||
local dexterity = args[4] --Dexterity | |||
local agility = args[5] --Agility | |||
local luck = args[6] --Luck | |||
local platform = "" | |||
if args["platform"] then | |||
platform = string.lower(args["platform"]) --game platform | |||
end | |||
local statTable = { | |||
atk = (level + strength) * 2, | |||
def = (level + vitality) * 2, | |||
matk = dexterity * 2 + math.floor(level * 0.8), | |||
mdef = math.floor(dexterity * 2.5) + math.floor(vitality / 2), | |||
atkPSP = math.floor(0.7 * ((level + strength) * 2)), | |||
defPSP = math.floor(0.8 * ((level + vitality) * 2)), | |||
matkPSP = math.floor(0.7 * (dexterity * 2 + math.floor(level * 0.8))), | |||
mdefPSP = math.floor(0.8 * (math.floor(dexterity * 2.5) + math.floor(vitality / 2))) | |||
} | |||
local function bothPlatsValue(stat) | |||
if platform == "psp" then | |||
return statTable[stat.."PSP"] | |||
elseif platform == "ps" then | |||
return statTable[stat] | |||
else | |||
return frame:expandTemplate{ title = "tt", args = { statTable[stat], "PlayStation" } } .. "/" .. frame:expandTemplate{ title = "tt", args = { statTable[stat.."PSP"], "PlayStation Portable" } } | |||
end | |||
end | |||
local outputAtk = bothPlatsValue("atk") | |||
local outputDef = bothPlatsValue("def") | |||
local outputMatk = bothPlatsValue("matk") | |||
local outputMdef = bothPlatsValue("mdef") | |||
return outputCells4(outputAtk,outputDef,outputMatk,outputMdef) | |||
end | |||
function p.smtn(frame) | |||
local args = getArgs(frame) | |||
local level = args[1] --Level | |||
local strength = args[2] --Strength | |||
local intelligence = args[3] --Intelligence | |||
local magic = args[4] --Magic | |||
local vitality = args[5] --Vitality | |||
local agility = args[6] --Agility | |||
local luck = args[7] --Luck | |||
local statTable = { | |||
atk = (level + strength) * 2, --Good | |||
acc = math.floor(level * 1.5) + agility + math.floor((strength + luck) / 4), | |||
pdef = (level + vitality) * 2 + 16, | |||
peva = round(level * 1.5) + agility + round((intelligence + luck) / 4), | |||
matk = (level + intelligence) * 2, | |||
msuc = math.floor(intelligence / 4) + magic, | |||
mdef = intelligence + level + math.floor(magic / 2) + vitality | |||
} | |||
local stats = { "atk", "acc", "pdef", "peva", "matk", "msuc", "mdef" } | |||
for i, stat in ipairs(stats) do --Manual override | |||
if args[stat] then | |||
statTable[stat] = args[stat] | |||
end | |||
end | |||
return outputCells7(statTable["atk"],statTable["acc"],statTable["pdef"],statTable["peva"],statTable["matk"],statTable["msuc"],statTable["mdef"]) | |||
end | end | ||
return p | return p |