diff options
| author | Alexander Pickering <alex@cogarr.net> | 2019-01-27 10:32:09 -0500 |
|---|---|---|
| committer | Alexander Pickering <alex@cogarr.net> | 2019-01-27 10:32:09 -0500 |
| commit | 0aae46ecc38005236210f7e243f02cac39ab1dc3 (patch) | |
| tree | e2fcc9893df4ff03a87e113b3c0ff89357c86ef7 /client/data/locations.lua | |
| download | home_text_adventure-0aae46ecc38005236210f7e243f02cac39ab1dc3.tar.gz home_text_adventure-0aae46ecc38005236210f7e243f02cac39ab1dc3.tar.bz2 home_text_adventure-0aae46ecc38005236210f7e243f02cac39ab1dc3.zip | |
Inital commit
Diffstat (limited to 'client/data/locations.lua')
| -rw-r--r-- | client/data/locations.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/client/data/locations.lua b/client/data/locations.lua new file mode 100644 index 0000000..183425e --- /dev/null +++ b/client/data/locations.lua @@ -0,0 +1,44 @@ +local world = require("world") +local net = require("net") +world.locations = world.locations or {} +local loc = {} + +local required_fields = { + name = "string", + desc = "string", + goto_txt = "string", + go = "table", + settle_txt = "string" +} + +local location_base = { + get_desc = function(self) + local houses = net.ask_for_homes(self.name,1) + self.last_houses = houses + local sb = {self.desc} + for k,v in pairs(houses) do + print("Adding ", v) + sb[#sb + 1] = string.format("%s is here",v) + end + return table.concat(sb,"\n") + end, + houses = {}, + is_location = true +} + +local location_m = {__index = location_base} + +function loc.add_location(tbl) + print("Added location:",tbl.name) + assert(type(tbl) == "table","Tried to register a location that was not a table") + for k,v in pairs(required_fields) do + assertf(tbl[k],"Tried to register a location without a %s field",k) + assertf(type(tbl[k]) == v,"Tried to register a location with a %s field that should have been a %s, but was a %s",k,v,type(tbl[k])) + end + assert(world.locations[tbl.name] == nil) + setmetatable(tbl,location_m) + world.locations[tbl.name] = tbl +end + + +return loc |
