/ld26

To get this branch, use:
bzr branch http://9ix.org/bzr/ld26

« back to all changes in this revision

Viewing changes to main.lua

  • Committer: Josh C
  • Date: 2013-04-29 00:42:39 UTC
  • Revision ID: josh@9ix.org-20130429004239-r0yedw9bxk7infzs
drop

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
DEBUG = true
3
3
 
4
4
require 'zoetrope'
 
5
--inspect = require 'inspect'
5
6
 
6
7
--require 'sprite'
7
8
require 'version'
10
11
require 'transition'
11
12
require 'displacer'
12
13
require 'inventory'
13
 
require 'flower'
 
14
require 'levels'
 
15
require 'items'
 
16
require 'troll'
 
17
require 'gatetrigger'
 
18
require 'fairyactivator'
 
19
require 'realfairy'
14
20
 
15
21
require 'svg_levels'
16
22
 
17
 
levels = {
18
 
   forest1 = {
19
 
      objects = function() return {
20
 
                      Tile:new{image = 'data/forest1-bg.png'},
21
 
                      Player:new{x = 200, y = 380,
22
 
                                 minY = 330, maxY = 500,
23
 
                                 image = 'data/forest1-player.png'},
24
 
                      Tile:new{image = 'data/forest1-fg.png'}
25
 
                   } end,
26
 
   },
27
 
   foresthut = {
28
 
      objects = function() return {
29
 
                      Tile:new{image = 'data/foresthut-bg.png'},
30
 
                      Player:new{x = 745, y = 430,
31
 
                                 image = 'data/forest1-player.png'},
32
 
                      Tile:new{image = 'data/foresthut-fg.png'}
33
 
                   } end,
34
 
   },
35
 
   shore = {
36
 
      objects = function() return {
37
 
                      Tile:new{image = 'data/shore-bg.png'},
38
 
                      Player:new{x = 145, y = 133,
39
 
                                 minY = 133, maxY = 133,
40
 
                                 image = 'data/shore-player.png'},
41
 
                      Tile:new{image = 'data/shore-fg.png'},
42
 
                      Transition:new{x = 10, y = 133, target = 'forest1',
43
 
                                     targetX = 735, targetY = 370}
44
 
                   } end
45
 
   },
46
 
   lake = {
47
 
      objects = function() return {
48
 
                      Tile:new{image = 'data/lake-bg.png'},
49
 
                      Player:new{x = 540, y = 266,
50
 
                                 image = 'data/lake-player.png'},
51
 
                   }
52
 
                end
53
 
   },
54
 
   -- village = {
55
 
   --    objects = function() return {
56
 
   --                    Tile:new{image = 'data/village-bg.png'},
57
 
   --                    Player:new{x = 121, y = 440,
58
 
   --                               image = 'data/village-player.png'},
59
 
   --                 }
60
 
   --              end
61
 
   -- },
62
 
   bridge = {
63
 
      objects = function() return {
64
 
                      Tile:new{image = 'data/bridge-bg.png'},
65
 
                      Player:new{x = 121, y = 440,
66
 
                                 image = 'data/bridge-player.png'},
67
 
                      Tile:new{image = 'data/bridge-fg.png'}
68
 
                   }
69
 
                end
70
 
   }
71
 
}
72
 
 
73
23
GameView = View:extend {
74
 
   level = 'shore', --default level
75
24
   onNew = function (self)
76
25
              --print('loading level: '..self.level)
77
26
              if not levels[self.level] then
79
28
              end
80
29
              for _, obj in ipairs(levels[self.level].objects()) do
81
30
                 self:add(obj)
 
31
                 --if obj.gateup then print('ADDING GATEUP') end
82
32
              end
83
33
              for _, obj in ipairs(svg_objects[self.level]) do
84
34
                 if not the.inventory.items[obj.name] then
85
35
                    self:add(obj)
86
36
                 end
 
37
                 if obj.name == 'flag' then
 
38
                    self:add(obj)
 
39
                 end
87
40
              end
88
41
 
 
42
              --self:add(Fill:new{x=100,y=100,width=25,height=25,fill={255,255,255}})
 
43
 
89
44
              self:add(the.inventory)
90
45
 
91
46
              self:flash({0,0,0})
96
51
   draw = function (self, x, y)
97
52
             View.draw(self, x, y)
98
53
             --love.graphics.print('FPS:' .. love.timer.getFPS(), 20, 20)
99
 
             love.graphics.print('version:' .. VERSION, 20, 570)
 
54
             --love.graphics.print('version:' .. VERSION, 20, 570)
100
55
          end,
101
56
   onUpdate = function (self, dt)
102
57
              end
103
58
}
104
59
 
105
60
the.app = App:new {
 
61
   level = 'shore', --default level
106
62
   onRun = function (self)
107
 
              self.view = GameView:new()
 
63
              print('Version: ' .. VERSION)
 
64
              self.view = GameView:new{level = self.level}
108
65
              if DEBUG then
109
66
                 self.console:watch('VERSION', 'VERSION')
110
67
                 self.console:watch('updateTook', 'the.updateTook')
115
72
                 -- back off that dark overlay a bit
116
73
                 self.console.fill.fill[4] = 75
117
74
              end
 
75
 
 
76
              --the.inventory:add(Flag:new())
 
77
              the.inventory:add(Fairy:new())
118
78
           end,
119
79
   onUpdate = function (self, dt)
120
80
                 if the.keys:justPressed('escape') then
133
93
-- for accessing from debug console
134
94
function l(level)
135
95
   the.app.view = GameView:new{level = level}
 
96
end
 
97
 
 
98
function love.load(arg)
 
99
   if arg[2] then
 
100
      the.app.level = arg[2]
 
101
   end
 
102
 
 
103
   the.app:run()
136
104
end
 
 
b'\\ No newline at end of file'