-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmap.lua
More file actions
124 lines (103 loc) · 2.5 KB
/
map.lua
File metadata and controls
124 lines (103 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
----------------------------------------
-- map.lua
-- loading map, processing map data, etc..
----------------------------------------
function startstage(stage) -- start stage, display stage title screen.
init()
scene = 5
currentstage = stage
love.audio.stop()
if mute == false then
tblbgm[2] = love.audio.newSource("Sound/bgm/stagetitle.ogg", "stream")
tblbgm[2]:setLooping(true)
love.audio.play(tblbgm[2])
end
if mute == true then
love.audio.pause()
end
if stage == 25 then --final battle
corecorruption = 0
tbltmptrap = {}
tbltmptrap[1] = {}
tbltmptrap[1]["x"] = 0
tbltmptrap[1]["y"] = 0
tbltmptrap[1]["enabled"] = false
tmrbossatk = 0
tmrbossend = 0
bosscont = 0
bossdefeated = false
end
tmpkeydelay = nil
tmpkeydelay = 0
end
function loadmap(mappath)
local str = require "lib/string" -- to use 'split' function.
-- store map data
local chunkdata
local mapdata
local objdata
local data
-- for
local a
local b
-- read line by line
for a in love.filesystem.lines(tostring(mappath)) do
chunkdata = a
end
mapdata = {}
mapdata = split(chunkdata, ";")
-- parse terrian data
data = {}
data = split(mapdata[1], ":")
for a = 1, 17 do
for b = 1, 10 do
map[a][b] = tonumber(data[10 * (a - 1) + b])
end
end
-- parse start point data
data = {}
data = split(mapdata[3], ":")
startx = tonumber(data[1])
starty = tonumber(data[2])
-- parse goal data
data = {}
data = split(mapdata[2], ":")
endx = tonumber(data[1])
endy = tonumber(data[2])
-- set lava
data = {}
data = split(mapdata[4], ":")
for a = 1, #data - 1 do
objdata = {}
objdata = split(data[a], "/")
newlava(tonumber(objdata[1]), tonumber(objdata[2]))
end
-- set belts
data = {}
data = split(mapdata[5], ":")
for a = 1, #data - 1 do
objdata = {}
objdata = split(data[a], "/")
newbelt(tonumber(objdata[1]), tonumber(objdata[2]), tonumber(objdata[3]))
end
-- set trap generators
data = {}
data = split(mapdata[6], ":")
for a = 1, #data - 1 do
objdata = {}
objdata = split(data[a], "/")
newtrapgen(tonumber(objdata[1]), tonumber(objdata[2]), tonumber(objdata[3]), tonumber(objdata[4]), tonumber(objdata[5]))
print(tonumber(objdata[4]))
end
-- set traps
data = {}
data = split(mapdata[7], ":")
for a = 1, #data - 1 do
objdata = {}
objdata = split(data[a], "/")
newtrap(tonumber(objdata[1]), tonumber(objdata[2]), tonumber(objdata[3]), tonumber(objdata[4]))
end
-- set player start point
player["x"] = startx * 48 + 3
player["y"] = starty * 48 + 3
end