moonbus: configurable map levels

This commit is contained in:
Dejvino 2024-08-10 07:56:16 +02:00
parent 77d0e139a0
commit a82e34aeb2

View File

@ -17,7 +17,13 @@ function reset()
plr_transed=0 plr_transed=0
plr_money=0 plr_money=0
plr_target={x=8,y=2} plr_target={x=8,y=2}
plr_level=2 plr_level=3
levels={
{map_start=0,map_height=8},
{map_start=8,map_height=8},
{map_start=16,map_height=16}
}
telem_spd={} telem_spd={}
@ -25,7 +31,8 @@ function reset()
engine_power=0.1 engine_power=0.1
fuel_cons=0.005 fuel_cons=0.005
land_speed_limit=1 land_speed_limit=1
maph=8 mapy=levels[plr_level].map_start
maph=levels[plr_level].map_height
bonus_docked=1 bonus_docked=1
cam={} cam={}
@ -97,7 +104,7 @@ function _update()
for p in all({plus(pc,clearx(unit(plr_speed,0.4))), plus(pc,cleary(unit(plr_speed,0.4)))}) do for p in all({plus(pc,clearx(unit(plr_speed,0.4))), plus(pc,cleary(unit(plr_speed,0.4)))}) do
local pmaps=0 local pmaps=0
if (p.y>=0 and p.y<=maph) then if (p.y>=0 and p.y<=maph) then
pmaps=mget(p.x,maph-p.y+plr_level*maph) pmaps=mget(p.x,mapy+maph-p.y)
end end
local dock=fget(pmaps,7) local dock=fget(pmaps,7)
local target=dist(plr_pos,plr_target)<=1 local target=dist(plr_pos,plr_target)<=1
@ -143,7 +150,7 @@ function _draw()
cls() cls()
camera(cam.x,cam.y) camera(cam.x,cam.y)
local lvl=plr_level*maph local lvl=mapy
map(0,lvl, 0, 128-maph*8) map(0,lvl, 0, 128-maph*8)
map(0,lvl, -128*8, 128-maph*8) map(0,lvl, -128*8, 128-maph*8)
map(0,lvl, 128*8, 128-maph*8) map(0,lvl, 128*8, 128-maph*8)
@ -241,7 +248,7 @@ function next_target()
local docks={} local docks={}
for x=0,127 do for x=0,127 do
for y=0,maph-1 do for y=0,maph-1 do
local m=mget(x,plr_level*maph+y) local m=mget(x,mapy+y)
local dock=fget(m,7) local dock=fget(m,7)
local new=x!=plr_target.x and y!=plr_target.y local new=x!=plr_target.x and y!=plr_target.y
if dock and new then if dock and new then
@ -376,6 +383,14 @@ __map__
1300000000162500000000001100000020212223000000000000000000000000000000000000302121222300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1300000000162500000000001100000020212223000000000000000000000000000000000000302121222300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1013000000000000000000121013000000000000000000000016000000000000000000000000302121213100000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1013000000000000000000121013000000000000000000000016000000000000000000000000302121213100000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1010130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
__sfx__ __sfx__
000400002c2501f250132503365036650396503765035650316502f6502c650246501d6501b6501b65019650126500e65010650116500c6500d6500e6500c6500a65007650016500065000000000000000000000 000400002c2501f250132503365036650396503765035650316502f6502c650246501d6501b6501b65019650126500e65010650116500c6500d6500e6500c6500a65007650016500065000000000000000000000
010800000a4500a4500a4503d0502d0503d0502645026050264503d61421630216301d6201c6101a6150000000000000000000000000000000000000000000000000000000000000000000000000000000000000 010800000a4500a4500a4503d0502d0503d0502645026050264503d61421630216301d6201c6101a6150000000000000000000000000000000000000000000000000000000000000000000000000000000000000