|
|
(11 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| local p = {} | | local p = {} |
| | local decode = require'Module:CryptogullJr/Codes' |
| | local utilTable = require('Module:Table Utility') |
|
| |
|
| function p.Main(frame) | | function p.Main(frame) |
| local buildcode = string.lower(frame.args[1])
| | local buildcode = frame.args['code'] |
| | local beta = frame.args['beta'] or '1' |
| | local title = frame.args['title'] |
| | return p.decode(buildcode, beta, title) |
| | end |
| | |
| | function p.decode(buildcode, beta, title) |
| local genotype | | local genotype |
| local subtype | | local subtype |
Line 10: |
Line 18: |
| local bonus = {} | | local bonus = {} |
| local exts = {} | | local exts = {} |
| | local beta = beta or '1' |
| | |
| | if buildcode == nil then |
| | error("A build code must be provided!") |
| | end |
| | buildcode = string.lower(buildcode) |
| if (string.len(buildcode) >= 8) then | | if (string.len(buildcode) >= 8) then |
| --[Check Genotype Code, and then subtype code] | | --[Check Genotype Code, and then subtype code] |
Line 16: |
Line 30: |
| if (genotypeC == 'a') then | | if (genotypeC == 'a') then |
| genotype = "True Kin" | | genotype = "True Kin" |
| classcalled = "Caste: " | | classcalled = "Caste" |
| extname = "Implants: " | | extname = "Implants" |
| subtype = p.TrueKinSubtype(subtypeC) | | subtype = decode.TrueKinSubtype(subtypeC) |
| elseif (genotypeC == 'b') then | | elseif (genotypeC == 'b') then |
| genotype = "Mutated Human" | | genotype = "Mutated Human" |
| classcalled = "Calling: " | | classcalled = "Calling" |
| extname = "Mutations: " | | extname = "Mutations: " |
| subtype = p.MutantSubtype(subtypeC) | | subtype = decode.MutantSubtype(subtypeC) |
| else | | else |
| error("The genotype code " .. genotypeC .. " does not exist!", 0) | | error("The genotype code " .. genotypeC .. " does not exist!", 0) |
Line 32: |
Line 46: |
| error("Couldn't find subtype " .. subtypeC, 0) | | error("Couldn't find subtype " .. subtypeC, 0) |
| else | | else |
| --[get attributes and put it in a table]
| | --[get attributes and put it in a table] |
| local attributesC = string.sub(buildcode, 3, 8) | | local attributesC = string.sub(buildcode, 3, 8) |
| local i = 1 | | local i = 1 |
Line 44: |
Line 58: |
| local i = 1 | | local i = 1 |
| local extstring = buildcode:sub(9) | | local extstring = buildcode:sub(9) |
| for chars in string.gmatch(extstring, "%w%w") do | | previouscode = nil |
| exts[i] = p.getexts(chars, subtypeC)
| | for chars in string.gmatch(extstring, "[%w#]%w") do |
| i = i + 1
| | varnum = tonumber(chars:match("#(%d)")) |
| | if varnum ~= nil then |
| | if previouscode == nil or (exts[i-1][2] == "") then |
| | error("Unexpected variant code") |
| | end |
| | -- add 1 to the index because lua is silly |
| | variant = exts[i-1][2][varnum + 1] |
| | -- get the previous extension and append variant to it |
| | exts[i - 1][1] = exts[i - 1][1] .. " (" .. variant .. ")" |
| | previouscode = nil |
| | else |
| | previouscode = chars |
| | exts[i] = decode.getexts(chars, subtypeC)[1] |
| | i = i + 1 |
| | end |
| end | | end |
| end | | end |
| --calculate bonus | | --calculate bonus |
| bonus = p.getbonus(subtype, exts) | | bonus = p.getbonus(subtype, exts) |
| --recalculate attributes after stat bonuses | | if beta ~= '1' then |
| attributes = p.fixattributes(bonus, attributes)
| | attributes = p.fixattributes(bonus, attributes) |
| --make the dang sheet | | end |
| output = p.MakeUpSheet(buildcode, genotype, subtype, classcalled, extname, attributes, bonus, exts, frame)
| | output = p.MakeUpSheet(buildcode, genotype, subtype, |
| | classcalled, extname, attributes, bonus, exts, title) |
| return output | | return output |
| end | | end |
Line 60: |
Line 89: |
| error("This build code is too short(<8 chars)!", 0) | | error("This build code is too short(<8 chars)!", 0) |
| end | | end |
| end
| |
|
| |
| function p.TrueKinSubtype(code)
| |
| --[1 NAME, stats (2 STR, 3 AGI, 4 TUF, 5 INT, 6 WIL, 7 EGO),]--
| |
| --[8 Skills, Resist(9 ACID, 10 ELEC, 11 COLD, 12 HEAT, 13 BLEED), 14 bonusstart]--
| |
| local caste = {
| |
| --[The Toxic Arboreta of Ekuemekiyye, the Holy City]
| |
| ['a'] = { "Horticulturist", 0, 0, 0, 3, 0, 0, "Harvestry, Axe Proficiency, Steady Hands, Draw a Bead, Wilderness Lore: Jungles", 0, 0, 0, 0, 2, "Start with a bio-scanning bracelet" },
| |
| ['b'] = { "Priest of All Suns", 0, 0, 0, 0, 0, 3, "Cudgel Proficiency, Heal, Snake Oiler, Intimidate, Wilderness Lore: Jungles", 0, 0, 0, 0, 2, "Start with a smiling sun mask" },
| |
| ['c'] = { "Priest of All Moons", 0, 0, 2, 0, 2, 0, "Axe Proficiency, Butchery, Lionheart, Poison Tolerance, Wilderness Lore: Jungles", 0, 0, 0, 0, 2, "Start with a frowning moon mask" },
| |
| ['d'] = { "Syzygyrior", 0, 3, 0, 0, 0, 0, "Offhand Strikes, Ambidexterity, Wayfaring: Jungles", 0, 0, 0, 0, 0, "" },
| |
| --[he Ice-Sheathed Arcology of Ibul]
| |
| ['e'] = { "Artifex", 0, 0, 0, 3, 0, 0, "Repair, Disassemble,Deploy Turret, Tinker I, Tinker II", 0, 0, 15, 0, 0, "" },
| |
| ['f'] = { "Consul", 0, 0, 0, 0, 0, 3, "Inspiring Presence, Proselytize", 0, 0, 15, 0, 0, "" },
| |
| ['g'] = { "Praetorian", 2, 0, 1, 0, 1, 0, "Long Blade Proficiency, Shield Slam, Steady Hands, Draw a Bead", 0, 0, 15, 0, 0, "" },
| |
| ['h'] = { "Eunuch", 0, 2, 0, 2, 0, 0, "Hobble, Weak Spotter, Spry, Hurdle", 0, 0, 15, 0, 0, "" },
| |
| --[The Crustal Mortars of Yawningmoon]
| |
| ['i'] = { "Child of the Hearth", 3, 0, 0, 0, 0, 0, "Slam, Calloused, Strapping Shoulders", 0, 0, 0, 15, 0, "" },
| |
| ['j'] = { "Child of the Wheel", 1, 2, 0, 0, 0, 1, "Short Blades Proficiency, Cleave, Offhand Strikes, Iron Mind", 0, 0, 0, 15, 0, "" },
| |
| ['k'] = { "Child of the Deep", 0, 0, 3, 0, 0, 0, "Tank, Strapping Shoulders, Shake It Off, Wilderness Lore: Mountains, Wilderness Lore: Canyons", 0, 0, 0, 15, 0, "" },
| |
| ['l'] = { "Fuming God-Child", 0, 0, 0, 0, 4, 0, "Fasting Way, Lionheart, Poison Tolerance, Intimidate", 0, 0, 0, 15, 0, "" }
| |
| }
| |
| return caste[code]
| |
| end
| |
|
| |
| function p.MutantSubtype(code)
| |
| --[NAME, stats (STR, AGI, TUF, INT, WIL, EGO),]--
| |
| --[Skills, Resist(ACID, ELEC, COLD, HEAT, BLEED), bonusstart]--
| |
| local calling = {
| |
| ['a'] = { "Apostle", 0, 0, 0, 0, 0, 2, "Intimidate, Proselytize, Tactful", 0, 0, 0, 0, 0, "" },
| |
| ['b'] = { "Arconaut", 0, 2, 0, 0, 0, 0, "Short Blades Proficiency, Scavenger, Gadget Inspector, Spry", 0, 0, 0, 0, 0, "Start with random junk and artifacts" },
| |
| ['c'] = { "Greybeard", -1, 0, 0, 0, 3, 0, "Cudgel Proficiency, Berate, Calloused", 0, 0, 0, 0, 0, "Start with +100 bear reputation" },
| |
| ['d'] = { "Gunslinger", 0, 2, 0, 0, 0, 0, "Weak Spotter", 0, 0, 0, 0, 0, "Start with +200 reputation with mysterious strangers" },
| |
| ['e'] = { "Marauder", 2, 0, 0, 0, 0, 0, "Dismember, Charge, Butchery", 0, 0, 0, 0, 0, "" },
| |
| ['f'] = { "Pilgrim", 0, 0, 0, 0, 2, 0, "Meditate, Fasting Way, Iron Mind, Mind's Compass", 0, 0, 0, 0, 0, "" },
| |
| ['g'] = { "Nomad", 0, 0, 2, 0, 0, 0, "Mind's Compass, Wilderness Lore: Salt Pans, Harvestry, Weathered", 0, 0, 15, 15, 0, "Starts with +200 Issachari reputation and a recycling suit" },
| |
| ['h'] = { "Scholar", 0, 0, 0, 2, 0, 0, "Gadget Inspector, Heal, Harvestry, Hurdle, Tactful", 0, 0, 0, 0, 0, "" },
| |
| ['i'] = { "Tinker", 0, 0, 0, 2, 0, 0, "Gadget Inspector, Lay Mine, Disassemble, Repair, Tinker I", 0, 0, 0, 0, 0, "Begins with a number of random artifacts and scrap and +100 Barathrumites reputation" },
| |
| ['j'] = { "Warden", 2, 0, 0, 0, 0, 0, "Long Blades Proficiency, Shield Slam, Steady Hands, Draw a Bead, Pistol Proficiency", 0, 0, 0, 0, 0, "Starts with +300 Warden reputation" },
| |
| ['k'] = { "Water Merchant", 0, 0, 0, 0, 0, 2, "Menacing Stare, Snake Oiler", 0, 0, 0, 0, 0, "Starts with trade goods and a merchant's token" },
| |
| ['l'] = { "Watervine Farmer", 0, 0, 2, 0, 0, 0, "Cooking and Gathering, Harvestry, Axe Proficiency, Wilderness Lore: Salt Marshes", 0, 0, 0, 0, 0, "Starts with +100 reputation with the villagers of Joppa and a farmer's token" }
| |
| }
| |
| return calling[code]
| |
| end
| |
|
| |
| function p.getexts(code, subtypeC)
| |
| local muts = {
| |
| ['aa'] = { "Chimera", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ab'] = { "Esper", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['uu'] = { "Unstable Genome", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u2'] = { "Unstable Genome(2)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u3'] = { "Unstable Genome(3)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u4'] = { "Unstable Genome(4)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u5'] = { "Unstable Genome(5)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u6'] = { "Unstable Genome(6)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u7'] = { "Unstable Genome(7)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u8'] = { "Unstable Genome(8)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['u9'] = { "Unstable Genome(9)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ba'] = { "Adrenal Control", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bb'] = { "Burrowing Claws", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bc'] = { "Carapace", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['b6'] = { "Carnivorous", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bd'] = { "Corrosive Gas Generation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['be'] = { "Double-muscled", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bf'] = { "Electrical Generation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bg'] = { "Electromagnetic Pulse", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bh'] = { "Flaming Hands", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bi'] = { "Freezing Hands", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bj'] = { "Heightened Hearing", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bk'] = { "Heightened Quickness", 0, 0, -1, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bl'] = { "Horns", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bm'] = { "Metamorphosis", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bn'] = { "Multiple Arms", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bo'] = { "Multiple Legs", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bp'] = { "Night Vision", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bq'] = { "Phasing", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['br'] = { "Photosynthetic Skin", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bs'] = { "Quills", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bt'] = { "Regeneration", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bu'] = { "Sleep Gas Generation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bv'] = { "Slime Glands", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bw'] = { "Spinnerets", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bx'] = { "Stinger (Confusing Venom)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['by'] = { "Stinger (Paralyzing Venom)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['bz'] = { "Stinger (Poisoning Venom)", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['b1'] = { "Thick Fur", 0, 0, 0, 0, 0, 0, 0, 0, 4, 4 },
| |
| ['b2'] = { "Triple-jointed", -1, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['b3'] = { "Two-headed", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['b4'] = { "Two-hearted", 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['b5'] = { "Wings", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| --[phys defects]
| |
| ['ca'] = { "Albino", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cb'] = { "Amphibious", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cc'] = { "Analgesia", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cd'] = { "Beak", 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 },
| |
| ['ce'] = { "Cold-Blooded", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cf'] = { "Brittle Bones", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cg'] = { "Electromagnetic Impulse", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ch'] = { "Hemophilia", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ci'] = { "Hooks for Feet", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['cj'] = { "Myopia", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ck'] = { "Spontaneous Combustion", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| --[mental muts]
| |
| ['da'] = { "Beguiling", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['db'] = { "Burgeoning", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dc'] = { "Clairvoyance", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dd'] = { "Confusion", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['de'] = { "Cryokinesis", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['df'] = { "Domination", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dg'] = { "Disintegration", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dh'] = { "Ego Projection", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['di'] = { "Force Bubble", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dj'] = { "Force Wall", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dk'] = { "Kindle", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dl'] = { "Light Manipulation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dm'] = { "Mass Mind", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dn'] = { "Mental Mirror", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['do'] = { "Precognition", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dp'] = { "Psychometry", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dq'] = { "Pyrokinesis", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dr'] = { "Sense Psychic", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ds'] = { "Space-Time Vortex", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dt'] = { "Stunning Force", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['du'] = { "Sunder Mind", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dv'] = { "Syphon Vim", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dw'] = { "Telepathy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dx'] = { "Teleportation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dy'] = { "Teleport Other", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['dz'] = { "Time Dilation", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['d1'] = { "Temporal Fugue", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| --[mental defects]
| |
| ['ea'] = { "Amnesia", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['eb'] = { "Blinking Tic", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ec'] = { "Evil Twin", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ed'] = { "Narcolepsy", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ee'] = { "Pack Rat", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['ef'] = { "Socially Repugnant", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['eg'] = { "Unwelcome Germination", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| --[cybernetics (to be added)]
| |
| ['00'] = { "", 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['01'] = { "dermal insulation", 0, 0, 0, 0, 0, 0, 6, 6, 6, 6 },
| |
| ['04'] = { 'optical bioscanner', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['05'] = { 'optical technoscanner', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['06'] = { 'night vision', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['07'] = { 'hyper-elastic ankle tendons', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['08'] = { 'parabolic muscular subroutine', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['09'] = { 'translucent skin', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['11'] = { 'stabilizer arm locks', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['12'] = { 'rapid release finger flexors', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['13'] = { 'carbide hand bones', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['14'] = { 'pentaceps', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| ['15'] = { 'inflatable axons', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
| |
| -- subtypes A-D, E-H, I-L
| |
| ['16'] = { 'nocturnal apex', 'cherubic visage', 'air current microsensor', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
| |
| }
| |
|
| |
| if code ~= nil and code == '16' then
| |
| if subtypeC < 'e' then
| |
| return { 'nocturnal apex', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
| |
| elseif subtypeC < 'i' then
| |
| return { 'cherubic visage', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
| |
| else
| |
| return { 'air current microsensor', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
| |
| end
| |
| else
| |
| return muts[code]
| |
| end
| |
| end
| |
|
| |
| function p.getImplants(code, subtypeC)
| |
| end | | end |
|
| |
|
| function p.getbonus(subtype, exts) | | function p.getbonus(subtype, exts) |
| --STR, AGI, TOUGH,INT, WILL, EGO | | --STR, AGI, TOUGH,INT, WILL, EGO |
| local extbonuses = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } | | local extbonuses = { 0, 0, 0, 0, 0, 0 } |
| for x, y in ipairs(exts) do | | for x, y in pairs(exts) do |
| extbonuses[1] = extbonuses[1] + y[2]
| | mw.logObject(y[1]) |
| extbonuses[2] = extbonuses[2] + y[3]
| | if decode.getStatBonus(y[1]) then |
| extbonuses[3] = extbonuses[3] + y[4]
| | statbonus = decode.getStatBonus(y[1]) |
| extbonuses[4] = extbonuses[4] + y[5]
| | extbonuses[1] = extbonuses[1] + statbonus[1] |
| extbonuses[5] = extbonuses[5] + y[6]
| | extbonuses[2] = extbonuses[2] + statbonus[2] |
| extbonuses[6] = extbonuses[6] + y[7]
| | extbonuses[3] = extbonuses[3] + statbonus[3] |
| extbonuses[7] = extbonuses[7] + y[8]
| | extbonuses[4] = extbonuses[4] + statbonus[4] |
| extbonuses[8] = extbonuses[8] + y[9]
| | extbonuses[5] = extbonuses[5] + statbonus[5] |
| extbonuses[9] = extbonuses[9] + y[10]
| | extbonuses[6] = extbonuses[6] + statbonus[6] |
| extbonuses[10] = extbonuses[10] + y[11]
| | end |
| end | | end |
|
| |
|
Line 287: |
Line 146: |
| end | | end |
|
| |
|
| function p.MakeUpSheet(codeIn, genoIn, subtype, classcalledIn, extnameIn, attributes, bonus, extsIn, frame) | | function p.MakeUpSheet(codeIn, genoIn, subtype, classcalledIn, extnameIn, |
| local mutstring = ""
| | attributes, bonus, exts, title) |
| for _, ext in ipairs(extsIn) do
| | local frame = mw.getCurrentFrame() |
| mutstring = mutstring .. ", " .. ext[1]
| |
| end
| |
| | |
| return frame:expandTemplate { | | return frame:expandTemplate { |
| title = 'Crypto result', | | title = 'Crypto result', |
Line 307: |
Line 163: |
| ego = attributes[6] .. bonus[6], | | ego = attributes[6] .. bonus[6], |
| extname = extnameIn, | | extname = extnameIn, |
| exts = mutstring:sub(3), | | exts = utilTable.concat(exts, "</br>"), |
| skills = subtype[8], | | skills = subtype[8], |
| notes = subtype[14] | | notes = subtype[14], |
| | buildname = title, |
| | author = "Legacy Build Code" |
| } | | } |
| } | | } |
| end | | end |
| | | function p.test() |
| | return p.Main({["args"]={"BGMMMKMKBABJBPD1", ["beta"]=1}}) |
| | end |
| return p | | return p |