// Main app class enyo.kind({ name: "TankOp.App", kind: enyo.Control, published: {activity: null}, classes: "home", components: [ // Image {kind: "Image", classes: "home-image no-select-content", src: "images/home.png"}, // Popup {classes: "start-button", ontap: "play", components: [ {kind: "Image", classes: "start-button-image no-select-content", src: "images/button.png"}, {name: "start", classes: "start-button-text no-select-content"} ]}, // Credit {kind: "Image", classes: "credit-button no-select-content", src: "images/credit.png", ontap: "showCredit"}, {name: "creditsPopup", kind: "TankOp.CreditsPopup"}, // Next mission {classes: "mission-description no-select-content", components: [ {components: [ {name: "nextmission", classes: "mission-header mission-line"}, {content: ":", classes: "mission-dot mission-line"} ]}, {classes: "go-arrow go-left mission-line", ontap: "previousMission"}, {name: "mission", content: " ", classes: "mission-text mission-line"}, {classes: "go-arrow go-right mission-line", ontap: "nextMission"} ]}, {classes: "mission-status no-select-content", components: [ {components: [ {name: "completed", classes: "mission-header mission-line"}, {content: ":", classes: "mission-dot mission-line"} ]}, {name: "stars", components: [ {classes: "mission mission-completed mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"}, {classes: "mission mission-tocomplete mission-line"} ]} ]} ], // Constructor create: function() { this.inherited(arguments); this.currentlevel = 0; this.$.mission.setContent(preferences.levels[this.currentlevel].name); this.init(); }, // Draw screen init: function() { this.setLocale(); // Draw completed mission var items = []; enyo.forEach(this.$.stars.getControls(), function(item) { items.push(item); }); for (var i = 0 ; i < items.length ; i++) { items[i].destroy(); }; for (var i = 0 ; i < preferences.levels.length ; i++) { this.$.stars.createComponent({ classes: (preferences.levels[i].completed ? "mission mission-completed mission-line" : "mission mission-tocomplete mission-line") }, {owner: this}).render(); } }, // Localization, changed update UI and missions setLocale: function() { this.$.start.setContent(l10n.get("Start")); this.$.nextmission.setContent(l10n.get("NextMission")); this.$.completed.setContent(l10n.get("Completed")); this.$.mission.setContent(preferences.levels[this.currentlevel].name = l10n.get(preferences.levels[this.currentlevel].id)); for (var i = 0 ; i < preferences.levels.length ; i++) { preferences.levels[i].name = l10n.get(preferences.levels[i].id); } }, // Select mission previousMission: function() { this.currentlevel--; if (this.currentlevel < 0) this.currentlevel = preferences.levels.length-1; this.$.mission.setContent(preferences.levels[this.currentlevel].name); }, nextMission: function() { this.currentlevel++; if (this.currentlevel == preferences.levels.length) this.currentlevel = 0; this.$.mission.setContent(preferences.levels[this.currentlevel].name); }, // Show credit showCredit: function() { this.$.creditsPopup.show(); }, // Play theme playTheme: function() { sound.play("audio/soundtrack", true); }, // Play game play: function() { // Stop sound sound.pause(); // Start game new TankOp.Play({level: this.currentlevel}).renderInto(document.getElementById("board")); }, // Load game from datastore load: function() { this.playTheme(); var datastoreObject = this.activity.getDatastoreObject(); var currentthis = this; datastoreObject.loadAsText(function (error, metadata, data) { var data = JSON.parse(data); preferences.setState(data); currentthis.init(); }); }, // Save game in datastore save: function(count) { var datastoreObject = this.activity.getDatastoreObject(); var jsonData = JSON.stringify(preferences.getState()); datastoreObject.setDataAsText(jsonData); datastoreObject.save(function() {}); } });