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")
|
||||
|
||||
-- TODO abstract out since this is shared between classes and races
|
||||
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,
|
||||
}
|
||||
return constants.fix_stats_tasks(classes)
|
||||
|
||||
+40
-1
@@ -1,4 +1,43 @@
|
||||
return {
|
||||
local utility = require "lib.utility"
|
||||
|
||||
local constants = {
|
||||
progress_bar_height = 30,
|
||||
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")
|
||||
|
||||
-- TODO abstract out since this is shared between classes and 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,
|
||||
}
|
||||
return constants.fix_stats_tasks(races)
|
||||
|
||||
+2
-2
@@ -49,8 +49,8 @@ local new_character = function(name)
|
||||
local character = {
|
||||
seed = seed,
|
||||
name = name,
|
||||
race = races.names[math.random(1, #races.names)],
|
||||
class = classes.names[math.random(1, #classes.names)],
|
||||
race = races[math.random(1, #races)],
|
||||
class = classes[math.random(1, #classes)],
|
||||
charisma = base_stat_roll(),
|
||||
constitution = base_stat_roll(),
|
||||
dexterity = base_stat_roll(),
|
||||
|
||||
Reference in New Issue
Block a user