aboutsummaryrefslogtreecommitdiff
path: root/src/level12.moon
blob: a1cf1e59a14332770cf98d9718e29b9b01f177a7 (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
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
layer = require "layers"
game = require "game"
state = require "global"
graph = require "graph"
import Layer from layer
ui = require "ui"

mod = ...

mod.setup_level = () ->
	state.current_level = 10
	--ret = am.group!
	state.move_out_done = false
	state.clear_layers!
	flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
	elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
	hlayer = Layer("high voltage","high volt cabel",30,"data/layer_hv.png")
	state.add_layer(flayer)
	state.add_layer(elayer)
	state.add_layer(hlayer)
	--state.money = 500
	state.money = 1460
	state.ship("position").x = 800
	state.ship\action(coroutine.create(game.ship_move_in_co))
	state.ship("sprite").source = "data/level_12.png"
	t1 = flayer\mark_square(9,12,"liquid fuel tank")

	t2 = flayer\mark_square(24,6,"generator")
	t3 = elayer\mark_square(24,6,"generator")

	t4 = flayer\mark_square(26,6,"liquid fuel thruster")
	t5 = flayer\mark_square(26,8,"liquid fuel thruster")
	t6 = flayer\mark_square(26,10,"liquid fuel thruster")

	t7 = elayer\mark_square(24,4,"ion thruster")
	t8 = elayer\mark_square(20,3,"ion thruster")
	t9 = elayer\mark_square(15,3,"ion thruster")
	t10 = elayer\mark_square(19,9,"ion thruster")
	t11 = elayer\mark_square(19,12,"battery")

	t12 = hlayer\mark_square(16,8,"high volt source")
	t13 = hlayer\mark_square(8,5,"laser beam")

	elayer.node.hidden = true
	hlayer.node.hidden = true
	state.selected_layer = flayer
	state.update = () ->
		ftiles = flayer\flat_tiles!
		etiles = elayer\flat_tiles!
		--Mege the etiles into the ftiles layer so we can check
		--that hv cabels are not next to normal cables
		htiles = hlayer\flat_tiles!
		for _,t in pairs etiles
			table.insert(htiles,t)
		--table.merge(htiles,etiles)
		--table.merge(htiles,hlayer\flat_tiles!)
		print("htiles before path finding:",htiles)
		paths,paths2 = nil,nil
		pass,err = pcall(() ->
			paths = layer.check_paths{
				{t10,t11,etiles},
				{t7,t3,etiles},
				{t8,t3,etiles},
				{t9,t3,etiles},
				{t2,t1,ftiles},
				{t4,t1,ftiles},
				{t5,t1,ftiles},
				{t6,t1,ftiles},
			}
			paths2 = layer.check_hv_paths{	
				{t12,t13,htiles},
			}
			print("paths:",paths)
			print("paths2 is",paths2)
			return (paths and paths2)
		)
		print("pass:",pass,"err:",err)
		if pass and err
			state.ship\action(coroutine.create(game.ship_move_out_co))
		
	ui.reload_ui_layers!

mod