Module:Skills/sandbox

-- local getArgs = require('Module:Arguments').getArgs local getGames = require('Module:Gamedata') local p = {} local function makeInvokeFunction(funcName) -- makes a function that can be returned from #invoke, using -- Module:Arguments. return function (frame) local args = getArgs(frame, {parentOnly = true}) return p[funcName](args) end end local styles = { ['skill'] = '\n|-\n!style="background:#000;color:#fff"|', ['skillc'] = '\n!style="background:#000;color:#fff"|', ['skill3'] = '\n!style="background:#000;color:#fff;',	['skill3m'] = '\n!style="background:transparent"|',	['cost1'] = '\n|style="background:#222"|',	['cost2'] = '\n|style="background:#282828"|',	['effect1'] = '\n|style="background:#222;text-align:left;padding-left:5px"|',	['effect2'] = '\n|style="background:#282828;text-align:left;padding-left:5px"|',	['effect1p'] = '\n|colspan=2 style="background:#222;text-align:left;padding-left:5px"|',	['effect2p'] = '\n|colspan=2 style="background:#282828;text-align:left;padding-left:5px"|',	['order'] = '\n|style="background:#000;color:#fff;text-align:left;padding-left:5px"|',	['table2h'] = '\n{|width="100%" class="customtable ', ['table2'] = '\n{|width="100%" class="customtable"', ['table2b'] = '\n{|cellpadding=0 cellspacing=0 style="width:100%;background:transparent" ', ['statlow'] = '\n|style="background:#000;color:#fff"|', ['statlow2'] = '\n|style="background:#fff;color:#000"|', ['statlow3'] = '\n|style="background:#000;',	['quote'] = '\n|-\n|style="background:#000;color:#fff;text-align:center;border-radius:3.5px;', } local function frac(numerator,denominator) return ' ' .. numerator .. ' ／ ' .. denominator .. ' ' end local function cate(catename) if mw.title.getCurrentTitle:inNamespace('') then return '' else return '' end end local function noskill(skill,gamed) local result = '\n|-\n!colspan=5 style="background:#300;width:600px"|' if skill and gamed then result = result .. 'Invalid skill name of "' .. skill .. '". You may correct the skill name or modify module:Skills/' .. gamed .. ' if needed' else result = result .. 'No empty line or empty skill name is allowed. You should either remove the empty line or add some proper skill name' end return result .. '. ' .. cate('Articles with unrecognizable skill name for Module:Skills') .. '\n|-style="display:none"\n' end local race_names = { --Gods ['Deity'] = { 'Deity', 'Demon God', }, ['Megami'] = { 'Megami', 'Goddess', }, ['Amatsu'] = { 'Amatsu', 'Heavenly God', 'Tenjin', }, ['Enigma'] = { 'Enigma', }, ['Entity'] = { 'Entity', 'Geist', }, ['Godly'] = { 'Godly', 'Godly Spirit', }, ['Soshin'] = { 'Soshin', }, ['Chaos'] = { 'Chaos', linkdab=true, }, --Guardians ['Tenma'] = { 'Tenma', }, ['Fury'] = { 'Fury', 'Destroyer', 'Omega', }, ['Lady'] = { 'Lady', 'Earth Mother', }, ['Kunitsu'] = { 'Kunitsu', 'Nation Ruler', 'Chigi', }, ['Kishin'] = { 'Kishin', 'Guardian', }, ['Vile'] = { 'Vile', }, ['Reaper'] = { 'Reaper', linkdab=true, }, ['Shinshou'] = { 'Shinshou', }, ['Wargod'] = { 'Wargod', }, ['Zealot'] = { 'Zealot', linkdab=true, }, --Aerials ['Herald'] = { 'Herald', 'Seraph', 'Hallel', }, ['Divine'] = { 'Divine', }, ['Fallen'] = { 'Fallen', 'Fallen Angel', 'Futenshi', }, --Birds ['Avian'] = { 'Avian', }, ['Flight'] = { 'Flight', 'Wild Bird', }, ['Raptor'] = { 'Raptor', }, --Dragons ['Dragon'] = { 'Dragon', 'Dragon God', }, ['Snake'] = { 'Snake', 'Dragon King', }, ['Drake'] = { 'Drake', 'Evil Dragon', }, ['Hiryu'] = { 'Hiryu', }, --Beasts ['Avatar'] = { 'Avatar', 'Godly Beast', }, ['Holy'] = { 'Holy', 'Holy Beast', }, ['Beast'] = { 'Beast', }, ['Wilder'] = { 'Wilder', }, ['UMA'] = { 'UMA', }, ['Kaijuu'] = { 'Kaijuu', }, --Onis ['Touki'] = { 'Touki', }, ['Brute'] = { 'Brute', }, ['Jirae'] = { 'Jirae', 'Earth Spirit', }, ['Femme'] = { 'Femme', 'Joma', }, ['Jaki'] = { 'Jaki', 'Evil Demon', }, ['Akuma'] = { 'Akuma', }, ['Shinoma'] = { 'Shinoma', }, ['Henii'] = { 'Henii', catename=false, }, --Magicas ['Tyrant'] = { 'Tyrant', 'Demon Lord', }, ['Genma'] = { 'Genma', 'Demigod', }, ['Fairy'] = { 'Fairy', }, ['Yoma'] = { 'Yoma', }, ['Night'] = { 'Night', 'Nocturne', }, ['Shin Akuma'] = { 'Shin Akuma', }, --Vegetations ['Tree'] = { 'Tree', }, ['Wood'] = { 'Wood', }, ['Jusei'] = { 'Jusei', }, --Elementals ['Element'] = { 'Element', 'Prime', }, ['Mitama'] = { 'Mitama', }, --Evil Spirits ['Haunt'] = { 'Haunt', }, ['Spirit'] = { 'Spirit', 'Jarei', }, ['Undead'] = { 'Undead', }, --Humans ['Human'] = { 'Human', }, ['Gaean'] = { 'Gaean', 'Gaian', link='Ring of Gaea', catename='Ring of Gaea', }, ['Messian'] = { 'Messian', link='Order of Messiah', catename='Order of Messiah', }, ['Summoner'] = { 'Summoner', link='Devil Summoner (race)', }, ['Kyojin'] = { 'Kyojin', }, ['Shinja'] = { 'Ishtar Shinja', 'Bael Shinja', }, ['Meta'] = { 'Meta', }, ['Ranger'] = { 'Ranger', }, ['Hero'] = { 'Hero', }, ['General'] = { 'General', }, ['Therian'] = { 'Therian', }, ['Foreigner'] = { 'Foreigner', }, ['Fiend'] = { 'Fiend', }, --Fouls ['Foul'] = { 'Foul', }, ['Vermin'] = { 'Vermin', }, ['Demonoid'] = { 'Demonoid', }, ['Rumor'] = { 'Rumor', }, ['Karma'] = { 'Karma', link='Karma (race)', }, --Machine ['Machine'] = { 'Machine', 'Device' }, ['Virus'] = { 'Virus', exclusive='#Virus and Vaccine', }, ['Vaccine'] = { 'Vaccine', exclusive='#Virus and Vaccine', }, --Unclassified ['Zoma'] = { 'Zoma', }, ['Fake'] = { 'Fake', }, ['Famed'] = { 'Famed', }, ['Suiyou'] = { 'Suiyou', }, ['Nymph'] = { 'Nymph', }, ['Food'] = { 'Food', }, --Enemy-exclusive ['Horde'] = { 'Horde', catename=false, }, ['Yuiitsukami'] = { 'Yuiitsukami', exclusive='Yuiitsukami / Kami', catename=false, }, ['Kami'] = { 'Kami', exclusive='Yuiitsukami / Kami', catename=false, }, ['Himitsu'] = { 'Himitsu', exclusive='Himitsu', catename=false, }, ['Teacher'] = { 'Teacher', exclusive='Kyoushi and Kaizou Kyoushi', catename=false, }, ['Demon God Emperor'] = { 'Demon God Emperor', 'Majinou', 'Majin Ou', 'Majinō', 'Majinnou', 'Majinnō', exclusive='Majinou / Demon God Emperor', catename=false, }, ['Boutoko'] = { 'Boutoko', exclusive='Boutoko / Violent Guy', catename=false, }, ['Corpus'] = { 'Corpus', link='Manikin', catename=false, }, ['Zoa'] = { 'Zoa', exclusive='Bunrei / Zoa', }, ['Light'] = { 'Light', exclusive='Mujinkou / Light', catename=false, }, ['Devil'] = { 'Devil', exclusive='Daimaou / Devil', catename=false, }, ['Archaic'] = { 'Archaic', exclusive='Archaic', catename=false, }, ['King'] = { 'King', exclusive='King', catename=false, }, ['Koki'] = { 'Koki', exclusive='Koki', catename=false, }, ['Great'] = { 'Great', exclusive='Great', catename=false, }, ['Awake'] = { 'Awake', exclusive='Awake and Soil', catename=false, }, ['Soil'] = { 'Soil', exclusive='Awake and Soil', catename=false, }, ['Judge'] = { 'Judge', exclusive='Judge and Pillar', catename=false, }, ['Pillar'] = { 'Pillar', exclusive='Judge and Pillar', catename=false, }, ['Mother'] = { 'Mother', exclusive='Mother and Empty', catename=false, }, ['Empty'] = { 'Empty', exclusive='Mother and Empty', catename=false, }, ['Onmyo'] = { 'Onmyo', exclusive='Onmyo', catename=false, }, ['God'] = { 'God', exclusive='Bonten / God', catename=false, }, ['Bel'] = { 'Bel', link='King of Bel', catename=false, }, ['Star'] = { 'Star', link='Septentriones', }, ['Energy'] = { 'Energy', exclusive='Jiryuu / Energy', catename=false, }, ['King Abaddon'] = { 'King Abaddon', catename=false, }, ['Fukoshi'] = { 'Fukoshi', catename=false, }, ['Locust'] = { 'Locust', 'Soldier Bug', link='Soldier Bug', catename=false, }, ['Tokyogami'] = { 'Tokyogami', exclusive='Tokyogami', catename=false, }, ['Rebel God'] = { 'Rebel God', exclusive='Rebel God', catename=false, }, } local function getRace(race,game,abbr) local result if not race or race == '' or race == '-' or race == 'Unclassified' or race == 'None' or race == 'none' then result = '-' elseif game == 'ddsaga1' or game == 'ddsaga2' then if race == 'Deity' then result =  .. race ..  elseif race == 'Evil' or race == 'Icon' then result =  .. race ..  elseif race == 'Fiend' or race == 'Nether' then result =  .. race ..  elseif race == 'Aerial' then result =  .. race ..  elseif race == 'Aerial2' then result = 'Aerial' elseif race == 'Dragon' then result =  .. race ..  elseif race == 'Demon' or race == 'Brute' then result =  .. race ..  elseif race == 'Beast' then result =  .. race ..  elseif race == 'Device' then result =  .. race ..  elseif race == 'Light' then result =  .. race ..  else result = race end elseif game == 'raidou1' or game == 'raidou2' then if race == 'Element' then result = 'Element' .. cate('Element Race') elseif race == 'Spirit' then result = 'Spirit' .. cate('Mitama Race') elseif race == 'Destroyer' or race == 'King Abaddon' or race == 'Fukoshi' or race == 'Locust' or race == 'Tokyogami' or race == 'Rebel God' then result =  .. race .. elseif race == 'Fiend' then result = 'Fiend' .. cate('Fiend Race') elseif race == 'Pyro' or race == 'Frost' or race == 'Volt' or race == 'Wind' or race == 'Fury' or race == 'Pagan' or race == 'Skill' or race == 'Evil' then result =  .. race ..  .. cate(race .. ' Order') else result = race end elseif race == 'Therian' then if game == 'mt1' then result = 'Therian' .. cate('Yoma Race') else result = 'Therian' .. cate('Therian Race') end elseif race == 'Ghost' then if game == 'sh' or game == 'smtds' then result = 'Ghost' .. cate('Ghost Race') else result = 'Ghost' .. cate('Haunt Race') end elseif race == 'Cyber' then if game == 'smt4' then result = 'Cyber' .. cate('Machine Race') else result = 'Cyber' end elseif race == 'Star 2' then result = 'Star' .. cate('Star Race') end for k, v in pairs(race_names) do		for _, name in ipairs(v) do			if race == name then if abbr then abbr = '' .. name .. ' '				else abbr = name end if v.exclusive then result =  .. abbr ..  elseif v.linkdab then result =  .. abbr ..  elseif v.link then result =  .. abbr ..  else result =  .. abbr ..  end if v.catename==false then elseif v.catename then result = result .. cate(v.catename) else result = result .. cate(k .. ' Race') end end end end if not result then return race end return result end local function aligncat(align,gamen) local result if align == 'Law' or align == 'Light-Law' or align == 'Neutral-Law' or align == 'Dark-Law' then result = cate('Law Demons in ' .. gamen) elseif align == 'Neutral' or align == 'Light-Neutral' or align == 'Neutral-Neutral' or align == 'Dark-Neutral' then result = cate('Neutral Demons in ' .. gamen) elseif align == 'Chaos' or align == 'Light-Chaos' or align == 'Neutral-Chaos' or align == 'Dark-Chaos' then result = cate('Chaos Demons in ' .. gamen) else result = '' end return result end

local function alignnocat(align,nocat,gamen) local result if nocat then result = '' elseif align == 'Law' or align == 'Light-Law' or align == 'Neutral-Law' or align == 'Dark-Law' then result = cate('Law Demons in ' .. gamen) elseif align == 'Neutral' or align == 'Light-Neutral' or align == 'Neutral-Neutral' or align == 'Dark-Neutral' then result = cate('Neutral Demons in ' .. gamen) elseif align == 'Chaos' or align == 'Light-Chaos' or align == 'Neutral-Chaos' or align == 'Dark-Chaos' then result = cate('Chaos Demons in ' .. gamen) else result = '' end return result end local function bossdemonnocat(boss,nocat,gamen) local result if boss then result = cate(gamen .. ' Bosses') elseif nocat then result = '' else result = cate(gamen .. ' Demons') end return result end local function bossdemoncat(boss,gamen) local result if boss then result = cate(gamen .. ' Bosses') else result = cate(gamen .. ' Demons') end return result end

local function getArcana(arcana,game,gamen) local result if not arcana or arcana == '' or arcana == '-' or arcana == 'Unclassified' or arcana == 'None' or arcana == 'none' then result = '-' elseif arcana == 'Coin' or arcana == 'Coins' then result = 'Coin' .. cate('Coin Arcana') elseif arcana == 'Pentacle' then result = 'Pentacle' .. cate('Coin Arcana') elseif arcana == 'Sword' or arcana == 'Swords' then result = 'Sword' .. cate('Sword Arcana') elseif arcana == 'Cup' or arcana == 'Cups' then result = 'Cup' .. cate('Cup Arcana') elseif arcana == 'Wand' or arcana == 'Wands' then result = 'Wand' .. cate('Wand Arcana') elseif arcana == 'Rod' then result = 'Rod' .. cate('Wand Arcana') elseif arcana == 'Rumor' then result = 'Rumor *' .. cate('Rumor Demon') elseif arcana == 'Taurus' or arcana == 'Aquarius' or arcana == 'Leo' or arcana == 'Scorpio' or arcana == 'Masquerade' then result =  .. arcana ..  .. cate('Masked Circle') elseif arcana == 'Reich' then result =  .. arcana ..  elseif arcana == 'Zonbie' or arcana == 'Zombie' then result =  .. arcana ..  .. cate('Undead Race') elseif arcana == 'Human' then result = 'Human' .. cate('Human Race') elseif arcana == 'Machine' then result = 'Machine' .. cate('Machine Race') else result =  .. arcana ..  .. cate(arcana .. ' Arcana') end return result end local function bar(color,stat,ratio,cap,stat2,old,new) -- ratio is the length (in pixel) of each point. Cap times ratio equals max length of the stat bar. local stat_st, stat_width if stat == 'i' then stat = 'i'	elseif not tonumber(stat) then stat_st = ' -- ' stat = 0 stat_width = 0 elseif stat2 then stat_st = ' ' .. stat2 .. ' '	else stat_st = stat end if stat == 'i' then elseif tonumber(stat) > cap then stat_width = cap * ratio color = '#aaf' elseif stat_width ~= 0 then stat_width = tonumber(stat) * ratio end inherit = 'Inherit' if tostring(stat_st) == '+0' then stat_st = ' -- ' end if stat == 'i' then return '--\n|Inherit\n|-' elseif stat2 then return stat_st .. '\n|style="border-radius:10px;background-color:#000;background:linear-gradient(90deg, #2c2a46, #000);width:' .. cap * ratio + 3 .. 'px"|   \n|-' else return stat_st .. '\n|style="border-radius:10px;background-color:#000;background:linear-gradient(90deg, #2c2a46, #000);width:' .. cap * ratio + 3 .. 'px"|   \n|-' end end local function get_prop(args) local prop = {} for k, v in pairs(require('Module:Property_names')) do		for _, name in ipairs(v) do			if args[name] then prop[k] = args[name] break end end prop[k] = prop[k] or v.default end return prop end p.stats = makeInvokeFunction('_stats') function p._stats(args) local game = args[1] or args.game or args.Game or '' game = game:lower if game == 'mt' then game = 'mt1' end if game == 'kmt' then game = 'kmt1' end if game == 'smt' then game = 'smt1' end if game == 'smtii' then game = 'smt2' end if game == 'if' or game == 'if...' then game = 'smtif' end if game == 'smtn' or game == 'smt3n' then game = 'smt3' end if game == 'smtiv' then game = 'smt4' end if game == 'imagine' or game == 'smti' then game = 'smtim' end if game == 'gmt' or game == 'smti' then game = 'giten' end if game == 'lb' then game = 'lb1' end if game == 'majin' or game == 'mjt' then game = 'majin1' end if game == 'majin2sn' or game == 'mt2sn' then game = 'majin2' end if game == 'dssh' then game = 'sh' end if game == 'dsrksa' then game = 'raidou1' end if game == 'dsrkka' then game = 'raidou2' end if game == 'desu' or game == 'smtdesur' or game == 'desur' then game = 'desu1' end if game == 'smtdesur2' or game == 'desur2' then game = 'desu2' end if args.HazamaCh then game = 'smtifhc' end if args.FES then game = 'p3f' end if args.P3P then game = 'p3p' end if args.P4G then game = 'p4g' end if args.BR or args.RB then game = 'desu2rb' end if args.DC then game = '20xxdc' end local gameg -- Game general style if getGames.games[game].fallback then gameg = getGames.games[game].fallback -- e.g. 'p3f' and 'p3p' will fall back to 'p3' if applicable. else gameg = game end local gamen = getGames.games[game].name -- Full game name local gamegn = getGames.games[gameg].name -- e.g. 'Persona 3 FES' will fall back to 'Persona 3' if applicable. local gamed if gameg == 'mt1' or gameg == 'mt2' then gamed = 'KMT' elseif gameg == 'smtif' then gamed = 'if...' elseif gameg == 'raidou1' then gamed = 'DSRKSA' elseif gameg == 'raidou2' then gamed = 'DSRKKA' elseif gameg == 'childps' then gamed = 'CHILDRED' elseif gameg == 'childlight' then gamed = 'DMK' elseif gameg then gamed = gameg:upper end local data if not (gameg == 'smt9' or gameg == '20xx' or game == 'lb3' or game == 'lbs' or game == 'ronde' or game == 'cs') then data = require('Module:Skills/' .. gamed) end local prop = get_prop(args) if gameg == 'smt3' then getGames.games[gameg].colorbg = getGames.games[gameg].colorbg2 end styles.h = '\n!style="background: ' .. getGames.games[gameg].colorbg .. ';color: ' .. getGames.games[gameg].font .. '" ' styles.spanc = '' if not getGames.games[gameg].font2 then getGames.games[gameg].font2 = '#529488' end styles.barh = '\n|style="color:' .. getGames.games[gameg].font2 .. '" ' styles.bart11 = '\n|rowspan=2 style="padding:0" width=' styles.bart12 = '|\n{|cellspacing=2 cellpadding=0 style="background:transparent;font-size:11px;font-family:monospace;letter-spacing:-1px;line-height:'	styles.bard = '\n|style="text-align:right;padding:0 3px" '	styles.bard1 = styles.bard .. 'width=12px|'	styles.bard2 = styles.bard .. 'width=17px|'	local result = '{|align="center" style="min-width:650px;text-align:center; background: #222; border:2px solid ' .. getGames.games[gameg].colorb .. '; border-radius:10px; font-size:75%; font-family:verdana;"\n|-\n|' .. styles.table2b	if prop.image then		result = result .. '\n!style="width:20px;border:#333 solid 2px;border-radius:7px;background:' if game == 'smt1' then result = result .. '#637373'		elseif gameg == 'smtif' then result = result .. '#3018b8' elseif game == 'majin2' then result = result .. '#31315a' elseif gameg == 'p1' or gameg == 'p2is' or gameg == 'p2ep' or gameg == 'p3' or gameg == 'childred' or gameg == 'childps' or gameg == 'childwhite' or gameg == 'childfire' or gameg == 'childlight' then result = result .. 'transparent' else result = result .. '#000'		end result = result .. '"|' .. prop.image	end	result = result .. '\n|'	if prop.location then prop.location =  .. prop.location ..  else prop.location =  end	if game == 'mt1' then		if not prop.hp then prop.hp =  end		if not prop.xp then prop.xp =  end		if not prop.cp then prop.cp =  end		if not prop.mag then prop.mag =  end		if not prop.yen then prop.yen =  end       if (prop.xp ~=  and prop.mag ~= ) then    		result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|EXP' .. styles.h .. '|' .. styles.spanc .. 'Macca ' .. styles.h .. '|' .. styles.spanc .. 'MAG \n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.xp .. styles.statlow .. prop.yen .. styles.statlow .. prop.mag .. '\n|}' elseif (prop.mp ~=  and prop.cp ~= ) then result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Cost Point - MAG Cost per 10 steps"| CP ' .. styles.h .. '|' .. styles.spanc .. 'Macca \n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.cp .. styles.statlow .. prop.yen .. '\n|}' end result = result .. styles.table2 .. styles.h .. '|Strength' .. styles.h .. '|Intelligence' .. styles.h .. '|Hit' .. styles.h .. '|Agility' .. styles.h .. '|Defense' .. styles.h .. '|' .. styles.spanc .. 'Location \n|-' .. styles.statlow .. prop.str .. styles.statlow .. prop.int .. styles.statlow .. prop.hit .. prop.luc .. styles.statlow .. prop.agl .. styles.statlow .. prop.def .. prop.vit .. styles.statlow .. prop.location .. '\n|}' .. bossdemoncat(prop.boss,gamen) end if game == 'mt2' then if not prop.hp then prop.hp = '' end if not prop.mp then prop.mp = '' end if not prop.cp then prop.cp = '' end if not prop.mag then prop.mag = '' end if not prop.yen then prop.yen = '' end if not prop.normal then prop.normal = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Cost Point - MAG Cost per 10 Steps"| CP \n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.cp .. '\n|}' result = result .. styles.table2 .. styles.h .. 'title="Number appearing in battle"| Formations ' .. styles.h .. '|' .. styles.spanc .. 'MAG' .. styles.h .. '|' .. styles.spanc .. 'Macca ' .. styles.h .. '|' .. styles.spanc .. 'Item Drops \n|-' .. styles.statlow .. prop.formation .. styles.statlow .. prop.mag .. styles.statlow .. prop.yen .. styles.statlow .. prop.normal .. '\n|}' result = result .. styles.table2 .. styles.h .. '|Stamina' .. styles.h .. '|Intelligence' .. styles.h .. '|Attack' .. styles.h .. '|Agility' .. styles.h .. '|Luck' .. styles.h .. '|Defense\n|-' .. styles.statlow .. prop.vit .. styles.statlow .. prop.int .. styles.statlow .. prop.atk .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. styles.statlow .. prop.def .. '\n|}' .. bossdemoncat(prop.boss,gamen) end if game == 'kmt1' or game == 'kmt2' then if not prop.hp then prop.hp = '' end if not prop.mp then prop.mp = '' end if prop.noa == '' then prop.noa = '1' end if not prop.cp then prop.cp = '' end if not prop.mag then prop.mag = '' end if not prop.xp then prop.xp = '' end if not prop.yen then prop.yen = '' end if not prop.normal then prop.normal = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Vitality"|VIT' .. styles.h .. 'title="Intellect"|INT' .. styles.h .. 'title="Strength"|STR' .. styles.h .. 'title="Speed"|SPD' .. styles.h .. 'title="Luck"|LUC' .. styles.h .. 'title="Defense"|DEF\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.vit .. styles.statlow .. prop.int .. styles.statlow .. prop.str .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. styles.statlow .. prop.def .. '\n|}' .. bossdemoncat(prop.boss,gamen) result = result .. styles.table2 .. styles.h .. 'title="Cost Point - MAG Cost per 10 steps"| CP ' .. styles.h .. 'title="Number of Attacks"| NOA ' .. styles.h .. '|EXP' .. styles.h .. '|' .. styles.spanc .. 'Macca ' .. styles.h .. 'title="Magnetite dropped"|' .. styles.spanc .. ' MAG ' .. styles.h if game == 'kmt1' then result = result .. '|' .. styles.spanc .. 'Location ' elseif game == 'kmt2' then result = result .. '|' .. styles.spanc .. 'Item Drops ' end result = result .. '\n|-' .. styles.statlow .. prop.cp .. styles.statlow .. prop.noa .. styles.statlow .. prop.xp .. styles.statlow .. prop.yen .. styles.statlow .. prop.mag .. styles.statlow if game == 'kmt1' then result = result .. prop.location .. '\n|}' elseif game == 'kmt2' then result = result .. prop.normal .. '\n|}' end end if gameg == 'smt1' or gameg == 'smt2' or gameg == 'smtif' or gameg == '20xx' or gameg == 'smt9' then if not prop.hp then prop.hp = '?' end if not prop.mp then prop.mp = '?' end if not prop.cp then prop.cp = '' end if not prop.mag then prop.mag = '' end styles.barc = 'orange' result = result .. styles.table2b .. '\n|' .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|' .. styles.spanc .. 'Alignment ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.alignment .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. '\n|}' result = result .. styles.table2 .. styles.h if prop.boss or prop.enemy then result = result .. '|' .. styles.spanc .. 'MAG ' else result = result .. 'title="Cost Point - MAG Cost per 10 steps"| CP ' end result = result .. styles.h .. 'title="Number of Attacks"| NOA ' .. styles.h .. 'title="Physical Attack Power"|ATK' .. styles.h .. 'title="Physical Attack Accuracy"|ACC' .. styles.h .. 'title="Defenses"|DEF' .. styles.h .. 'title="Evasion"|EVA' .. styles.h .. 'title="Magical Attack Power"|M.ATK' .. styles.h .. 'title="Magical Hit-rate"|M.EFC' result = result .. '\n|-' .. styles.statlow .. prop.mag .. prop.cp .. styles.statlow .. prop.noa .. styles.statlow .. prop.atk .. styles.statlow .. prop.hit .. styles.statlow .. prop.def .. styles.statlow .. prop.avd .. styles.statlow .. prop.mpw .. styles.statlow .. prop.mef .. '\n|}\n|}' .. styles.bart11 .. '200px' .. styles.bart12 .. '1.4"' .. styles.barh .. 'title="Strength"|St' .. styles.bard1 .. bar(styles.barc,prop.str,4,40) .. styles.barh .. 'title="Intelligence"|In' .. styles.bard1 .. bar(styles.barc,prop.int,4,40) .. styles.barh .. 'title="Magic"|Ma' .. styles.bard1 .. bar(styles.barc,prop.magic,4,40) .. styles.barh .. 'title="Vitality"|Vi' .. styles.bard1 .. bar(styles.barc,prop.vit,4,40) .. styles.barh .. 'title="Agility"|Ag' .. styles.bard1 .. bar(styles.barc,prop.agl,4,40) .. styles.barh .. 'title="Luck"|Lu' .. styles.bard1 .. bar(styles.barc,prop.luc,4,40) .. '\n|}' .. bossdemonnocat(prop.boss,prop.nocat,gamen)		if game == 'smtifhc' or gameg == '20xx' or gameg == 'smt9' then else result = result .. alignnocat(prop.alignment,prop.nocat,gamen) end	end	if gameg == 'smt3' then		if not prop.hp then prop.hp = '?' end		if not prop.mp then prop.mp = '?' end		result = result .. styles.table2 .. styles.h		if prop.element then result = result .. '|Element' .. styles.h .. '|Wild Effects' .. cate('Magatama') styles.barc = '#9beffb' else result = result .. '| Race ' .. bossdemoncat(prop.boss,gamen) .. styles.h .. 'width=9%|Level' .. styles.h .. 'width=9%| HP ' .. styles.h .. 'width=9%| MP ' styles.barc = '#b15a60' end result = result .. styles.bart11 .. '319px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,6,40) .. styles.barh .. '|Magic' .. styles.bard2 .. bar(styles.barc,prop.magic,6,40) .. styles.barh .. '|Vitality' .. styles.bard2 .. bar(styles.barc,prop.vit,6,40) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,6,40) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,6,40) .. '\n|}\n|-' .. styles.statlow		if prop.element then			result = result .. prop.element .. styles.statlow .. prop.wild		else			result = result .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. ' ' .. styles.statlow .. prop.mp .. ' '		end		result = result .. '\n|}'	end	if gameg == 'smtim' then		if not prop.hp then prop.hp = '?' end		if not prop.mp then prop.mp = '?' end		result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|' .. styles.spanc .. 'Alignment ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. '|Growth' .. styles.h .. '|Inherit' .. styles.h .. 'title="Strength"|St' .. styles.h .. 'title="Magic"|Ma' .. styles.h .. 'title="Vitality"|Vi' .. styles.h .. 'title="Intelligence"|In' .. styles.h .. 'title="Speed"|Sp' .. styles.h .. 'title="Luck"|Lu' result = result .. '\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.alignment .. aligncat(prop.alignment,gamen) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.growth .. styles.statlow .. prop.inherit .. styles.statlow .. prop.str .. styles.statlow .. prop.magic .. styles.statlow .. prop.vit .. styles.statlow .. prop.int .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. '\n|}' result = result .. styles.table2 .. styles.h .. '|Force Slot' .. styles.h .. 'title="Close Range"| Close ' .. styles.h .. 'title="Long Range"| Long ' .. styles.h .. '|Spell' .. styles.h .. '|Support' .. styles.h .. 'title="Physical Defense"|P.Def' .. styles.h .. 'title="Magical Defense"|M.Def' .. styles.h .. '|Critical' .. styles.h .. 'title="Critical Defense"|Crt.Def\n|-' result = result .. styles.statlow .. prop.forceslot .. styles.statlow .. prop.closerange .. styles.statlow .. prop.longrange .. styles.statlow .. prop.spell .. styles.statlow .. prop.support .. styles.statlow .. prop.def .. styles.statlow .. prop.mdef .. styles.statlow .. prop.critical .. styles.statlow .. prop.critdef .. '\n|}' .. bossdemoncat(prop.boss,gamen) end if gameg == 'smtsj' then if not prop.hp then prop.hp = '?' end if prop.boss then prop.mp = '∞' elseif not prop.mp then prop.mp = '?' end styles.barc = '#87e5d7' result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|' .. styles.spanc .. 'Alignment ' .. styles.h .. '|Level' .. styles.h .. 'width=7%| HP ' .. styles.h .. 'width=7%| MP ' .. styles.bart11 .. '312px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard1 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Magic' .. styles.bard1 .. bar(styles.barc,prop.magic,2.4,99) .. styles.barh .. '|Vitality' .. styles.bard1 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. '|Agility' .. styles.bard1 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard1 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.alignment .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. ' ' .. styles.statlow .. prop.mp .. ' ' .. '\n|}' .. bossdemoncat(prop.boss,gamen) .. aligncat(prop.alignment,gamen)	end	if gameg == 'smt4' then		if not prop.hp then prop.hp = '?' end		if prop.boss then prop.mp = '∞' elseif not prop.mp then prop.mp = '?' end		styles.barc = '#85bd64'		styles.h = '\n!style="color:' .. getGames.games[gameg].colorbg2 .. ';background:#000" '		result = result .. styles.table2 .. styles.h .. '| Race ' .. styles.h .. 'width=45px|Level ' .. styles.h .. 'width=45px| HP ' .. styles.h .. 'width=45px| MP ' .. styles.bart11 .. '387px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,1.5,200) .. styles.barh .. '|Dexterity' .. styles.bard2 .. bar(styles.barc,prop.dex,1.5,200) .. styles.barh .. '|Magic' .. styles.bard2 .. bar(styles.barc,prop.magic,1.5,200) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,1.5,200) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,1.5,200) .. '\n|}\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. '\n|}' .. bossdemoncat(prop.boss,gamen) if not prop.phys then prop.phys = '-' end if not prop.pierce then prop.pierce = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.force then prop.force = '-' end if not prop.expel then prop.expel = '-' end if not prop.curse then prop.curse = '-' end styles.h = '\n!style="background:' .. getGames.games[gameg].colorbg2 .. ';color:#000" ' local statlow = '\n|style="background:' .. getGames.games[gameg].colorbg2 .. ';color:#000"|' result = result .. styles.table2 .. styles.h .. 'title="Physical"| Phys' .. styles.h .. 'title="Gun"| Gun' .. styles.h .. 'title="Fire"| Fire' .. styles.h .. 'title="Ice"| Ice' .. styles.h .. 'title="Electricity"| Elec' .. styles.h .. 'title="Force"| Force' .. styles.h .. 'title="Light"| Light' .. styles.h .. 'title="Dark"| Dark\n|-\n' .. statlow .. prop.phys .. statlow .. prop.pierce .. statlow .. prop.fire .. statlow .. prop.ice .. statlow .. prop.elec .. statlow .. prop.force .. statlow .. prop.expel .. statlow .. prop.curse .. '\n|}' styles.h = '\n!style="background: ' .. getGames.games[gameg].colorbg .. ';color: ' .. getGames.games[gameg].font .. '" ' result = result .. styles.table2 .. styles.h .. 'width=130px title="All enemies and guest allies are immune to '.."'Lost'"..' ailment"| ' if prop.almres ~= '' then result = result .. 'Other' else result = result .. 'Ailment' end result = result .. ' Resistance ' .. styles.order .. prop.almres .. prop.res .. '\n|}' .. styles.table2 .. styles.h .. 'width=100px|Normal Attack' .. styles.order .. prop.noa if prop.turnicon then result = result .. styles.h .. 'width=70px|' .. styles.spanc .. 'Turn Icon ' .. styles.order .. prop.turnicon end result = result .. '\n|}' if prop.requiredquest or prop.relatedquest or prop.normal then result = result .. styles.table2 if prop.requiredquest then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Required quest ' .. styles.order .. prop.requiredquest elseif prop.relatedquest then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Related quest ' .. styles.order .. prop.relatedquest end if prop.normal then result = result .. styles.h .. 'width=70px|' .. styles.spanc .. 'Drop ' .. styles.order .. prop.normal end result = result .. '\n|}' end if prop.evolvef or prop.evolvet then result = result .. styles.table2 if prop.evolvef then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Evolved from ' .. styles.order .. prop.evolvef .. ' (' .. prop.evolvefl .. ')' end if prop.evolvet then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Evolves into ' .. styles.order .. prop.evolvet .. ' (' .. prop.evolvetl .. ')' end result = result .. '\n|}' end if prop.fusion then result = result .. styles.table2 .. styles.h .. 'width=100px|' .. styles.spanc .. 'Special fusion ' .. styles.order .. prop.fusion .. '\n|}' end end if gameg == 'lb1' or gameg == 'lb2' or gameg == 'lb3' or gameg == 'lbs' then if not prop.hp then prop.hp = '?' end if not prop.mp then prop.mp = '?' end if gameg == 'lb1' and prop.atk == '' then prop.atk = '1' end result = result .. styles.table2 .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' if gameg == 'lb1' then result = result .. styles.h .. 'title="Number of Attacks"|NOA' .. styles.h .. 'title="Defense"|DEF' else result = result .. styles.h .. 'title="Attack Power"|ATK' .. styles.h .. 'title="Defense"|DEF' end result = result .. styles.h .. 'title="Strength"|STR' .. styles.h .. 'title="Intelligence"|INT' .. styles.h .. 'title="Endurance"|END' .. styles.h .. 'title="Speed"|SPD' .. styles.h .. 'title="Luck"|LUC\n|-' .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.atk .. styles.statlow .. prop.def .. styles.statlow .. prop.str .. styles.statlow .. prop.int .. styles.statlow .. prop.vit .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. '\n|}' .. bossdemoncat(prop.boss,gamen) if prop.resist or prop.extra then result = result .. styles.table2 if prop.resist then result = result .. styles.h .. '|Resistances' .. styles.order .. prop.resist end if prop.extra then result = result .. styles.h .. '|Special' .. styles.order .. prop.extra end result = result .. '\n|}' end if prop.equip ~= '' or prop.card then if prop.equip == 'Pteros' or prop.equip == 'pteros' or prop.equip == 'Bird' then prop.equip = 'Claws' elseif prop.equip == 'Kobold' or prop.equip == 'kobold' or prop.equip == 'Jaki' then prop.equip = 'Claws, Hammers, Tornado, Axes, Shields' elseif prop.equip == 'Dwarf' or prop.equip == 'dwarf' or prop.equip == 'Jirae' then prop.equip = 'Claws, Swords, Armour, Shields' elseif prop.equip == 'Pixie' or prop.equip == 'pixie' or prop.equip == 'Fairy' then prop.equip = 'Claws, Hammers, Shurikens, Tornado, Axes, Swords, Armour, Shields' else if gameg == 'lb2' then prop.equip = 'None' end end result = result .. styles.table2 if prop.equip ~= '' then result = result .. styles.h .. 'width=70|' .. styles.spanc .. 'Equipment ' .. styles.order .. prop.equip end if prop.card then result = result .. styles.h .. 'width=100|Card Location' .. styles.order .. prop.card end result = result .. '\n|}' end end if gameg == 'ab' then if not prop.hp then prop.hp = '?' end if not prop.mp then prop.mp = '?' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Rank' .. styles.h .. '|HP' .. styles.h .. '|PP' .. styles.h .. '|Move' .. styles.h .. '|Power' .. styles.h .. 'title="Defensive Power"| Might ' .. styles.h .. '|Magic' .. styles.h .. '|Speed' .. styles.h .. '|Luck\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.move .. styles.statlow .. prop.power .. styles.statlow .. prop.might .. styles.statlow .. prop.magic .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. '\n|}' .. bossdemoncat(prop.boss,gamen) if prop.weapon ~= '' then result = result .. styles.table2 .. styles.h .. 'width=80px|' .. styles.spanc .. 'Weapon ' .. styles.effect1 .. prop.weapon .. '\n|}' end if prop.tech then prop.techc = data.skills[prop.tech] if not prop.techc then alias = data.aliases[prop.tech] if alias then prop.tech = alias prop.techc = data.skills[prop.tech] else prop.techc.effect = noskill(prop.tech,gamed) end end result = result .. styles.table2 .. styles.h .. 'colspan=5|' .. styles.spanc .. 'Technique ' .. styles.skill .. 'Technique' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Range' .. styles.skillc .. 'Target' .. styles.skillc .. 'Description' .. styles.skill .. prop.tech .. styles.cost1 .. prop.techc.cost .. styles.cost1 .. prop.techc.range .. styles.cost1 .. prop.techc.target .. styles.effect1 .. prop.techc.effect .. '\n|}' end end if gameg == 'majin1' or gameg == 'majin2' or gameg == 'ronde' then if not prop.hp then prop.hp = '?' end if not prop.mp then prop.mp = '?' end if not prop.cp then prop.cp = '' end if not prop.mag then prop.mag = '' end result = result .. bossdemoncat(prop.boss,gamen) .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. '|Mv Range' .. styles.h .. '|Mv Type' .. styles.h if gameg == 'majin1' then result = result .. '|Atk Type' .. styles.h .. 'title="Cost Point - MAG cost per 10 steps"| CP ' elseif gameg == 'majin2' then result = result .. '|Atk Range' .. styles.h .. '|' .. styles.spanc .. 'MAG' elseif gameg == 'ronde' then result = result .. '|Atk Range' .. styles.h .. '|Arcana' end result = result .. '\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.move .. styles.statlow .. prop.movetype .. styles.statlow .. prop.noa .. styles.statlow if gameg == 'ronde' then result = result .. prop.arcana .. '\n|}' else result = result .. prop.cp .. prop.mag .. '\n|}' end if gameg == 'majin1' then result = result .. styles.table2 .. styles.h .. '|Strength' .. styles.h .. '|Magic' .. styles.h .. '|Technique' .. styles.h .. '|Agility' .. styles.h .. '|Luck\n|-' .. styles.statlow .. prop.str .. styles.statlow .. prop.magic .. styles.statlow .. prop.dex .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. '\n|}' else result = result .. styles.table2 .. styles.h .. 'title="Strength"|St' .. styles.h .. 'title="Magic|Ma' .. styles.h .. 'title="Intelligence"|In' .. styles.h .. 'title="Agility"|Ag' .. styles.h .. 'title="Luck|Lu' .. styles.h .. 'title="Attack Power"|Atk' .. styles.h .. 'title="Physical Defense"|P.Def' .. styles.h			if gameg == 'majin2' then result = result .. 'title="Magical Attack Power"|M.Atk' .. styles.h .. 'title="Magical Defense"|M.Def' .. styles.h .. 'title="Hit-rate"|Hit' .. styles.h .. 'title="Evasion"|Eva' .. styles.h .. 'title="Critical Rate"|Crt\n|-' else result = result .. 'title="Magical Defense"|M.Def\n|-' end result = result .. styles.statlow .. prop.str .. styles.statlow .. prop.magic .. styles.statlow .. prop.int .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. styles.statlow .. prop.atk .. styles.statlow .. prop.def .. styles.statlow if gameg == 'majin2' then result = result .. prop.matk .. styles.statlow .. prop.mdef .. styles.statlow .. prop.hit .. styles.statlow .. prop.avd .. styles.statlow .. prop.critical .. '\n|}' else result = result .. prop.mdef .. '\n|}' end end if gameg == 'ronde' then if not prop.askills then prop.askills = '-' end result = result .. styles.table2 .. styles.h .. 'width=100px|Equipment' .. styles.order .. prop.equip .. styles.h .. 'width=100px|Item' .. styles.order .. prop.askills .. '\n|}' end end if gameg == 'smtds' or gameg == 'sh' then if not prop.hp then prop.hp = '?' end if not prop.mp then prop.mp = '?' end if not prop.cp then prop.cp = '' end if not prop.mag then prop.mag = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Strength"|St' .. styles.h .. 'title="Intelligence"|In' .. styles.h .. 'title="Magic"|Ma' .. styles.h if gameg == 'sh' then result = result .. 'title="Endurance"|En' .. styles.h end result = result .. 'title="Agility"|Ag' .. styles.h .. 'title="Luck"|Lu' result = result .. '\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.str .. styles.statlow .. prop.int .. styles.statlow .. prop.magic .. styles.statlow if gameg == 'sh' then result = result .. prop.vit .. styles.statlow end result = result .. prop.agl .. styles.statlow .. prop.luc result = result .. '\n|}' .. styles.table2 .. styles.h if not (prop.boss or prop.enemy) then result = result .. 'title="Cost Point - Magnetite cost per 10 steps"| CP ' .. styles.h end if gameg == 'smtds' then result = result .. 'title="Number of Attacks"| NOA ' .. styles.h elseif gameg == 'sh' and not (prop.boss or prop.enemy) then result = result .. '|MAG Summon' .. styles.h		end if not prop.traits or prop.traits == '' or prop.traits == '-' or prop.traits == '--' or prop.boss or prop.enemy then else result = result .. '|' .. styles.spanc .. 'Personality ' .. styles.h		end result = result .. 'title="Physical Attack Power"|P.ATK' .. styles.h .. 'title="Physical Attack Hit-rate"|P.HIT' .. styles.h .. 'title="Base Defenses"|B.DEF' .. styles.h .. 'title="Avoidance"|AVD' .. styles.h .. 'title="Magical Power"|M.ATK' .. styles.h if gameg == 'smtds' then result = result .. 'title="Magical Defense"|M.DEF' elseif gameg == 'sh' then result = result .. 'title="Magical Hit-rate"|M.HIT' end result = result .. '\n|-' .. styles.statlow if not (prop.boss or prop.enemy) then result = result .. prop.mag .. prop.cp .. styles.statlow end if gameg == 'smtds' then result = result .. prop.noa .. styles.statlow elseif gameg == 'sh' and not (prop.boss or prop.enemy) then result = result .. prop.summoncost .. styles.statlow end if not prop.traits or prop.traits == '' or prop.traits == '-' or prop.traits == '--' then else result = result .. prop.traits .. styles.statlow end result = result .. prop.atk .. styles.statlow .. prop.hit .. styles.statlow .. prop.def .. styles.statlow .. prop.avd .. styles.statlow .. prop.matk .. styles.statlow if gameg == 'smtds' then result = result .. prop.mdef elseif gameg == 'sh' then result = result .. prop.mef end result = result .. bossdemoncat(prop.boss,gamen) .. '\n|}' end if gameg == 'raidou1' or gameg == 'raidou2' then if prop.str == '' then prop.str = '-' end if prop.magic == '' then prop.magic = '-' end if prop.vit == '' then prop.vit = '-' end if prop.luc == '' then prop.luc = '-' end if not prop.condition then prop.condition = '-' end if not prop.convo then prop.convo = '-' end if not prop.investigate then prop.investigate = '-' end if not prop.recruit then prop.recruit = '?' elseif prop.boss then prop.recruit = 'No' end if not prop.resist then prop.resist = '-' end if not prop.block then prop.block = '-' end if not prop.absorb then prop.absorb = '-' end if not prop.reflect then prop.reflect = '-' end if not prop.weak then prop.weak = '-' else if gameg == 'raidou1' then prop.weak = ' ' .. prop.weak .. ' '			else prop.weak = ' ' .. prop.weak .. ' '			end end if not prop.frail then prop.frail = '-' else prop.frail = ' ' .. prop.frail .. ' ' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Order ' .. styles.h .. '|Level' .. styles.h .. '|HP' if gameg == 'raidou1' then result = result .. styles.h .. '|MP' end result = result .. styles.h .. 'title="Strength"|St' .. styles.h .. 'title="Magic"|Ma' .. styles.h .. 'title="Vitality"|Vi' .. styles.h .. 'title="Luck"|Lu' .. styles.h if gameg == 'raidou1' then result = result .. '|MAG Cost' else result = result .. 'title="Conversation skill of the demon"| Conversation ' end result = result .. styles.h .. 'title="Demon' .. "'s" .. ' Investigation Skill"| Investigation \n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp if gameg == 'raidou1' then result = result .. styles.statlow .. prop.mp end result = result .. styles.statlow .. prop.str .. styles.statlow .. prop.magic .. styles.statlow .. prop.vit .. styles.statlow .. prop.luc .. styles.statlow if gameg == 'raidou1' then result = result .. prop.condition else result = result .. prop.convo end result = result .. styles.statlow .. prop.investigate .. '\n|}' .. styles.table2 if gameg == 'raidou1' then result = result .. styles.h .. 'title="Whether the demon can be subdued as ally or not."|Confinable' end result = result .. styles.h .. '|Reflects' .. styles.h .. '|Absorbs' .. styles.h .. '|Block' .. styles.h .. '|Resists' .. styles.h if gameg == 'raidou2' then result = result .. 'title="Unit takes extra damage without being staggered."| Weak ' .. styles.h .. 'title="Unit will be staggered by the said element(s). Whether the element does extra damage or not varies."| Frail \n|-' else result = result .. '|Weak\n|-' .. styles.statlow .. prop.recruit end result = result .. styles.statlow .. prop.reflect .. styles.statlow .. prop.absorb .. styles.statlow .. prop.block .. styles.statlow .. prop.resist .. styles.statlow .. prop.weak if gameg == 'raidou2' then result = result .. styles.statlow .. prop.frail end result = result .. '\n|}' .. bossdemoncat(prop.boss,gamen) end if gameg == 'giten' then if not prop.condition then prop.condition = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Alignment' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Cost Point. Magnetite per 10 steps"| CP \n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.alignment .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.condition .. '\n|}' result = result .. styles.table2 .. styles.h .. '|Intuition' .. styles.h .. '|Will Power' .. styles.h .. '|Magic' .. styles.h .. '|Intelligence' .. styles.h .. '|Divine Protection\n|-' .. styles.statlow .. prop.itin .. styles.statlow .. prop.wllpow .. styles.statlow .. prop.magic .. styles.statlow .. prop.int .. styles.statlow .. prop.dvnprt .. '\n|}' result = result .. styles.table2 .. styles.h .. '|Strength' .. styles.h .. '|Stamina' .. styles.h .. '|Agility' .. styles.h .. '|Dexterity' .. styles.h .. '|Charm\n|-' .. styles.statlow .. prop.str .. styles.statlow .. prop.vit .. styles.statlow .. prop.agl .. styles.statlow .. prop.dex .. styles.statlow .. prop.chm .. '\n|}' .. aligncat(prop.alignment,gamen) .. bossdemoncat(prop.boss,gamegn) end if gameg == 'p1' then styles.barc = getGames.games[gameg].colorbg if prop.vit2 then prop.p1vi = '| Vitality ' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99,prop.vit2,'PSX version','PSP version') else prop.p1vi = '|Vitality' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) end if prop.dex2 then prop.p1dx = '| Dexterity ' .. styles.bard2 .. bar(styles.barc,prop.dex,2.4,99,prop.dex2,'PSX version','PSP version') else prop.p1dx = '|Dexterity' .. styles.bard2 .. bar(styles.barc,prop.dex,2.4,99) end if prop.boss or prop.enemy or prop.hp then if prop.order2 then prop.p1order = getRace(prop.race,gameg,'PSX version') .. ' / ' .. getRace(prop.order2,gameg,'PSP version') else prop.p1order = getRace(prop.race,gameg) end if not prop.etype then prop.etype = '' end if not prop.element then prop.element = '' end if not prop.hp then prop.hp = '' end if not prop.mp then prop.mp = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Order ' .. styles.h .. '|Type' .. styles.h .. '|Subtype' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|SP' if prop.normal then result = result .. styles.h .. '|' .. styles.spanc .. 'Drops ' end result = result .. '\n|-' .. styles.statlow .. prop.p1order .. styles.statlow .. prop.etype .. styles.statlow .. prop.element .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp if prop.normal then result = result .. styles.statlow .. prop.normal end result = result .. '\n|}' .. bossdemoncat(prop.boss,gamen) if prop.matk ==  and prop.mdef ==  and prop.str ==  and prop.vit ==  and prop.dex ==  and prop.agl ==  and prop.luc == '' then else result = result .. styles.table2 .. styles.h .. 'title="Magical Power"|MAtk' .. styles.h .. 'title="Magical Defense"|MDef' .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. prop.p1vi .. styles.barh .. prop.p1dx .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. prop.matk .. styles.statlow .. prop.mdef .. '\n|}'			end			if prop.traits or prop.convo then				result = result .. styles.table2				if prop.traits then result = result .. styles.h .. 'width=50px|' .. styles.spanc .. 'Traits ' .. styles.order .. prop.traits end				if prop.convo then result = result .. styles.h .. 'width=50px|' .. styles.spanc .. 'Ptalk ' .. styles.order .. prop.convo end				result = result .. '\n|}' end else if not prop.etype then prop.etype = '' end if not prop.element then prop.element = '' end if not prop.mp then prop.mp = '' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Arcana ' .. styles.h .. '|Type' .. styles.h .. '|Subtype' .. styles.h .. '|Level' .. styles.h .. '|SP cost' if prop.totem then result = result .. styles.h .. '|' .. styles.spanc .. 'Totem ' end if prop.preturn then result = result .. styles.h .. '|' .. styles.spanc .. 'Returns ' .. styles.spanc .. '° ' end result = result .. '\n|-' .. styles.statlow .. getArcana(prop.arcana,gameg,gamen) .. styles.statlow .. prop.etype .. styles.statlow .. prop.element .. styles.statlow .. prop.level .. styles.statlow .. prop.mp if prop.totem then result = result .. styles.statlow .. prop.totem end if prop.preturn then result = result .. styles.statlow .. prop.preturn end result = result .. '\n|}' .. styles.table2 .. styles.h .. 'title="Magical Power"|MAtk' .. styles.h .. 'title="Magical Defense"|MDef' .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Vitality' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. prop.p1dx .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. prop.matk .. styles.statlow .. prop.mdef .. '\n|}'			if args.Affinity or prop.convo then				result = result .. styles.table2					if args.Affinity then result = result .. styles.h .. 'width=60px title="Characters with ' .. "'Best'" .. ' Affinity"|' .. styles.spanc .. ' Affinity ' .. styles.order .. args.Affinity end					if prop.convo then result = result .. styles.h .. 'width=50px|' .. styles.spanc .. 'Ptalk ' .. styles.order .. prop.convo end				result = result .. '\n|}' .. cate(gamen .. ' Personas')			end		end	end	if (gameg == 'p2is' or gameg == 'p2ep') and prop.quote then		result = result .. styles.table2b .. styles.quote .. 'font-style:italic"|' .. string.gsub(prop.quote, '!!', '‼') .. '\n|}' end -- replace exclamation mark otherwise it will be interpreted as wiki table seperator. if gameg == 'p2is' or gameg == 'p2ep' then result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Arcana ' if prop.enemy or prop.boss or prop.hp then if prop.etype then result = result .. styles.h .. '|Type' end result = result .. styles.h .. '|Level' if prop.hp then result = result .. styles.h .. '|HP' end if prop.normal then result = result .. styles.h .. '|' .. styles.spanc .. 'Normal Drop' end if prop.rare then result = result .. styles.h .. 'style="background:#8E283D"|Rare Drop' end result = result .. '\n|-' .. styles.statlow .. getArcana(prop.arcana,gameg,gamen) if prop.etype then result = result .. styles.statlow .. prop.etype end result = result .. styles.statlow .. prop.level if prop.hp then result = result .. styles.statlow .. prop.hp end if prop.normal then result = result .. styles.statlow .. prop.normal end if prop.rare then result = result .. styles.statlow .. prop.rare end result = result .. bossdemoncat(prop.boss,gamen) else if not prop.etype then prop.etype = '' end if not prop.mp then prop.mp = '' end if not prop.bonus then prop.bonus = '' end if not prop.preturn then prop.preturn = '' end result = result .. styles.h .. '|Type' .. styles.h .. '|Level' .. styles.h .. '|SP cost' .. styles.h .. 'title="Extra stats that are conferred upon every level up with the Persona equipped"|Bonus' .. styles.h .. '|' .. styles.spanc .. 'Returns ' .. '' .. styles.spanc .. '° ' .. '\n|-' .. styles.statlow .. getArcana(prop.arcana,gameg,gamen) .. styles.statlow .. prop.etype .. styles.statlow .. prop.level .. styles.statlow .. prop.mp .. styles.statlow .. prop.bonus .. styles.statlow .. prop.preturn .. cate(gamegn .. ' Personas') end result = result .. '\n|}' end if gameg == 'p3' or gameg == 'p4' then result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Arcana ' .. styles.h .. 'width=10%|Level' if prop.hp then result = result .. styles.h .. 'width=10%|HP' end if prop.mp then result = result .. styles.h .. 'width=10%|SP' end styles.barc = getGames.games[gameg].colorbg result = result .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Magic' .. styles.bard2 .. bar(styles.barc,prop.magic,2.4,99) .. styles.barh .. '|Endurance' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. getArcana(prop.arcana,gameg,gamegn) .. styles.statlow .. prop.level		if prop.hp then result = result .. styles.statlow .. prop.hp end		if prop.mp then result = result .. styles.statlow .. prop.mp end		result = result .. '\n|}'		if gameg == 'p3' then			if prop.hp then				if prop.boss then					if game == 'p3p' then						result = result .. cate('Persona 3 Portable Bosses')					elseif game == 'p3f' then						result = result .. cate(gamegn .. ' Bosses') else result = result .. cate(gamegn .. ' Bosses') .. cate('Persona 3 Portable Bosses') end else result = result .. cate(gamegn .. ' Shadows') end else if game == 'p3p' or game == 'p3f' then result = result .. cate('Persona 3 FES Personas') .. cate('Persona 3 Portable Personas') else result = result .. cate(gamegn .. ' Personas') .. cate('Persona 3 FES Personas') .. cate('Persona 3 Portable Personas') end end end if gameg == 'p4' then if prop.hp then if prop.boss then if prop.vanilla then result = result .. cate(gamen .. ' Bosses') elseif game == 'p4g' then result = result .. cate(gamen .. ' Bosses') else result = result .. cate(gamegn .. ' Bosses') .. cate('Persona 4 Golden Bosses') end else if prop.vanilla then result = result .. cate(gamen .. ' Shadows') elseif game == 'p4g' then result = result .. cate(gamen .. ' Shadows') else result = result .. cate(gamegn .. ' Shadows') .. cate('Persona 4 Golden Shadows') end end else if game == 'p4g' then result = result .. cate(gamen .. ' Personas') else result = result .. cate(gamegn .. ' Personas') .. cate('Persona 4 Golden Personas') end end end end if gameg == 'pq' then if not prop.arcana then if not prop.drop1 then prop.drop1 = '-' end if not prop.drop2 then prop.drop2 = '-' end if not prop.drop3 then prop.drop3 = '-' end styles.barc = getGames.games[gameg].colorbg result = result .. styles.table2 .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|Attack' .. styles.h .. '|Defense' result = result .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Magic' .. styles.bard2 .. bar(styles.barc,prop.magic,2.4,99) .. styles.barh .. '|Endurance' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.atk .. styles.statlow .. prop.def .. '\n|}'			result = result .. styles.table2 .. styles.h .. '|Exp' .. styles.h .. '|Drop 1' .. styles.h .. '|Drop 2' .. styles.h			if prop.dropc and prop.condition then result = result .. '|Conditional' else result = result .. '|Drop 3' end			result = result .. '\n|-\n' .. styles.statlow .. prop.xp .. styles.statlow .. prop.drop1 .. styles.statlow .. prop.drop2 .. styles.statlow if prop.dropc and prop.condition then result = result .. '' .. prop.dropc .. ' '			else result = result .. prop.drop3 end if prop.boss then result = result .. cate(gamegn .. ' Bosses') else result = result .. cate(gamegn .. ' Shadows') end elseif prop.hp or prop.mp then -- sub-persona result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Arcana ' .. styles.h .. 'width=10%|Level' .. styles.h .. 'title="HP bonus. Replenishes after battle." width=10%|HP +' .. styles.h .. 'title="SP bonus. Replenishes after battle." width=10%|SP +' .. styles.h .. '|Inherit' .. styles.h .. '|' .. styles.spanc .. 'Extract ' .. styles.h .. '|' .. styles.spanc .. 'Fragment\n|-\n' if not prop.inherit then prop.inherit = '-' end if not prop.card then prop.card = '-' end if not prop.fragment then prop.fragment = '-' end result = result .. styles.statlow .. getArcana(prop.arcana,gameg,gamen) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.inherit .. styles.statlow .. prop.card .. styles.statlow .. prop.fragment .. cate(gamegn .. ' Personas') else -- main persona styles.barc = getGames.games[gameg].colorbg result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Arcana ' .. styles.h .. 'width=10%|Level' result = result .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Magic' .. styles.bard2 .. bar(styles.barc,prop.magic,2.4,99) .. styles.barh .. '|Endurance' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-' .. styles.statlow .. getArcana(prop.arcana,gameg,gamegn) .. styles.statlow .. prop.level			if not prop.nocat then result = result .. cate(gamegn .. ' Personas') end		end		result = result .. '\n|}'	end	if gameg == 'cs' then		if not prop.mp then prop.mp = '?' end		if not prop.mp then prop.mp = '?' end		result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. 'title="Strength"|St' .. styles.h .. 'title="Endurance"|En' .. styles.h .. 'title="Magic"|Ma' .. styles.h .. 'title="Agility"|Ag\n|-\n' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.str .. styles.statlow .. prop.def .. styles.statlow .. prop.magic .. styles.statlow .. prop.agl .. '\n|}' .. cate(getGames.games[gameg].name2 .. ' Demons') end if gameg == 'ddsaga1' or gameg == 'ddsaga2' then if gameg == 'ddsaga2' and prop.boss then prop.mp = '∞' elseif not prop.mp then prop.mp = '?' end if not prop.normal then prop.normal = '-' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. '|Drops\n|-\n' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.normal .. '\n|}' .. bossdemoncat(prop.boss,gamen) end if gameg == 'desu1' or gameg == 'desu2' then styles.barc = getGames.games[gameg].colorbg result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Race ' .. styles.h .. 'width=10%|Level' .. styles.h .. 'width=10%|HP' .. styles.h .. 'width=10%|MP' .. styles.bart11 .. '315px' .. styles.bart12 .. '1"' .. styles.barh .. '|Strength' .. styles.bard1 .. bar(styles.barc,prop.str,6,40) .. styles.barh .. '|Magic' .. styles.bard1 .. bar(styles.barc,prop.magic,6,40) .. styles.barh .. '|Vitality' .. styles.bard1 .. bar(styles.barc,prop.vit,6,40) .. styles.barh .. '|Agility' .. styles.bard1 .. bar(styles.barc,prop.agl,6,40) .. '\n|}\n|-' .. styles.statlow .. getRace(prop.race,gameg) .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. ' ' .. styles.statlow .. prop.mp .. ' \n|}'		if prop.boss then			if gameg == 'desu1' and game ~= 'desu1oc' then				result = result .. cate(gamegn .. ' Bosses') .. cate('Devil Survivor Overclocked Bosses')			elseif gameg == 'desu2' and game ~= 'desu2rb' then				result = result .. cate(gamegn .. ' Bosses') .. cate('Devil Survivor 2 Record Breaker Bosses')			else result = result .. cate(gamen .. ' Bosses')			end		else			if prop.race == 'Human' or prop.race == '???' or prop.race == 'Foreigner' then if gameg == 'desu1' and game ~= 'desu1oc' then result = result .. cate(gamegn .. ' Characters') .. cate('Devil Survivor Overclocked Characters') elseif gameg == 'desu2' and game ~= 'desu2rb' then result = result .. cate(gamegn .. ' Characters') .. cate('Devil Survivor 2 Record Breaker Characters') else result = result .. cate(gamegn .. ' Characters') end elseif gameg == 'desu1' and game ~= 'desu1oc' then result = result .. cate(gamegn .. ' Demons') .. cate('Devil Survivor Overclocked Demons') elseif gameg == 'desu2' and game ~= 'desu2rb' then result = result .. cate(gamegn .. ' Demons') .. cate('Devil Survivor 2 Record Breaker Demons') else result = result .. cate(gamen .. ' Demons') end end end if gameg == 'childred' or gameg == 'childps' or gameg == 'childwhite' or gameg == 'childfire' or gameg == 'childlight' then if not prop.xp then prop.xp = '' end result = result .. styles.table2 .. styles.h .. '|Class' .. styles.h .. '|Element' .. styles.h .. '|' .. styles.spanc .. 'Type' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP' .. styles.h .. '|Exp\n|-' .. styles.statlow .. prop.class .. styles.statlow .. prop.etype .. styles.statlow .. prop.race .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. styles.statlow .. prop.xp .. '\n|}' result = result .. styles.table2 .. styles.h .. 'width=16.67% title="Attack Power"|ATK' .. styles.h .. 'width=16.67% title="Defense"|DEF' .. styles.h .. 'width=16.67% title="Magic"|MGC' .. styles.h .. 'width=16.67% title="Resistance"|RES' .. styles.h .. 'width=16.67% title="Speed"|SPD' .. styles.h .. 'width=16.67% title="Luck"|LCK\n|-\n' .. styles.statlow .. prop.atk .. styles.statlow .. prop.def .. styles.statlow .. prop.magic .. styles.statlow .. prop.res .. styles.statlow .. prop.agl .. styles.statlow .. prop.luc .. '\n|}' if prop.boss or race == 'Boss' then if gameg == 'childlight' then result = result .. cate(getGames.games[gameg].name3 .. ' Bosses') else result = result .. cate(gamen .. ' Bosses') end else if game == 'childblack' or gameg == 'childps' then result = result .. cate('Devil Children PS demons') elseif gameg == 'childwhite' then result = result .. cate(gamen .. ' Demons') elseif gameg == 'childred' then result = result .. cate(getGames.games[gameg].name1 .. ' Demons') .. cate(getGames.games[gameg].name2 .. ' Demons') elseif gameg == 'childfire' then result = result .. cate(getGames.games[gameg].name1 .. ' Demons') .. cate(getGames.games[gameg].name2 .. ' Demons') elseif gameg == 'childlight' then result = result .. cate(getGames.games[gameg].name1 .. ' Demons') .. cate(getGames.games[gameg].name2 .. ' Demons') end end result = result .. cate(prop.race .. ' Type') end if gameg == 'childmessiah' then if not prop.number then prop.number = '-' end if not prop.element then prop.element = '-' end if not prop.weak then prop.weak = '-' end if not prop.race then prop.race = '-' end if not prop.level then prop.level = '-' end if not prop.hp then prop.hp = '-' end if not prop.mp then prop.mp = '-' end if not prop.call then prop.call = '-' end if not prop.spell then prop.spell = '-' else if not data.skills[prop.spell] then prop.spell = prop.spell else prop.spell = '' .. prop.spell .. ' '			end end if not prop.spell then prop.spell = prop.spell end result = result .. styles.table2 .. styles.h .. '|Number' .. styles.h .. '|Element' .. styles.h .. '|Weakness' .. styles.h .. '|Type' .. styles.h .. '|Level' .. styles.h .. '|HP' .. styles.h .. '|MP\n|-' .. styles.statlow .. prop.number .. styles.statlow .. prop.element .. styles.statlow .. prop.weak .. styles.statlow .. prop.race .. styles.statlow .. prop.level .. styles.statlow .. prop.hp .. styles.statlow .. prop.mp .. '\n|}' result = result .. styles.table2 .. styles.h .. 'title="Attack"|ATK' .. styles.h .. 'title="Magic"|MGC' .. styles.h .. 'title="Defense"|DEF' .. styles.h .. 'title="Resistance"|RES' .. styles.h .. 'title="Speed"|SPD' .. styles.h .. '|Quick' .. styles.h .. '|Call' .. styles.h .. '|Spell\n|-' .. styles.statlow .. prop.atk .. styles.statlow .. prop.magic .. styles.statlow .. prop.def .. styles.statlow .. prop.res .. styles.statlow .. prop.agl .. styles.statlow .. prop.quick .. styles.statlow .. prop.call .. styles.statlow .. prop.spell .. '\n|}' .. cate(prop.race .. ' Type') .. bossdemoncat(prop.boss,getGames.games[game].name2) end if gameg == 'smtsj' then if not prop.noa then prop.noa = '-' end if not prop.phys then prop.phys = '-' end if not prop.pierce then prop.pierce = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.wind then prop.wind = '-' end if not prop.expel then prop.expel = '-' end if not prop.curse then prop.curse = '-' end if not prop.alm then prop.alm = '-' end if not prop.poison then prop.poison = '-' end if not prop.paralyze then prop.paralyze = '-' end if not prop.stone then prop.stone = '-' end if not prop.strain then prop.strain = '-' end if not prop.sleep then prop.sleep = '-' end if not prop.charm then prop.charm = '-' end if not prop.mute then prop.mute = '-' end if not prop.fear then prop.fear = '-' end if not prop.bomb then prop.bomb = '-' end if not prop.rage then prop.rage = '-' end result = result .. styles.table2 .. styles.h .. '|Attack Type' .. styles.h .. 'width=7% title="Physical"|' .. styles.h .. 'width=7% title="Gun"|' .. styles.h .. 'width=7% title="Fire"|' .. styles.h .. 'width=7% title="Ice"|' .. styles.h .. 'width=7% title="Electricity"|' .. styles.h .. 'width=7% title="Wind"|' .. styles.h .. 'width=7% title="Expel"|' .. styles.h .. 'width=7% title="Curse"|' .. styles.h .. 'width=7% title="Almighty"|\n|-\n' result = result .. styles.statlow .. prop.noa .. styles.statlow .. prop.phys .. styles.statlow .. prop.pierce .. styles.statlow .. prop.fire .. styles.statlow .. prop.ice .. styles.statlow .. prop.elec .. styles.statlow .. prop.wind .. styles.statlow .. prop.expel .. styles.statlow .. prop.curse .. styles.statlow .. prop.alm .. '\n|}' result = result .. styles.table2 .. styles.h .. 'width=10%|Poison' .. styles.h .. 'width=10%|Paralyze' .. styles.h .. 'width=10%|Stone' .. styles.h .. 'width=10%|Strain' .. styles.h .. 'width=10%|Sleep' .. styles.h .. 'width=10%|Charm' .. styles.h .. 'width=10%|Mute' .. styles.h .. 'width=10%|Fear' .. styles.h .. 'width=10%|Bomb' .. styles.h .. 'width=10%|Rage\n|-\n' result = result .. styles.statlow .. prop.poison .. styles.statlow .. prop.paralyze .. styles.statlow .. prop.stone .. styles.statlow .. prop.strain .. styles.statlow .. prop.sleep .. styles.statlow .. prop.charm .. styles.statlow .. prop.mute .. styles.statlow .. prop.fear .. styles.statlow .. prop.bomb .. styles.statlow .. prop.rage .. '\n|}' end if gameg == 'desu1' or gameg == 'desu2' then if not prop.racial then prop.racial = '-' end if not prop.phys then prop.phys = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.force then prop.force = '-' end if not prop.mystic then prop.mystic = '-' end result = result .. styles.table2 .. styles.h .. '|' .. styles.spanc .. 'Racial / ' .. styles.spanc .. 'Auto Skill' .. styles.h .. 'width=12% title="Physical"| Phys' .. styles.h .. 'width=12% title="Fire"| Fire' .. styles.h .. 'width=12% title="Ice"| Ice' .. styles.h .. 'width=12% title="Electricity"| Elec' .. styles.h .. 'width=12% title="Force"| Force' .. styles.h .. 'width=12% title=' if gameg == 'desu1' then result = result .. '"Mystic"| Mystic' elseif gameg == 'desu2' then result = result .. '"Curse"| Curse' end result = result .. '\n|-\n' .. styles.statlow .. prop.racial .. styles.statlow .. prop.phys .. styles.statlow .. prop.fire .. styles.statlow .. prop.ice .. styles.statlow .. prop.elec .. styles.statlow .. prop.force .. styles.statlow .. prop.mystic .. '\n|}' end if gameg == 'ronde' or gameg == 'p3' or gameg == 'p4' then if prop.sword or prop.strike or prop.pierce or prop.phys or prop.fire or prop.ice or prop.elec or prop.wind or prop.expel or prop.dark or prop.alm or prop.xp or prop.yen then result = result .. styles.table2 if not prop.sword then prop.sword = '-' end if not prop.strike then prop.strike = '-' end if not prop.pierce then prop.pierce = '-' end if not prop.phys then prop.phys = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.wind then prop.wind = '-' end if not prop.expel then prop.expel = '-' end if not prop.dark then prop.dark = '-' end if not prop.alm then prop.alm = '-' end if not prop.xp then prop.xp = '-' end if not prop.yen then prop.yen = '-' end if gameg == 'ronde' then result = result .. styles.h .. '|Slash' .. styles.h .. '|Strike' .. styles.h .. '|Ranged' elseif gameg == 'p3' then result = result .. styles.h .. '|Slash' .. styles.h .. '|Strike' .. styles.h .. '|Pierce' elseif gameg == 'p4' then result = result .. styles.h .. '|Physical' end result = result .. styles.h .. '|Fire' .. styles.h .. '|Ice' .. styles.h .. 'title="Electricity"|Elec' if gameg == 'p3' or gameg == 'p4' then result = result .. styles.h .. '|Wind' end result = result .. styles.h .. '|Light' .. styles.h .. '|Dark' .. styles.h .. '|Almighty' if gameg == 'p4' then result = result .. styles.h .. '|EXP' .. styles.h .. '|Yen' end result = result .. '\n|-\n' if gameg == 'ronde' or gameg == 'p3' then result = result .. styles.statlow .. prop.sword .. styles.statlow .. prop.strike .. styles.statlow .. prop.pierce elseif gameg == 'p4' then result = result .. styles.statlow .. prop.phys end result = result .. styles.statlow .. prop.fire .. styles.statlow .. prop.ice .. styles.statlow .. prop.elec if gameg == 'p3' or gameg == 'p4' then result = result .. styles.statlow .. prop.wind end result = result .. styles.statlow .. prop.expel .. styles.statlow .. prop.dark .. styles.statlow .. prop.alm if gameg == 'p4' then result = result .. styles.statlow .. prop.xp .. styles.statlow .. prop.yen end result = result .. '\n|}' elseif prop.inherit or prop.resist or prop.block or prop.absorb or prop.reflect or prop.weak then result = result .. styles.table2 if not prop.inherit then prop.inherit = '-' end if not prop.resist then prop.resist = '-' end if not prop.block then prop.block = '-' end if not prop.absorb then prop.absorb = '-' end if not prop.reflect then prop.reflect = '-' end if not prop.weak then prop.weak = '-' else prop.weak = ' ' .. prop.weak .. ' ' end result = result .. styles.h .. '|Inherit' .. styles.h .. '|Reflects' .. styles.h .. '|Absorbs' .. styles.h .. '|Block' .. styles.h .. '|Resists' .. styles.h .. '|Weak\n|-\n' .. styles.statlow .. prop.inherit .. styles.statlow .. prop.reflect .. styles.statlow .. prop.absorb .. styles.statlow .. prop.block .. styles.statlow .. prop.resist .. styles.statlow .. prop.weak .. '\n|}' end end if gameg == 'p3' and (prop.card or prop.preturn) then result = result .. styles.table2 if prop.card then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Skill Card ' .. styles.order .. '' .. prop.card .. ' '		end if prop.preturn then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Heart Item ' .. styles.order .. prop.preturn end result = result .. '\n|}' end if (gameg == 'p2is' or gameg == 'p2ep') and (prop.exclusive or prop.traits or prop.convo) then result = result .. styles.table2 if prop.exclusive then result = result .. styles.h .. 'width=90px|Exclusive to' .. styles.order .. prop.exclusive end if prop.traits then result = result .. styles.h .. 'width=50px|' .. styles.spanc .. 'Traits ' .. styles.order .. prop.traits end if prop.convo then result = result .. styles.h .. 'width=50px|' .. styles.spanc .. 'Ptalk ' .. styles.order .. prop.convo end result = result .. '\n|}' end if (gameg == 'p2is' or gameg == 'p2ep') and prop.profile then result = result .. styles.table2b .. styles.quote .. '"|' .. string.gsub(prop.profile, '!!', '‼') .. '\n|}'	end	result = result .. '\n|}' -- End of image span.	if game == 'kmt1' and prop.normal ~= '' then		result = result .. styles.table2 .. styles.h .. 'width=60px|' .. styles.spanc .. 'Drop ' .. styles.order .. prop.normal .. '\n|}'	end	if game == 'smt1' and (prop.resist or prop.normal) then		result = result .. styles.table2		if prop.resist then result = result .. styles.h .. 'width=100px|Resistances' .. styles.order .. prop.resist end		if prop.normal then result = result .. styles.h .. 'width=60px|' .. styles.spanc .. 'Drop ' .. styles.order .. prop.normal end		result = result .. '\n|}'	end	if (game == 'smt2' or gameg == 'smtif') and (prop.normal or prop.inherit or prop.moon) then		result = result .. styles.table2		if prop.normal then result = result .. styles.h .. 'width=60px|' .. styles.spanc .. 'Drop ' .. styles.order .. prop.normal end if prop.inherit then result = result .. styles.h .. 'width=70px|Inherit' .. styles.order .. prop.inherit end if prop.moon then result = result .. styles.h .. 'width=80px|' .. styles.spanc .. 'Moon Aff ' .. styles.order .. prop.moon end result = result .. '\n|}' end if gameg == 'smtif' and prop.resist then result = result .. styles.table2 .. styles.h .. 'width=90px|Resistances' .. styles.order .. prop.resist .. '\n|}' end if game == 'smtim' then if not prop.seealso then prop.seealso = mw.title.getCurrentTitle.text end result = result .. styles.table2 .. styles.h .. 'width=50px|Features' .. styles.order .. prop.feature .. styles.h .. 'width=60px|See also' .. styles.order .. '[http://megaten.sesshou.com/wiki/index.php/' .. string.gsub(prop.seealso, ' ', '_') .. ']\n|}' end if prop.restype then if (gameg == 'mt1' or gameg == 'mt2') then gameg = 'kmt' result = result .. styles.table2 .. styles.h .. 'title="Sword"|Swd' .. styles.h .. 'title="Gun"|Gun' .. styles.h .. 'title="Fire"|Fir' .. styles.h .. 'title="Ice"|Ice' .. styles.h .. 'title="Electricity"|Elc' .. styles.h .. 'title="Expel"|Exp' .. styles.h .. 'title="Force"|For' .. styles.h .. 'title="Bind"|Bnd' .. styles.h .. 'title="Curse"|Crs' .. styles.h .. 'title="Nerve"|Nrv' .. styles.h .. 'title="Mind"|Mnd\n|-' elseif game == 'smt1' then result = result .. styles.table2 .. styles.h .. 'title="Sword"|Swd' .. styles.h .. 'title="Gun"|Gun' .. styles.h .. 'title="Fire"|Fir' .. styles.h .. 'title="Ice"|Ice' .. styles.h .. 'title="Electricity"|Elc' .. styles.h .. 'title="Force"|For' .. styles.h .. 'title="Nerve"|Nrv' .. styles.h .. 'title="Expel"|Exp' .. styles.h .. 'title="Curse"|Crs' .. styles.h .. 'title="Magical"|Mgc' .. styles.h .. 'title="Bind"|Bnd' .. styles.h .. 'title="Charge"|Chg' .. styles.h .. 'title="Dex"|Dex' .. styles.h .. 'title="Needle"|Ndl' .. styles.h .. 'title="Almighty"|Alm\n|-' elseif game == 'smt2' or game == 'smtif' then result = result .. styles.table2 .. styles.h .. 'title="Sword"|Swd' .. styles.h .. 'title="Gun"|Gun' .. styles.h .. 'title="Fire"|Fir' .. styles.h .. 'title="Ice"|Ice' .. styles.h .. 'title="Electricity"|Elc' .. styles.h .. 'title="Force"|For' .. styles.h .. 'title="Nerve"|Nrv' .. styles.h .. 'title="Expel"|Exp' .. styles.h .. 'title="Curse"|Crs' .. styles.h .. 'title="Magical"|Mgc' .. styles.h .. 'title="Bind"|Bnd' .. styles.h .. 'title="Rush"|Rsh' .. styles.h .. 'title="Hand/Punch Techniques"|Hnd' .. styles.h .. 'title="Leg/Kick Techniques"|Leg' .. styles.h .. 'title="Flying/Throwing Techniques"|Fly' .. styles.h .. 'title="Almighty"|Alm\n|-' end if require('Module:Skills/' .. gameg .. '/res').restypes[prop.restype] == nil then result = result .. '\n|colspan=16 align=center style="color:#f00;font-size:120%;font-weight:bold"|Invalid value of "' .. prop.restype .. '" for restype. Correct value or edit Module:Skills/' .. gameg .. '/res.' else for i, v in ipairs(require('Module:Skills/' .. gameg .. '/res').restypes[prop.restype]) do				if v == 'dr' or v == 'ab' then v = 'color:lime" title="Drain"|Dr'				elseif v == 'rp' or v == 'rf' then					v = 'color:cyan" title="Reflect"|Rf' elseif v == '50dr' or v == '50ab' or v == 'dr50' or v == 'ab50' then v = 'color:lime" title="50% Drain"| ½ Dr'				elseif v == '50rp' or v == '50rf' or v == 'rp50' or v == 'rf50' then					v = 'color:cyan" title="50% Reflect"| ½ Rf' elseif tonumber(v) == 0 then v = 'color:white" title="Null"|Nu'				elseif tonumber(v) == 1 then					v = '" title="Normal"| -' elseif tonumber(v) < 1 then v = 'color:teal" title="Resist"|' .. frac((tonumber(v) * 8),8)				elseif tonumber(v) > 2 then					v = 'color:red" title="Weak"|' .. v .. '×'				elseif tonumber(v) > 1.1 then v = 'color:orange" title="Vulnerable"|' .. v .. '×'				end				result = result .. styles.statlow3 .. v			end		end		result = result .. '\n|}'	end	if gameg == 'p1' and (prop.onehand or prop.twohand or prop.spear or prop.axe or prop.whip or prop.thrown or prop.arrow or prop.fist or prop.handgun or prop.machinegun or prop.shotgun or prop.rifle or prop.tech or prop.rush or prop.fire or prop.ice or prop.wind or prop.earth or prop.elec or prop.nuclear or prop.blast or prop.gravity or prop.expel or prop.miracle or prop.death or prop.curse or prop.nerve or prop.hiero) then		if not prop.onehand then prop.onehand = '-' end		if not prop.twohand then prop.twohand = '-' end		if not prop.spear then prop.spear = '-' end		if not prop.axe then prop.axe = '-' end		if not prop.whip then prop.whip = '-' end		if not prop.thrown then prop.thrown = '-' end		if not prop.arrow then prop.arrow = '-' end		if not prop.fist then prop.fist = '-' end if not prop.handgun then prop.handgun = '-' end if not prop.machinegun then prop.machinegun = '-' end if not prop.shotgun then prop.shotgun = '-' end if not prop.rifle then prop.rifle = '-' end if not prop.tech then prop.tech = '-' end if not prop.rush then prop.rush = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.wind then prop.wind = '-' end if not prop.earth then prop.earth = '-' end if not prop.elec then prop.elec = '-' end if not prop.nuclear then prop.nuclear = '-' end if not prop.blast then prop.blast = '-' end if not prop.gravity then prop.gravity = '-' end if not prop.expel then prop.expel = '-' end if not prop.miracle then prop.miracle = '-' end if not prop.death then prop.death = '-' end if not prop.curse then prop.curse = '-' end if not prop.nerve then prop.nerve = '-' end if not prop.hiero then prop.hiero = '-' end result = result .. styles.table2 .. '\n!style="background:#a9a9a9" title="Weapons" colspan="8"|\n!title="Firearms" style="background:#898989" colspan="4"|\n!style="background:#a9a9a9" title="Havoc" colspan="2"|\n|-' .. styles.h .. 'title="Weapons"|1h ' .. styles.h .. 'title="Weapons"|<abbr title="2-handed Sword">2h ' .. styles.h .. 'title="Weapons"|<abbr title="Spear">Sp ' .. styles.h .. 'title="Weapons"|<abbr title="Axe">Ax ' .. styles.h .. 'title="Weapons"|<abbr title="Whip">Wp ' .. styles.h .. 'title="Weapons"|<abbr title="Thrown">Th ' .. styles.h .. 'title="Weapons"|<abbr title="Arrows">Ar ' .. styles.h .. 'title="Weapons"|<abbr title="Fist">Fs ' .. styles.h .. 'title="Firearms" style="background:#898989;width:7.12%"|<abbr title="Handgun">HG ' .. styles.h .. 'title="Firearms" style="background:#898989;width:7.12%"|<abbr title="Machinegun">MG ' .. styles.h .. 'title="Firearms" style="background:#898989;width:7.12%"|<abbr title="Shotgun">SG ' .. styles.h .. 'title="Firearms" style="background:#898989;width:7.12%"|<abbr title="Rifle">Ri ' .. styles.h .. 'title="Havoc"|<abbr title="Tech">Te ' .. styles.h .. 'title="Havoc"|<abbr title="Rush">Ru \n|-\n' .. styles.statlow .. prop.onehand .. styles.statlow .. prop.twohand .. styles.statlow .. prop.spear .. styles.statlow .. prop.axe .. styles.statlow .. prop.whip .. styles.statlow .. prop.thrown .. styles.statlow .. prop.arrow .. styles.statlow .. prop.fist .. styles.statlow .. prop.handgun .. styles.statlow .. prop.machinegun .. styles.statlow .. prop.shotgun .. styles.statlow .. prop.rifle .. styles.statlow .. prop.tech .. styles.statlow .. prop.rush result = result .. '\n|-\n!style="background:#a9a9a9" title="Element" colspan="4"|\n!style="background:#898989" title="Force" colspan="4"|\n!style="background:#a9a9a9" title="Light" colspan="2"|\n!style="background:#898989" title="Dark" colspan="3"|\n!style="background:#a9a9a9" title="Special" colspan="1"|\n|-' .. styles.h .. 'width="7.12%" title="Element"|<abbr title="Fire">Fi ' .. styles.h .. 'width="7.12%" title="Element"|<abbr title="Ice">Ic ' .. styles.h .. 'width="7.12%" title="Element"|<abbr title="Wind">Wi ' .. styles.h .. 'width="7.12%" title="Element"|<abbr title="Earth">Er ' .. styles.h .. 'style="background:#898989;width:7.12%" title="Force"|<abbr title="Electricity">El ' .. styles.h .. 'style="background:#898989;width:7.12%" title="Force"|<abbr title="Nuclear">Nc ' .. styles.h .. 'style="background:#898989;width:7.12%" title="Force"|<abbr title="Blast">Bl ' .. styles.h .. 'style="background:#898989;width:7.12%" title="Force"|<abbr title="Gravity">Gr ' .. styles.h .. 'title="Light"|<abbr title="Expel">Ex ' .. styles.h .. 'title="Light"|<abbr title="Miracle">Mi ' .. styles.h .. 'style="background:#898989" title="Dark"|<abbr title="Death">De ' .. styles.h .. 'style="background:#898989" title="Dark"|<abbr title="Curse">Cu ' .. styles.h .. 'style="background:#898989;width:7.12%" title="Dark (Ailments)"|<abbr title="Nerve">Nr ' .. styles.h .. 'width="7.12%" title="Special"|<abbr title="Resistance to Hieroglyphein">??? \n|-\n' .. styles.statlow .. prop.fire .. styles.statlow .. prop.ice .. styles.statlow .. prop.wind .. styles.statlow .. prop.earth .. styles.statlow .. prop.elec .. styles.statlow .. prop.nuclear .. styles.statlow .. prop.blast .. styles.statlow .. prop.gravity .. styles.statlow .. prop.expel .. styles.statlow .. prop.miracle .. styles.statlow .. prop.death .. styles.statlow .. prop.curse .. styles.statlow .. prop.nerve .. styles.statlow .. prop.hiero .. '\n|}' end if (gameg == 'p2is' or gameg == 'p2ep') and (prop.atk or prop.def or prop.matk or prop.mdef or prop.str or prop.vit or prop.dex or prop.agl or prop.luc) then styles.barc = getGames.games[gameg].colorbg if gameg == 'p2is' then prop.dx_h = '|Dexterity' else prop.dx_h = '|Technique' end result = result .. styles.table2 .. styles.h .. 'title="Physical Attack Power"|Atk' .. styles.h .. 'title="Physical Defense"|Def' .. styles.h .. 'title="Magical Power"|Matk' .. styles.h .. 'title="Magical Defense"|Mdef' .. styles.bart11 .. '324px' .. styles.bart12 .. '0.8"' .. styles.barh .. '|Strength' .. styles.bard2 .. bar(styles.barc,prop.str,2.4,99) .. styles.barh .. '|Vitality' .. styles.bard2 .. bar(styles.barc,prop.vit,2.4,99) .. styles.barh .. prop.dx_h .. styles.bard2 .. bar(styles.barc,prop.dex,2.4,99) .. styles.barh .. '|Agility' .. styles.bard2 .. bar(styles.barc,prop.agl,2.4,99) .. styles.barh .. '|Luck' .. styles.bard2 .. bar(styles.barc,prop.luc,2.4,99) .. '\n|}\n|-'		if not prop.atk or prop.atk ==  then prop.atk = '?' end		if not prop.def or prop.def ==  then prop.def = '?' end		if not prop.matk or prop.matk ==  then prop.matk = '?' end		if not prop.mdef or prop.mdef ==  then prop.mdef = '?' end		result = result .. '\n|-\n' .. styles.statlow .. prop.atk .. styles.statlow .. prop.def .. styles.statlow .. prop.matk .. styles.statlow .. prop.mdef .. '\n|}'	end	if (gameg == 'smt3' or gameg == 'sh' or gameg == 'p2is' or gameg == 'p2ep' or gameg == 'pq' or gameg == 'ddsaga1' or gameg == 'ddsaga2') and (prop.resist or prop.block or prop.absorb or prop.reflect or prop.weak or prop.boost or prop.wild) then result = result .. styles.table2 if not prop.resist then prop.resist = '-' end if not prop.block then prop.block = '-' end if not prop.absorb then prop.absorb = '-' end if not prop.reflect then prop.reflect = '-' end if not prop.weak then prop.weak = '-' else prop.weak = ' ' .. prop.weak .. ' ' end result = result .. styles.h .. '|Reflects' .. styles.h .. '|Absorbs' .. styles.h .. '|Void' .. styles.h .. '|Resists' .. styles.h .. '|Weak' if prop.boost then result = result .. styles.h .. '|Boost' end result = result .. '\n|-\n' .. styles.statlow .. prop.reflect .. styles.statlow .. prop.absorb .. styles.statlow .. prop.block .. styles.statlow .. prop.resist .. styles.statlow .. prop.weak if prop.boost then result = result .. styles.statlow .. prop.boost end result = result .. '\n|}' end if (gameg == 'p2is' or gameg == 'p2ep') and (prop.sword or prop.pierce or prop.strike or prop.thrown or prop.rush or prop.fire or prop.water or prop.wind or prop.earth or prop.ice or prop.elec or prop.nuclear or prop.expel or prop.dark or prop.alm or prop.nerve or prop.mind) then result = result .. styles.table2 if not prop.sword then prop.sword = '-' end if not prop.pierce then prop.pierce = '-' end if not prop.strike then prop.strike = '-' end if not prop.thrown then prop.thrown = '-' end if not prop.rush then prop.rush = '-' end if not prop.fire then prop.fire = '-' end if not prop.water then prop.water = '-' end if not prop.wind then prop.wind = '-' end if not prop.earth then prop.earth = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.nuclear then prop.nuclear = '-' end if not prop.expel then prop.expel = '-' end if not prop.dark then prop.dark = '-' end if not prop.alm then prop.alm = '-' end if not prop.nerve then prop.nerve = '-' end if not prop.mind then prop.mind = '-' end if prop.etype == 'Fire' then prop.Fi = ' Fi ' else prop.Fi = 'Fi' end if prop.etype == 'Water' then prop.Wt = ' Wt ' else prop.Wt = 'Wt' end if prop.etype == 'Wind' then prop.Wi = ' Wi ' else prop.Wi = 'Wi' end if prop.etype == 'Earth' then prop.Er = ' Er ' else prop.Er = 'Er' end if gameg == 'p2ep' then prop.name_Rn = 'title="Shot"|Sh' prop.name_Hv = 'title="Attack"|Ak' prop.name_El = 'title="Lightning"|Ln' prop.name_Li = 'title="Holy"|Ho' else prop.name_Rn = 'title="Ranged"|Rn' prop.name_Hv = 'title="Havoc"|Hv' prop.name_El = 'title="Electricity"|El' prop.name_Li = 'title="Light"|Li' end result = result .. styles.h .. 'title="Sword"|Sw' .. styles.h .. prop.name_Rn .. styles.h .. 'title="Strike"|Sk' .. styles.h .. 'title="Thrown"|Th' .. styles.h .. prop.name_Hv .. styles.h .. 'style="background:#8E283D" title="Fire"|' .. prop.Fi .. styles.h .. 'style="background:#8E283D" title="Water"|' .. prop.Wt .. styles.h .. 'style="background:#8E283D" title="Wind"|' .. prop.Wi .. styles.h .. 'style="background:#8E283D" title="Earth"|' .. prop.Er .. styles.h .. 'title="Ice"|Ic' .. styles.h .. prop.name_El .. styles.h .. 'title="Nuclear"|Nc' .. styles.h .. prop.name_Li .. styles.h .. 'title="Dark"|Dk' .. styles.h .. 'title="Almighty"|Al' .. styles.h .. 'title="Nerve"|Nr' .. styles.h .. 'title="Mind"|Mn\n|-\n' result = result .. styles.statlow .. prop.sword .. styles.statlow .. prop.pierce .. styles.statlow .. prop.strike .. styles.statlow .. prop.thrown .. styles.statlow .. prop.rush .. styles.statlow .. prop.fire .. styles.statlow .. prop.water .. styles.statlow .. prop.wind .. styles.statlow .. prop.earth .. styles.statlow .. prop.ice .. styles.statlow .. prop.elec .. styles.statlow .. prop.nuclear .. styles.statlow .. prop.expel .. styles.statlow .. prop.dark .. styles.statlow .. prop.alm .. styles.statlow .. prop.nerve .. styles.statlow .. prop.mind .. '\n|}' end if gameg == 'pq' and (prop.sword or prop.pierce or prop.strike or prop.fire or prop.water or prop.elec or prop.wind or prop.expel or prop.dark or prop.alm or prop.ko or prop.sleep or prop.panic or prop.poison or prop.paralyze or prop.down or prop.stbind or prop.mabind or prop.agbind) then result = result .. styles.table2 if not prop.sword then prop.sword = '-' end if not prop.pierce then prop.pierce = '-' end if not prop.strike then prop.strike = '-' end if not prop.fire then prop.fire = '-' end if not prop.ice then prop.ice = '-' end if not prop.elec then prop.elec = '-' end if not prop.wind then prop.wind = '-' end if not prop.expel then prop.expel = '-' end if not prop.dark then prop.dark = '-' end if not prop.alm then prop.alm = '-' end if not prop.sleep then prop.sleep = '-' end if not prop.panic then prop.panic = '-' end if not prop.poison then prop.poison = '-' end if not prop.curse then prop.curse = '-' end if not prop.paralyze then prop.paralyze = '-' end if not prop.stbind then prop.stbind = '-' end if not prop.mabind then prop.mabind = '-' end if not prop.agbind then prop.agbind = '-' end if not prop.down then prop.down = '-' end if not prop.ko then prop.ko = '-' end result = result .. styles.h .. '|Cut' .. styles.h .. '|Stab' .. styles.h .. '|Bash' .. styles.h .. '|Fire' .. styles.h .. '|Ice' .. styles.h .. 'title="Electricity"|Elec' .. styles.h .. '|Wind' .. styles.h .. '|Light' .. styles.h .. '|Dark' .. styles.h .. 'title="Almighty"|Alm\n|-\n' .. styles.statlow .. prop.sword .. styles.statlow .. prop.pierce .. styles.statlow .. prop.strike .. styles.statlow .. prop.fire .. styles.statlow .. prop.ice .. styles.statlow .. prop.elec .. styles.statlow .. prop.wind .. styles.statlow .. prop.expel .. styles.statlow .. prop.dark .. styles.statlow .. prop.alm .. '\n|}' result = result .. styles.table2 .. styles.h .. '|Sleep' .. styles.h .. '|Panic' .. styles.h .. '|Poison' .. styles.h .. '|Curse' .. styles.h .. '|Paralysis' .. styles.h .. 'title="Strength Bind"|St Bind' .. styles.h .. 'title="Magic Bind"|Ma Bind' .. styles.h .. 'title="Agility Bind"|Ag Bind' .. styles.h .. '|Down' .. styles.h .. 'title="Instant Kill"|KO\n|-' .. styles.statlow .. prop.sleep .. styles.statlow .. prop.panic .. styles.statlow .. prop.poison .. styles.statlow .. prop.curse .. styles.statlow .. prop.paralyze .. styles.statlow .. prop.stbind .. styles.statlow .. prop.mabind .. styles.statlow .. prop.agbind .. styles.statlow .. prop.down .. styles.statlow .. prop.ko .. '\n|}' end if gameg == 'p2is' or gameg == 'p2ep' then if prop.card or prop.material or prop.type1 or prop.type2 or prop.type3 then result = result .. styles.table2 .. styles.h .. 'colspan=4|Summon Information\n|-' if prop.material then result = result .. styles.skill .. '' .. styles.spanc .. 'Material Card ' .. styles.effect1 .. ' ' .. prop.material .. ' Card' end if prop.card then result = result .. styles.skillc .. '' .. styles.spanc .. 'Tarot Cards ' .. styles.effect1 .. ' ' .. prop.card .. ' ' .. prop.arcana .. ' Cards' end local effect1 if prop.material then effect1 = '\n|colspan=3 style="background:#222;text-align:left"|' else effect1 = styles.effect1 end if prop.type1 then result = result .. styles.skill .. prop.type1 .. effect1 .. prop.desc1 end if prop.type2 then result = result .. styles.skill .. prop.type2 .. effect1 .. prop.desc2 end if prop.type3 then result = result .. styles.skill .. prop.type3 .. effect1 .. prop.desc3 end result = result .. '\n|}' end end if gameg == 'smt3' and (prop.recruit~= or prop.obtain~= or prop.evolvef or prop.evolvet or prop.fusion) then prop.recruit = prop.recruit:lower if prop.recruit == 'yes' or prop.recruit == 'recruit' then prop.recruit = '<abbr title="Can be recruited in normal battle or obtained from conventional fusion.">Normal recruit or fusion ' elseif prop.recruit == 'dark recruit' then prop.recruit = '<abbr title="Can be obtained via conventional fusion or recruited in normal battle under Full Kagutsuchi with fair chance.">Full Kagutsuchi recruitment or fusion ' elseif prop.recruit == 'dark' then prop.recruit = '<abbr title="Can only be obtained via fusion. Open to non-recruitment conversation in normal battle.">Fusion only. Open to trading. '		elseif prop.recruit == 'fusion' then prop.recruit = '<abbr title="Can only be obtained via conventional fusion.">Fusion only ' elseif prop.recruit == 'special' or prop.recruit == 'special fusion' then prop.recruit = '<abbr title="Can only be obtained via special fusion.">Special fusion only ' elseif prop.recruit == 'evolve' or prop.recruit == 'evolution' then prop.recruit = '<abbr title="Can only be obtained via evolution from another demon.">Evolution only ' elseif prop.recruit == 'evolve neutral' or prop.recruit == 'neutral evolution' then prop.recruit = '<abbr title="Can be recruited in normal battle or obtained via evolution from another demon. Cannot be created via fusion.">Normal recruit or evolution ' elseif prop.recruit == 'evolve dark' or prop.recruit == 'dark evolution' then prop.recruit = '<abbr title="Can only be obtained via evolution from another demon. Cannot be created via fusion. Open to non-recruitment conversation in normal battle.">Evolution only. Open to trading. '		elseif prop.recruit == 'boss fusion' then prop.recruit = '<abbr title="Can only be obtained via fusion after defeating it in boss battle.">Fusion only after boss battle ' elseif prop.recruit == 'boss special' or prop.recruit == 'boss special fusion' then prop.recruit = '<abbr title="Can only be obtained via special fusion after defeating it in boss battle.">Special fusion only after boss battle ' elseif prop.recruit == 'boss evolve' or prop.recruit == 'boss evolution' then prop.recruit = '<abbr title="Can only be obtained via evolution after defeating it in battle.">Evolution only after boss battle ' elseif prop.recruit == 'dark boss fusion' then prop.recruit = '<abbr title="Can only be obtained via fusion after defeating it in boss battle. Open to non-recruitment conversation in normal battle.">Fusion only after boss battle. Open to trading. '		elseif prop.recruit == 'dark boss special fusion' then prop.recruit = '<abbr title="Can only be obtained via special fusion after defeating it in boss battle. Open to non-recruitment conversation in normal battle.">Special fusion only after boss battle. Open to trading. '		elseif prop.recruit == 'dark boss evolve' then prop.recruit = '<abbr title="Can only be obtained via evolution after defeating it in battle. Open to non-recruitment conversation in normal battle.">Evolution only after boss battle. Open to trading. '		elseif prop.recruit == 'samael' then prop.recruit = '<abbr title="Can only be obtained via special fusion after defeating it in boss battle or choosing Shijima Reason after meeting with Ahriman in Kagutsuchi Tower.">Choose Shijima Reason or perform special fusion only after boss battle. '		elseif prop.recruit == 'thor' then prop.recruit = '<abbr title="Can only be obtained via fusion after defeating him at Tower of Kagutsuchi.">Fusion only after boss battle at Tower of Kagutsuchi ' elseif prop.recruit == 'bishamon' then prop.recruit = '<abbr title="Can only be obtained via fusion after defeating him at Bandou Shrine.">Fusion only after boss battle at Bandou Shrine ' elseif prop.recruit == 'futomimi' or prop.recruit == 'sakahagi' then prop.recruit = 'Fusion only after boss battle and completing the revival side quest.' elseif prop.recruit == 'raidou' or prop.recruit == 'dante' then prop.recruit = '<abbr title="Can only be recruited in story plot.">Plot related ' elseif prop.recruit == 'unique' or prop.recruit == 'exclusive' or prop.recruit == 'enemy' or prop.recruit == 'enemy only' or prop.recruit == 'enemy exclusive' then prop.recruit = 'Enemy only' end if prop.recruit or prop.obtain or prop.convo then result = result .. styles.table2 .. styles.h if prop.recruit or prop.obtain then result = result .. 'width=80px|Obtainable' .. styles.order .. prop.recruit .. prop.obtain end if prop.convo then result = result .. styles.h .. 'width=146px|'..styles.spanc..'Special conversation ' .. styles.order .. prop.convo end result = result .. '\n|}' end if prop.evolvef or prop.evolvet or prop.fusion then result = result .. styles.table2 if prop.evolvef then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Evolved from ' .. styles.order .. prop.evolvef end if prop.evolvet then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Evolves into ' .. styles.order .. prop.evolvet end if prop.fusion then result = result .. styles.h .. 'width=100px|' .. styles.spanc .. 'Special fusion ' .. styles.order .. prop.fusion end result = result .. '\n|}' end end local skill, alias, skillcell, skille, cost, effect, pre, range, power, target if prop.dskills then result = result .. styles.table2 .. styles.h .. 'colspan=3|' .. styles.spanc .. 'Default Skills ' .. styles.skill .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' for k, v in ipairs(mw.text.split(prop.dskills, '\n')) do			skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' cost = '' effect = noskill elseif not skill then skillcell = '' cost = '' effect = noskill(v,gamed) elseif skill then cost = skill.cost effect = skill.effect if (k % 2 == 0) then cost = styles.cost2 .. cost effect = styles.effect2 .. effect else cost = styles.cost1 .. cost effect = styles.effect1 .. effect end if skill.name then v = skill.name end skillcell = styles.skill .. v			end result = result .. skillcell .. cost .. effect end result = result .. '\n|}' end if prop.skills then result = result .. styles.table2h if game == 'mt1' or game == 'mt2' or game == 'kmt1' or game == 'kmt2' then result = result .. '"' .. styles.h .. 'colspan=4|' .. styles.spanc .. 'List of Spells '		elseif game == 'smtim' then			result = result .. 'mw-collapsible mw-collapsed"' .. styles.h .. 'colspan=4|' .. styles.spanc .. 'Learned Skills ' elseif gameg == 'smtsj' then result = result .. '"' .. styles.h .. 'colspan=3|' .. styles.spanc .. 'Natural Skills '		elseif gameg == 'ab' then			result = result .. '"' .. styles.h .. 'colspan=7|' .. styles.spanc .. 'Natural Skills ' elseif gameg == 'majin1' then result = result .. '"' .. styles.h .. 'colspan=7|' .. styles.spanc .. 'Magic Skills '		elseif gameg == 'majin2' then			result = result .. '"' .. styles.h .. 'colspan=6|' .. styles.spanc .. 'List of Skills ' elseif gameg == 'p5' then result = result .. '"\n!colspan=4 style="background-color: ' .. getGames.games[gameg].colorb .. ';background: linear-gradient(120deg, ' .. getGames.games[gameg].colorb .. ' 42%, #000 42.1%, #000 43%, #fff 43.1%, #fff 57%, #000 57.1%, #000 58%, ' .. getGames.games[gameg].colorb .. ' 58.1%"| List of Skills '		elseif gameg == 'desu1' or gameg == 'desu2' then			result = result .. '"' .. styles.h .. 'colspan=3|' .. styles.spanc .. 'Command Skills '		else			result = result .. '"' .. styles.h .. 'colspan=4|' .. styles.spanc .. 'List of Skills '		end		if game == 'mt1' or game == 'mt2' or gameg == 'giten' or gameg == 'smtsj' or gameg == 'smtds' or gameg == 'sh' or gameg == 'childred' or gameg == 'childblack' or gameg == 'childps' or gameg == 'childblack' or gameg == 'childwhite' or gameg == 'childfire' or gameg == 'childice' or gameg == 'desu1' or gameg == 'desu2' then			result = result .. '\n|-style="border:0"\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|' for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' or v == '-' or v == '--' then skillcell = '' elseif not skill then skillcell = styles.skill3 .. '"|' .. v				else					if skill.name then v = skill.name end					skillcell = styles.skill3 .. '" title="Cost: ' .. skill.cost .. '; ' .. string.gsub(string.gsub(skill.effect, '%[%[', ), '%]%]', ) .. '"|' .. v				end if (k == 7) then if prop.boss or prop.enemy then result = result .. '\n|-' .. skillcell else result = result .. '\n|-' .. styles.skill3m .. skillcell .. styles.skill3m end elseif (k % 3 == 1) then result = result .. '\n|-' .. skillcell else result = result .. skillcell end end elseif gameg == 'majin2' then result = result .. styles.skill .. 'Skill' .. styles.skillc .. 'Power' .. styles.skillc .. 'Range' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Target' .. styles.skillc .. 'Effect' for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' power = '' range = '' cost = '' target = '' effect = noskill elseif not skill then skillcell = '' power = '' range = '' cost = '' target = '' effect = noskill(v,gamed) elseif skill then if skill.cost == 'extra' then skill.cost = '<abbr title="No cost. Can only be used once until next full moon phase.">Extra ' elseif skill.cost == 'sextra' then skill.cost = '<abbr title="No cost. Power relative to physical attack power. Can only be used once until next full moon phase.">P. Extra ' elseif skill.cost == 'mextra' then skill.cost = '<abbr title="No cost. Power relative to magical attack power. Can only be used once until next full moon phase.">M. Extra ' end if (k % 2 == 0) then power = styles.cost2 .. skill.power range = styles.cost2 .. skill.range cost = styles.cost2 .. skill.cost target = styles.cost2 .. skill.target effect = styles.effect2 .. skill.effect else power = styles.cost1 .. skill.power range = styles.cost1 .. skill.range cost = styles.cost1 .. skill.cost target = styles.cost1 .. skill.target effect = styles.effect1 .. skill.effect end if skill.name then v = skill.name end skillcell = styles.skill .. v				end result = result .. skillcell .. power .. range .. cost .. target .. effect end elseif gameg == 'smt9' or gameg == '20xx' or gameg == 'lb3' or gameg == 'lbs' or gameg == 'ronde' or gameg == 'cs' then result = result .. '\n|-style="border:0"\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|' for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				if v == '' or v == '-' or v == '--' then skillcell = '' else skillcell = styles.skill3 .. '"|' .. v				end				if (k == 7) then					result = result .. '\n|-' .. styles.skill3m .. skillcell .. styles.skill3m				elseif (k % 3 == 1) then					result = result .. '\n|-' .. skillcell				else					result = result .. skillcell				end			end		elseif (game == 'kmt1' and not (prop.enemy or prop.boss)) or (game == 'kmt2' and not (prop.enemy or prop.boss)) or (gameg == 'smt1' and not (prop.enemy or prop.boss)) or (gameg == 'smt2' and not (prop.enemy or prop.boss)) or (gameg == 'smtif' and not (prop.enemy or prop.boss)) or (gameg == 'smt3' and (prop.enemy or prop.boss)) or (game == 'lb1' and not (prop.enemy or prop.boss))  or (game == 'lb2' and not (prop.enemy or prop.boss)) then -- skill - cost - effect			result = result .. styles.skill .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect'			for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				skill = data.skills[v]				if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' cost = '' effect = noskill elseif not skill then skillcell = '' cost = '' effect = noskill(v,gamed) elseif skill then if skill.phy then cost = 'none' else cost = skill.cost end effect = skill.effect if (k % 2 == 0) then cost = styles.cost2 .. cost effect = styles.effect2 .. effect else cost = styles.cost1 .. cost effect = styles.effect1 .. effect end if skill.name then v = skill.name end skillcell = styles.skill .. v				end result = result .. skillcell .. cost .. effect end elseif (gameg == 'smt4' and prop.guest == '2') or ((gameg == 'p1' or gameg == 'p2is' or gameg == 'p2ep' or gameg == 'p3' or gameg == 'p4') and prop.hp) or gameg == 'ddsaga1' or gameg == 'ddsaga2' or (gameg == 'pq' and prop.xp) or prop.boss or prop.enemy then -- skill - effect (optional: Inheritable Skill or Rumor Skill) result = result .. styles.skill .. 'Skill' .. styles.skillc .. 'Effect' for k1, v1 in ipairs(mw.text.split(prop.skills, '\n')) do for k2, v2 in ipairs(mw.text.split(v1 .. '\\', '\\')) do					if k2 > 2 then break elseif (k2 % 2 == 1) then skill = data.skills[v2] if not skill then alias = data.aliases[v2] if alias then v2 = alias skill = data.skills[v2] end end if skill then if skill.combo then skill.effect = '<div style="background:' .. getGames.games[gameg].colorbg .. ';border-radius:5px;float:left;margin-right:5px">Combo ' .. skill.effect end end if v2 == '' then skillcell = '' effect = noskill elseif not skill then skillcell = '' effect = noskill(v2,gamed) elseif skill then if (k1 % 2 == 0) then effect = styles.effect2 .. skill.effect else effect = styles.effect1 .. skill.effect end if skill.name then v2 = skill.name end skillcell = styles.skill .. v2						end result = result .. skillcell .. effect elseif (k2 % 2 == 0) then if v2 == 'I' or v2 == 'i' then result = result .. ' Inheritable Skill ' elseif v2 == 'R' or v2 == 'r' then result = result .. ' Rumor Skill  ' else result = result end end end end elseif gameg == 'childlight' then -- skill - element - cost - effect result = result .. styles.skill .. 'Skill' .. styles.skillc .. 'Element' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' skille = '' cost = '' effect = noskill elseif not skill then skillcell = '' skille = '' cost = '' effect = noskill(v,gamed) elseif skill then if (k % 2 == 0) then effect = styles.effect2 .. skill.effect skille = styles.cost2 .. skill.element cost = styles.cost2 .. skill.cost else effect = styles.effect1 .. skill.effect skille = styles.cost1 .. skill.element cost = styles.cost1 .. skill.cost end if skill.name then v = skill.name end skillcell = styles.skill .. v				end result = result .. skillcell .. skille .. cost .. effect end else if gameg == 'smtim' or gameg == 'ab' or gameg == 'p1' or gameg == 'p2is' or gameg == 'p2ep' then -- rank - skill - cost - effect result = result .. styles.skill if gameg == 'smtim' then result = result .. 'Level' .. styles.skillc .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' elseif gameg == 'ab' then result = result .. 'Level' .. styles.skillc .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Range' .. styles.skillc .. 'Power' .. styles.skillc .. 'Target' .. styles.skillc .. 'Effect' else result = result .. 'Rank' .. styles.skillc .. 'Skill' .. styles.skillc .. 'Effect' end for k1, v1 in ipairs(mw.text.split(prop.skills, '\n')) do for k2, v2 in ipairs(mw.text.split(v1 .. '\\', '\\')) do						if k2 > 2 then break elseif (k2 % 2 == 1) then if v2 == 'M' or v2 == 'm' then v2 = ' Mutation ' elseif v2 == 'R' or v2 == 'r' then v2 = ' Rumor ' else v2 = v2							end result = result .. styles.skill .. v2						elseif (k2 % 2 == 0) then skill = data.skills[v2] if not skill then alias = data.aliases[v2] if alias then v2 = alias skill = data.skills[v2] end end if v2 == '' then skillcell = '' cost = '' range = '' power = '' target = '' effect = noskill elseif not skill then skillcell = '' cost = '' range = '' power = '' target = '' effect = noskill(v2,gamed) elseif skill then if (k1 % 2 == 0) then if gameg == 'smtim' or gameg == 'ab' then cost = styles.cost2 .. skill.cost else cost = '' end if gameg == 'ab' then range = styles.cost2 .. skill.range power = styles.cost2 .. skill.power target = styles.cost2 .. skill.target else range = '' power = '' target = '' end effect = styles.effect2 .. skill.effect else if gameg == 'smtim' or gameg == 'ab' then cost = styles.cost1 .. skill.cost else cost = '' end if gameg == 'ab' then range = styles.cost1 .. skill.range power = styles.cost1 .. skill.power target = styles.cost1 .. skill.target else range = '' power = '' target = '' end effect = styles.effect1 .. skill.effect end if skill.name then v2 = skill.name end skillcell = styles.skillc .. v2							end result = result .. skillcell .. cost .. range .. power .. target .. effect end end end elseif gameg == 'majin1' then -- skill - cost - power - range - target - effect result = result .. styles.skill .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Power' .. styles.skillc .. 'Range' .. styles.skillc .. 'Target' .. styles.skillc .. 'Effect' for k, v in ipairs(mw.text.split(prop.skills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' cost = '' power = '' range = '' target = '' effect = noskill elseif not skill then skillcell = '' cost = '' power = '' range = '' target = '' effect = noskill(v,gamed) elseif skill then if (k % 2 == 0) then cost = styles.cost2 .. skill.cost power = styles.cost2 .. skill.power range = styles.cost2 .. skill.range target = styles.cost2 .. skill.target effect = styles.effect2 .. skill.effect else cost = styles.cost1 .. skill.cost power = styles.cost1 .. skill.power range = styles.cost1 .. skill.range target = styles.cost1 .. skill.target effect = styles.effect1 .. skill.effect end if skill.name then v = skill.name end skillcell = styles.skill .. v				end result = result .. skillcell .. cost .. power .. range .. target .. effect end else -- skill - cost - effect - level result = result .. styles.skill .. 'Skill' if not (gameg == 'smt4' and prop.guest == '1') then result = result .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' .. styles.skillc .. 'Level' else result = result .. styles.skillc .. 'Effect' .. styles.skillc .. 'Level' end for k1, v1 in ipairs(mw.text.split(prop.skills, '\n')) do -- Any entry on new line within "Skills" parameter is treated as new skill name. for k2, v2 in ipairs(mw.text.split(v1 .. '\\', '\\')) do -- Entry after backslash after skill name is treated as "level" for learning new skill per level gain. Any entry starting from second backslash on the same line is ignored until a new line. if k2 > 2 then break elseif (k2 % 2 == 1) then -- this checks level (false) or skill name (true) divided by the backslash. skill = data.skills[v2] -- now v2 represents skill name. if not skill then alias = data.aliases[v2] if alias then v2 = alias skill = data.skills[v2] end end if v2 == '' then skillcell = '' cost = '' effect = noskill elseif not skill then skillcell = '' cost = '' effect = noskill(v2,gamed) elseif skill then if gameg == 'smt3' then if skill.cost == 'Convo' then cost = '<abbr title="Active conversational skill without HP or MP cost. Ineffective to Corpus, Haunt, Wilder, Foul, Light-tendency demons, bosses and all enemies in Labyrinth of Amala.">Convo ' elseif skill.cost == 'Interrupt' then cost = '<abbr title="Interruption skill is only triggered when certain conversational effect occurs.">Interrupt ' else cost = skill.cost end else cost = skill.cost end if (k1 % 2 == 0) then cost = styles.cost2 .. cost effect = styles.effect2 .. skill.effect else cost = styles.cost1 .. cost effect = styles.effect1 .. skill.effect end if skill.name then v2 = skill.name end skillcell = styles.skill .. v2							end if not (gameg == 'smt4' and prop.guest == '1') then result = result .. skillcell .. cost .. effect else result = result .. skillcell .. effect end elseif (k2 % 2 == 0) then -- this checks level (ture) or skill name (false) divided by the backslash. if v2 == 'i' or v2 == 'I' or v2 == 'innate' or v2 == 'default' or v2 == 'Default' -- now v2 represents skill level. then v2 = 'Innate' end if (k1 % 2 == 0) then -- this checks even (true) or odd (false) number row. result = result .. styles.cost2 .. v2 -- "v2" represents "Level" within "Skills" parameter on each new line after the backslash. else result = result .. styles.cost1 .. v2							end end end end end end result = result .. '\n|}' end if prop.fskills then result = result .. styles.table2 .. styles.h .. 'colspan="5"' if gameg == 'p2is' or gameg == 'p2ep' then result = result .. '|' .. styles.spanc .. 'Unique Fusion Spells ' .. styles.skill .. 'Skill' .. styles.skillc .. 'Effect' .. styles.skillc .. 'Order/Skill/Persona' for k, v in ipairs(mw.text.split(prop.fskills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' then skillcell = '' cost = '' effect = noskill elseif not skill then skillcell = '' cost = '' effect = noskill(v,gamed) elseif skill then if (k % 2 == 0) then effect = styles.effect2 .. skill.effect else effect = styles.effect1 .. skill.effect end if skill.name then v = skill.name end skillcell = styles.skill .. v cost = styles.order .. skill.cost end result = result .. skillcell .. effect .. cost end elseif gameg == 'p3' then local cost, effect, pre if not data.skills[prop.fskills] then cost = '' effect = noskill(prop.fskills,gamed) pre = '' fskills = '' else cost = styles.cost1 .. data.skills[prop.fskills].cost effect = styles.effect1 .. data.skills[prop.fskills].effect pre = styles.cost1 .. data.skills[prop.fskills].pre prop.fskills = styles.skill .. prop.fskills end result = result .. '|' .. styles.spanc .. 'Fusion Spell <abbr title="Persona 3 and FES only; Portable uses items and does not require the participating personas to be in stock">* ' .. styles.skill .. 'Skill' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' .. styles.skillc .. '<abbr title="Persona 3 and FES only">Prerequisite ' .. prop.fskills .. cost .. effect .. pre elseif gameg == 'childlight' then result = result .. '|' .. styles.spanc .. 'Combos ' .. styles.skill .. 'Combo' .. styles.skillc .. 'Element' .. styles.skillc .. 'Cost' .. styles.skillc .. 'Effect' .. styles.skillc .. 'Partner' for k1, v1 in ipairs(mw.text.split(prop.fskills, '\n')) do for k2, v2 in ipairs(mw.text.split(v1 .. '\\', '\\')) do -- Entry after backslash after skill name is treated as "partner" if k2 > 2 then break elseif (k2 % 2 == 1) then -- this checks partner (false) or skill name (true) divided by the backslash. skill = data.skills[v2] -- now v2 represents skill name. if not skill then alias = data.aliases[v2] if alias then v2 = calias skill = data.skills[v2] end end if v2 == '' then skillcell = '' skille = '' cost = '' effect = noskill elseif not skill then skillcell = '' skille = '' cost = '' effect = noskill(v2,gamed) elseif skill then skille = skill.element cost = skill.cost effect = skill.effect if (k1 % 2 == 0) then skille = styles.cost2 .. skille cost = styles.cost2 .. cost effect = styles.effect2 .. effect else skille = styles.cost1 .. skille cost = styles.cost1 .. cost effect = styles.effect1 .. effect end if skill.name then v2 = skill.name end skillcell = styles.skill .. v2						end result = result .. skillcell .. skille .. cost .. effect elseif (k2 % 2 == 0) then -- this checks partner (ture) or skill name (false) divided by the backslash. if v2 == '' or not v2 then -- now v2 represents partner. v2 = '' end if (k1 % 2 == 0) then -- this checks even (true) or odd (false) number row. result = result .. styles.cost2 .. v2 -- "v2" represents "partner" within "Skills" parameter on each new line after the backslash. else result = result .. styles.cost1 .. v2						end end end end end result = result .. '\n|}' end if prop.pskills then if gameg == 'smtsj' then result = result .. styles.table2 .. styles.h .. 'colspan=3|D-Source Skills' else result = result .. styles.table2 .. styles.h .. 'colspan=3|' .. styles.spanc .. 'Passive Skills ' end result = result .. '\n|-style="border:0"\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|' for k, v in ipairs(mw.text.split(prop.pskills, '\n')) do			skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' or v == '-' or v == '--' then skillcell = '' elseif not skill then skillcell = styles.skill3 .. '"|' .. v			else				if skill.name then v = skill.name end				skillcell = styles.skill3 .. '" title="Cost: ' .. skill.cost .. '; ' .. skill.effect .. '"|' .. v			end if (k % 3 == 1) then result = result .. '\n|-' .. skillcell else result = result .. skillcell end end result = result .. '\n|}' end if (gameg == 'smtsj' or gameg == 'desu1' or gameg == 'desu2') and (prop.askills or prop.apskills) then if gameg == 'smtsj' then result = result .. styles.table2 .. styles.h .. 'colspan=3|Item Drops' else result = result .. styles.table2 .. styles.h .. 'colspan=3|List of Auction Skills' end result = result .. '\n|-style="border:0"\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|\n|style="padding:0;width:33%"|' if prop.askills then for k, v in ipairs(mw.text.split(prop.askills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' or v == '-' or v == '--' then skillcell = '' elseif not skill then skillcell = styles.skill3 .. '"|' .. v				else					if skill.name then v = skill.name end					skillcell = styles.skill3 .. '" title="Cost: ' .. skill.cost .. '; ' .. skill.effect .. '"|' .. v				end if (k % 3 == 1) then result = result .. '\n|-' .. skillcell else result = result .. skillcell end end end if prop.apskills then for k, v in ipairs(mw.text.split(prop.apskills, '\n')) do				skill = data.skills[v] if not skill then alias = data.aliases[v] if alias then v = alias skill = data.skills[v] end end if v == '' or v == '-' or v == '--' then skillcell = '' elseif not skill then skillcell = styles.skill3 .. '"|' .. v				else					if skill.name then v = skill.name end					skillcell = styles.skill3 .. '" title="Cost: ' .. skill.cost .. '; ' .. skill.effect .. '"|' .. v				end if (k % 3 == 1) then result = result .. '\n|-' .. skillcell else result = result .. skillcell end end end result = result .. '\n|}' end if gameg == 'p2ep' and prop.unknown then result = result .. styles.table2 .. styles.h .. 'colspan="2"|' .. styles.spanc .. 'Unknown Power ' .. styles.skill prop.unknown = prop.unknown:lower if prop.unknown == 'attack type' or prop.unknown == 'attack-type' or prop.unknown == 'attack' then result = result .. 'Attack Type' .. styles.cost1 .. 'Deals <abbr title="Equipper has ' .. "'Great'" .. ' affinity with the Persona">500 or <abbr title="Equipper has ' .. "'Good'" .. ' affinity with the Persona">250 non-elemental damage to all enemies.' elseif prop.unknown == 'defense type' or prop.unknown == 'defense-type' or prop.unknown == 'defense' then result = result .. 'Defense Type' .. styles.cost1 .. '<abbr title="Equipper has ' .. "'Great'" .. ' affinity with the Persona">Reflects or <abbr title="Equipper has ' .. "'Good'" .. ' affinity with the Persona">nullifies the incoming attack.' elseif prop.unknown == 'assist type' or prop.unknown == 'assist-type' or prop.unknown == 'assist' then result = result .. 'Assist Type' .. styles.cost1 .. 'Bestows Tarukaja + Makakaja <abbr title="Only applicable when the equipper has ' .. "'Great'" .. ' affinity with the Persona">(or Rakukaja + Samakaja in addition) ' elseif prop.unknown == 'recovery type' or prop.unknown == 'recovery-type' or prop.unknown == 'recovery' then result = result .. 'Recovery Type' .. styles.cost1 .. 'Fully recovers HP <abbr title="Only applicable when the equipper has ' .. "'Great'" .. ' affinity with the Persona">(or removes ailment in addition) .' elseif prop.unknown == 'revival type' or prop.unknown == 'revival-type' or prop.unknown == 'revival' then result = result .. 'Revival Type' .. styles.cost1 .. 'Revives from unconscious with <abbr title="Equipper has ' .. "'Great'" .. ' affinity with the Persona">full or <abbr title="Equipper has ' .. "'Good'" .. ' affinity with the Persona">1/4 HP.' elseif prop.unknown == 'special type' or prop.unknown == 'special-type' or prop.unknown == 'special' then result = result .. 'Special Type' .. styles.cost1 .. 'Eliminates all enemies when the user is unconscious.' end result = result .. '\n|}' end if gameg == 'childlight' and prop.power ~= '' then local pelement, peffect if not data.skills[prop.power] then prop.power = noskill(prop.power,gamed) pelement = '' peffect = '' else pelement = styles.cost1 .. data.skills[prop.power].element peffect = styles.effect1 .. data.skills[prop.power].effect prop.power = styles.skill .. prop.power end result = result .. styles.table2 .. styles.h .. 'colspan=3|' .. styles.spanc .. 'Power \n|-' .. styles.skill .. 'Power' .. styles.skillc .. 'Type' .. styles.skillc .. 'Effect' .. prop.power .. pelement .. peffect .. '\n|}' end if (gameg == 'desu1' or gameg == 'desu2') and (prop.quote or prop.profile) then result = result .. styles.table2 if prop.quote then result = result .. styles.quote .. 'font-style:italic"|' .. string.gsub(prop.quote, '!!', '‼') end		if prop.profile then result = result .. '\n|-' .. styles.quote .. 'font-style:italic"|' .. string.gsub(prop.profile, '!!', '‼') end result = result .. '\n|}' end if game == 'smtsj' and prop.profile then result = result .. styles.table2 .. styles.h .. '|Password' .. styles.quote .. 'font-weight:bold;font-family:Courier New,sans-serif;font-size:1.6em"|' .. prop.profile .. '\n|}'	end	result = result .. '\n|}'	return result end p.row = makeInvokeFunction('_row') function p._row(args)	local row = args[1]	local game = args[2]	local code = args[3]	if not code or code ==  then return  end	local level = args[4]	if not level then level = '' end	if level == 'i' or level == 'I' or level == 'innate' or level == 'default' or level == 'Default' then level = 'Innate' end	local data = require('Module:Skills/' .. game)	skill = data.skills[code]	if not skill then		alias = data.aliases[code]		if alias then			code = alias			skill = data.skills[code]		else 			return noskill(code,game)		end	end	if skill.name then code = skill.name end	local skillcell = styles.skill .. code	local cost = skill.cost	if game == 'SMT3' then		cost = '<abbr title="Active conversational skill without HP or MP cost. Ineffective to Corpus, Haunt, Wilder, Foul, Light-tendency demons, bosses and all enemies in Labyrinth of Amala.">Convo '	elseif skill.cost == 'Interrupt' then		cost = '<abbr title="Interruption skill is only triggered when certain conversational effect occurs.">Interrupt '	end	local cost1 = '\n||' .. cost	local cost2 = styles.cost2 .. cost	local effect1 = styles.effect1 .. skill.effect	local effect2 = styles.effect2 .. skill.effect	local order = styles.order .. skill.cost	local element1, element2	if skill.element then		element1 = '\n||' .. skill.element or 		element2 = styles.cost2 .. skill.element or 	end	local level1, level2	if skill.pre then		level1 = '\n||' .. skill.pre		level2 = styles.cost2 .. skill.pre	elseif level == '' then		level1 = '\n||'		level2 = styles.cost2	elseif level then		level1 = '\n||' .. level		level2 = styles.cost2 .. level	end	local result	if row == 'r01' then result = skillcell .. effect1 -- Odd number row for enemy whose skill cost is irrelevant. elseif row == 'r02' then result = skillcell .. effect2 -- Even number row for enemy whose skill cost is irrelevant. elseif row == 'r11' then if game == 'SMT3' and skill.phy then result = skillcell .. styles.effect1p .. skill.effect -- Odd number row for enemy whose physical skills cost no HP. else result = skillcell .. cost1 .. effect1 -- Odd number row for demon which does not learn new skill on level gain. end elseif row == 'r12' then if game == 'SMT3' and skill.phy then result = skillcell .. styles.effect2p .. skill.effect -- Even number row for enemy whose physical skills cost no HP. else result = skillcell .. cost2 .. effect2 -- Even number row for demon which does not learn new skill on level gain. end elseif row == 'r21' then result = skillcell .. cost1 .. effect1 .. level1 -- Odd number row for demon/persona which learn new skill on level gain. elseif row == 'r22' then result = skillcell .. cost2 .. effect2 .. level2 -- Even number row for demon/persona which learn new skill on level gain. elseif row == 'r31' then result = skillcell .. effect1 .. level1 -- Odd number row for guest who learn new skill on level gain. elseif row == 'r32' then result = skillcell .. effect2 .. level2 -- Even number row for guest who learn new skill on level gain. elseif row == 'p12' then result = styles.skill .. level .. styles.skillc .. code .. effect1 -- Row for Persona 1 and 2 persona elseif row == 'rf' then result = skillcell .. effect1 .. order -- Row for Persona-specific fusion spell. elseif row == 'dk1' then result = skillcell .. element1 .. cost1 .. effect1 -- Odd number row for DemiKids stats skill list. elseif row == 'dk2' then result = skillcell .. element2 .. cost2 .. effect2 -- Odd number row for DemiKids stats skill list. elseif row == 'dkc1' then result = skillcell .. level1 .. element1 .. cost1 .. effect1 -- Odd number row for DemiKids stats combo skill list. elseif row == 'dkc2' then result = skillcell .. level2 .. element2 .. cost2 .. effect2 -- Odd number row for DemiKids stats combo skill list. elseif row == 'dkp' then result = skillcell .. element2 .. effect2 -- row for DemiKids powers. else result = '<strong style="color:red;font-size:150%">Invalid parameter 1 of ' .. '"' .. row .. '". ' .. cate('Templates with unrecognizable row value for Module:Skills') end return result end return p -- -- --