mirror of
https://github.com/ysoftdevs/pf2016.git
synced 2026-03-22 17:19:59 +01:00
persist game state
This commit is contained in:
@@ -1,23 +1,55 @@
|
||||
var levelSelectorState = new Kiwi.State('levelSelector');
|
||||
|
||||
/**
|
||||
* Save status of locks.
|
||||
*/
|
||||
levelSelectorState.save = function() {
|
||||
this.game.saveManager.add('levelStatus', this.levelStatus);
|
||||
this.game.saveManager.save();
|
||||
}
|
||||
|
||||
levelSelectorState.preload = function() {
|
||||
this.addSpriteSheet('button', './data/images/gfx64/button.png', 128, 64 );
|
||||
|
||||
if (this.game.saveManager.exists('levelStatus')) {
|
||||
this.levelStatus = this.game.saveManager.getData('levelStatus');
|
||||
} else {
|
||||
this.levelStatus = ['unlocked', 'locked', 'locked', 'locked', 'locked', 'locked', 'locked', 'locked', 'locked',
|
||||
'locked', 'locked', 'locked'
|
||||
];
|
||||
this.save();
|
||||
}
|
||||
}
|
||||
|
||||
levelSelectorState.create = function() {
|
||||
var counterX = 0;
|
||||
var counterY = 0;
|
||||
|
||||
// Unlock next level when previous was completed
|
||||
if (game.levelStatus == 'complete') {
|
||||
if (game.levelIndex < 12) {
|
||||
this.levelStatus[game.levelIndex] = 'unlocked';
|
||||
game.levelStatus = 'none';
|
||||
this.save();
|
||||
}
|
||||
}
|
||||
|
||||
for (var i=1; i<levels.length+1; i++) {
|
||||
|
||||
var text = new Kiwi.GameObjects.Textfield( this, "Level " + i.toString(), 16+counterX*140, 60+counterY*80, "#000", 32, 'normal', 'Impact' );
|
||||
var sprite = new Kiwi.GameObjects.Sprite(this, this.textures.button, counterX*140, 50+counterY*80);
|
||||
var sprite = new Kiwi.GameObjects.Sprite(this, this.textures.button, 40+counterX*140, 50+counterY*80);
|
||||
sprite.levelIndex = i;
|
||||
sprite.input.onUp.add( this.buttonReleased, this );
|
||||
this.addChild( sprite );
|
||||
this.addChild( text );
|
||||
|
||||
if (this.levelStatus[i-1] == 'locked') {
|
||||
sprite.cellIndex = 1;
|
||||
} else {
|
||||
var text = new Kiwi.GameObjects.Textfield( this, i.toString(), 100+counterX*140, 60+counterY*80, "#1d5f0e", 32, 'normal', 'Impact' );
|
||||
this.addChild(text);
|
||||
sprite.input.onUp.add( this.buttonReleased, this );
|
||||
}
|
||||
|
||||
counterX++;
|
||||
if (counterX > 4) {
|
||||
if (counterX > 3) {
|
||||
counterX = 0;
|
||||
counterY++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user