diff --git a/src/index_dev.html b/src/index_dev.html
index 5689dab..a7e18bb 100644
--- a/src/index_dev.html
+++ b/src/index_dev.html
@@ -15,4 +15,4 @@
-
+
diff --git a/src/muri.js b/src/muri.js
index 4f60f8d..1cb0605 100644
--- a/src/muri.js
+++ b/src/muri.js
@@ -45,7 +45,7 @@ var muri = (function() {
var muri = {};
- var bg = function(room) {
+ muri.bg = function(room) {
return kontra.sprite({
x: 0, y: 0,
image: kontra.assets.images['room_'+room]
@@ -53,6 +53,7 @@ var muri = (function() {
};
muri.currentRoom = 'stasis';
muri.modules = [];
+ muri.rooms = {};
muri.get = function(moduleName) {
for (var i in muri.modules)
if (muri.modules[i].name === moduleName)
@@ -66,20 +67,15 @@ var muri = (function() {
'stasis_door-sheet.png'
).then(function() {
document.getElementById('loading').style.display = 'none';
- var rooms = {
- stasis_dark: bg('stasis_dark'),
- stasis: bg('stasis')
- };
-
kontra.gameLoop({
update: function() {
- rooms[muri.currentRoom].update();
+ muri.rooms[muri.currentRoom].update();
muri.modules.forEach(function(m) {
if (m.update !== undefined) m.update();
});
},
render: function() {
- rooms[muri.currentRoom].render();
+ muri.rooms[muri.currentRoom].render();
muri.modules.forEach(function(m) {
if (m.render !== undefined) m.render();
});
@@ -89,6 +85,10 @@ var muri = (function() {
muri.modules.forEach(function(m) {
if (m.init !== undefined) m.init();
});
+ muri.rooms.forEach(function(r) {
+ ....
+ if (r.init !== undefined) r.init();
+ });
});
};
diff --git a/src/act1.js b/src/stasis.js
similarity index 77%
rename from src/act1.js
rename to src/stasis.js
index d1118a9..4e3fe92 100644
--- a/src/act1.js
+++ b/src/stasis.js
@@ -1,14 +1,16 @@
(function() {
- var act1 = {};
+ var stasis = {};
var controlPanelSprite = kontra.sprite({x: 16, y: 13, width: 3, height: 2});
+ var background, backgroundDark = null;
var doorAnimationSheet = null;
var doorSprite = null;
var roomState = {
- isDoorOpen: false
+ isDoorOpen: false,
+ isLightOn: false
};
- act1.init = function() {
+ stasis.init = function() {
doorAnimationSheet = kontra.spriteSheet({
image: kontra.assets.images['stasis_door-sheet'],
frameWidth: 24,
@@ -35,7 +37,10 @@
animations: doorAnimationSheet.animations
});
- if (muri.currentRoom === 'stasis_dark') {
+ background = muri.bg('stasis');
+ backgroundDark = muri.bg('stasis_dark');
+
+ if (!roomState.isLightOn) {
muri.get('bubble')
.story([
[['Beep', 'Bip, Bip'], [20, 15]],
@@ -45,9 +50,9 @@
}
};
- act1.update = function() {
+ stasis.update = function() {
doorSprite.update();
- if (muri.currentRoom === 'stasis') {
+ if (roomState.isLightOn) {
if (muri.get('mouse').clickedOn(doorSprite)) {
muri.get('mouse').releaseClick();
if (!roomState.isDoorOpen) {
@@ -63,8 +68,8 @@
if (muri.get('mouse').clickedOn(controlPanelSprite)) {
muri.get('mouse').releaseClick();
- if (muri.currentRoom === 'stasis_dark') {
- muri.currentRoom = 'stasis';
+ if (!roomState.isLightOn) {
+ roomState.isLightOn = true;
muri.get('bubble')
.talk([
'Ah, much better.',
@@ -77,11 +82,17 @@
}
};
- act1.render = function() {
- if (muri.currentRoom === 'stasis') {
+ stasis.render = function() {
+ if (roomState.isLightOn) {
+ background.render();
+ } else {
+ backgroundDark.render();
+ }
+
+ if (roomState.isLightOn) {
doorSprite.render();
}
};
- muri.modules.push(act1);
+ muri.rooms['stasis'] = stasis;
}());