abstracted data loading better
This commit is contained in:
+1
-35
@@ -3,38 +3,4 @@ local utility = require "lib.utility"
|
|||||||
|
|
||||||
local classes = utility.load_data("classes.json")
|
local classes = utility.load_data("classes.json")
|
||||||
|
|
||||||
-- TODO abstract out since this is shared between classes and races
|
return constants.fix_stats_tasks(classes)
|
||||||
local class_names = {}
|
|
||||||
for name, data in pairs(classes) do
|
|
||||||
class_names[#class_names + 1] = name
|
|
||||||
|
|
||||||
if type(data.tasks) == "string" then
|
|
||||||
data.tasks = { data.tasks }
|
|
||||||
elseif not data.tasks then
|
|
||||||
data.tasks = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local tasks = data.tasks
|
|
||||||
for index, task in ipairs(tasks) do
|
|
||||||
if type(task) == "string" then
|
|
||||||
local time = #task * constants.reading_time_multiplier
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task}
|
|
||||||
elseif #task == 1 then
|
|
||||||
local time = #task[1] * constants.reading_time_multiplier
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task[1]}
|
|
||||||
elseif #task == 2 then
|
|
||||||
local time = tasks[1]
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task[2]}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
table.sort(class_names)
|
|
||||||
|
|
||||||
return {
|
|
||||||
classes = classes,
|
|
||||||
names = class_names,
|
|
||||||
}
|
|
||||||
|
|||||||
+40
-1
@@ -1,4 +1,43 @@
|
|||||||
return {
|
local utility = require "lib.utility"
|
||||||
|
|
||||||
|
local constants = {
|
||||||
progress_bar_height = 30,
|
progress_bar_height = 30,
|
||||||
reading_time_multiplier = 1 / 9,
|
reading_time_multiplier = 1 / 9,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constants.fix_stats_tasks = function(data)
|
||||||
|
local result = {}
|
||||||
|
for name, data in pairs(data) do
|
||||||
|
result[name] = data
|
||||||
|
result[#result + 1] = name
|
||||||
|
|
||||||
|
if type(data.tasks) == "string" then
|
||||||
|
data.tasks = { data.tasks }
|
||||||
|
elseif not data.tasks then
|
||||||
|
data.tasks = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local tasks = data.tasks
|
||||||
|
for index, task in ipairs(tasks) do
|
||||||
|
if type(task) == "string" then
|
||||||
|
local time = #task * constants.reading_time_multiplier
|
||||||
|
-- TODO decide on a random amount of extra time to add
|
||||||
|
tasks[index] = {time, time, task}
|
||||||
|
elseif #task == 1 then
|
||||||
|
local time = #task[1] * constants.reading_time_multiplier
|
||||||
|
-- TODO decide on a random amount of extra time to add
|
||||||
|
tasks[index] = {time, time, task[1]}
|
||||||
|
elseif #task == 2 then
|
||||||
|
local time = tasks[1]
|
||||||
|
-- TODO decide on a random amount of extra time to add
|
||||||
|
tasks[index] = {time, time, task[2]}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
table.sort(result)
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
return constants
|
||||||
|
|||||||
+1
-35
@@ -3,38 +3,4 @@ local utility = require "lib.utility"
|
|||||||
|
|
||||||
local races = utility.load_data("races.json")
|
local races = utility.load_data("races.json")
|
||||||
|
|
||||||
-- TODO abstract out since this is shared between classes and races
|
return constants.fix_stats_tasks(races)
|
||||||
local race_names = {}
|
|
||||||
for name, data in pairs(races) do
|
|
||||||
race_names[#race_names + 1] = name
|
|
||||||
|
|
||||||
if type(data.tasks) == "string" then
|
|
||||||
data.tasks = { data.tasks }
|
|
||||||
elseif not data.tasks then
|
|
||||||
data.tasks = {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local tasks = data.tasks
|
|
||||||
for index, task in ipairs(tasks) do
|
|
||||||
if type(task) == "string" then
|
|
||||||
local time = #task * constants.reading_time_multiplier
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task}
|
|
||||||
elseif #task == 1 then
|
|
||||||
local time = #task[1] * constants.reading_time_multiplier
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task[1]}
|
|
||||||
elseif #task == 2 then
|
|
||||||
local time = tasks[1]
|
|
||||||
-- TODO decide on a random amount of extra time to add
|
|
||||||
tasks[index] = {time, time, task[2]}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
table.sort(race_names)
|
|
||||||
|
|
||||||
return {
|
|
||||||
races = races,
|
|
||||||
names = race_names,
|
|
||||||
}
|
|
||||||
|
|||||||
+2
-2
@@ -49,8 +49,8 @@ local new_character = function(name)
|
|||||||
local character = {
|
local character = {
|
||||||
seed = seed,
|
seed = seed,
|
||||||
name = name,
|
name = name,
|
||||||
race = races.names[math.random(1, #races.names)],
|
race = races[math.random(1, #races)],
|
||||||
class = classes.names[math.random(1, #classes.names)],
|
class = classes[math.random(1, #classes)],
|
||||||
charisma = base_stat_roll(),
|
charisma = base_stat_roll(),
|
||||||
constitution = base_stat_roll(),
|
constitution = base_stat_roll(),
|
||||||
dexterity = base_stat_roll(),
|
dexterity = base_stat_roll(),
|
||||||
|
|||||||
Reference in New Issue
Block a user