not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

145 lines
4.5 KiB

// 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() {});
}
});