aboutsummaryrefslogtreecommitdiff
path: root/src/level1.moon
blob: a77814e3542ca7ec7aa90f5b1ade363ee8bf8f64 (plain)
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
layer = require "layers"
game = require "game"
state = require "global"
graph = require "graph"
disp = require "dispatch"
import Layer from layer
ui = require "ui"
print("In level1, Layer is", Layer)
for k,v in pairs layer
	print(k,":",v)
mod = ...

mod.setup_level = () ->
	state.current_level = 1
	--ret = am.group!
	state.clear_layers!
	elayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
	state.add_layer(elayer)
	state.ship("sprite").source = "data/level_1.png"
	state.money = 200
	state.ship\action(coroutine.create(game.ship_move_in_co))
	elayer\mark_square(9,8,"liquid fuel thruster")
	elayer\mark_square(6,8,"liquid fuel tank")
	elayer\mark_square(7,8,"fuel pipe")
	--Hint fuel pipe
	tp = disp.normal_to_window(vec2((8*32)+16,(8*32)+16))
	fuel_hint = am.translate(tp) ^ am.sprite("data/pipe1111_hint.png")\tag "sprite"
	elayer.node\append(fuel_hint)
	should_hint = true
	fuel_hint\action(coroutine.create(() ->
		while should_hint
			alpha = 0
			for i = 1,256,10
				fuel_hint("sprite").color = vec4(1,1,1,i/256)
				coroutine.yield!
			for i = 1,256,10
				fuel_hint("sprite").color = vec4(1,1,1,1 - (i/256))
				coroutine.yield!
	))


	state.selected_layer = elayer
	state.update = () ->
		print("Game level updated!")
		flat_tiles = elayer\flat_tiles!
		path1 = graph.path(elayer\get_tile(6,8),elayer\get_tile(9,8),flat_tiles,true,elayer.tiles_adjacent)
		--path2 = graph.path(elayer\get_tile(6,8),elayer\get_tile(9,7),flat_tiles,false,elayer.tiles_adjacent)
		print("path:",path1, path2)
		--print("selected layer:",state.active_layer)
		if path1
			state.ship\action(coroutine.create(game.ship_move_out_co))
	ui.reload_ui_layers!

	--ret ^ elayer.node
	--ret
mod