Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Game = (function() {
- 'use strict';
- var Game = function() {
- this.lab = new GameObjects.Lab();
- this.research = null;
- this.workers = null;
- this.upgrades = null;
- this.achievements = null;
- this.allObjects = {lab : this.lab};
- this.loaded = false;
- };
- Game.prototype.load = function() {
- if (this.loaded) {
- return;
- }
- // I know synchronous requests are bad as they will block the browser.
- // However, I don't see any other reasonable way to do this in order to
- // make it work with Angular. If you know a way, let me know, and I'll
- // give you a beer. - Kevin
- this.research = Helpers.loadFile('json/research.json');
- this.workers = Helpers.loadFile('json/workers.json');
- this.upgrades = Helpers.loadFile('json/upgrades.json');
- this.achievements = Helpers.loadFile('json/achievements.json');
- // Turn JSON files into actual game objects and fill map of all objects
- var _this = this;
- var makeGameObject = function(type, object) {
- // It's okay to define this function here since load is only called
- // once anyway...
- var o = new type(object);
- _this.allObjects[o.key] = o;
- return o;
- };
- this.research = this.research.map(
- function(r) { return makeGameObject(GameObjects.Research, r); });
- this.workers = this.workers.map(
- function(w) { return makeGameObject(GameObjects.Worker, w); });
- this.upgrades = this.upgrades.map(
- function(u) { return makeGameObject(GameObjects.Upgrade, u); });
- this.achievements = this.achievements.map(
- function(a) { return makeGameObject(GameObjects.Achievement, a); });
- // Load states from local store
- for (var key in this.allObjects) {
- var o = this.allObjects[key];
- o.loadState(ObjectStorage.load(key));
- }
- this.loaded = true;
- };
- Game.prototype.save = function() {
- // Save every object's state to local storage
- for (var key in this.allObjects) {
- console.log(1)
- ObjectStorage.save(key, this.allObjects[key].state);
- }
- };
- return {Game : Game};
- }());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement