summaryrefslogtreecommitdiffhomepage
path: root/src/levels.rb
blob: 77f8b7f9392839ea3f01dbe7f098a4cb3f725e6a (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
FECS::Cmp.new('CurrentLevel', level: 0)

@current_level = FECS::Cmp::CurrentLevel.new

@levels = []

level0 = {
  start: [0,0],
  scissor_dimensions: [300,300],
  #scissor_path: [],
  end: [40,40,10,10],
  walls: [
    [250,250,250,150],
    [350,200,50,350],
    [70,470,200,200],
    [350,200,50,350],
    [470,470,200,200]
  ],
}

@levels.push(level0)

FECS::Sys.new('ConstructLevel') do
  # use current_level component to know which level from levels array to load
  # create entities e.g. walls
  # set properties for scissor box
  # set properties for end goal zone
  # move player to start
end

FECS::Sys.new('DestroyLevel') do
  # delete all level specific entities and their components
  # dont delete entities that carry over to next level
end

# changing the level will destroy the current level and set up the next one
FECS::Sys::ConstructLevel.trigger_when_is_set(@current_level, :level)
FECS::Sys::DestroyLevel.trigger_when_is_set(@current_level, :level)