diff --git a/css/app.css b/css/app.css
index 72b5487..9f892fb 100644
--- a/css/app.css
+++ b/css/app.css
@@ -23,12 +23,13 @@
.level-marker {
position: absolute;
- top: 2px;
- right: 15px;
- font-size: 1.8em;
- -webkit-text-stroke: 1px lightgrey;
+ top: 4px;
+ right: 10px;
+ font-size: 2.5em;
+ -webkit-text-stroke: 1px lighgrey;
-webkit-text-fill-color: gold;
font-family: Arial, serif;
+ text-shadow: -1px -1px 2px black;
}
.form-control-sandbox {
diff --git a/index.html b/index.html
index 237e415..8dde473 100644
--- a/index.html
+++ b/index.html
@@ -47,7 +47,7 @@
Redeem reward ({{ currentQuest.reward }}
)
- Get a new quest
+ Get a new quest ({{ 3 - questSkipCounter }} left)
You don't have a quest at the moment.
diff --git a/js/app.js b/js/app.js
index 3e9bc81..c8441aa 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1,3 +1,11 @@
+Storage.prototype.setObj = function(key, obj) {
+ return this.setItem(key, JSON.stringify(obj))
+}
+
+Storage.prototype.getObj = function(key) {
+ return JSON.parse(this.getItem(key))
+}
+
let game = new Vue({
el: '#root',
data: {
@@ -182,6 +190,7 @@ let game = new Vue({
},
},
currentQuest: null,
+ questSkipCounter: 0,
loadedIntervals: []
},
created() {
@@ -189,15 +198,12 @@ let game = new Vue({
lastVersion: 'lastVersion',
resources: 'resources' + this.version,
buildings: 'buildings' + this.version,
- currentQuest: 'currentQuest' + this.version
}
this.checkVersion();
this.checkBuildings();
this.loadResourcesFromStorage();
- this.currentQuest = JSON.parse(localStorage.getItem(this.storageNames.currentQuest));
-
this.loadBuildingsFromStorage();
this.reloadBuildings();
},
@@ -250,7 +256,7 @@ let game = new Vue({
}
});
- this.buildings = savedBuildings;
+ game.buildings = savedBuildings;
}
},
@@ -410,7 +416,7 @@ let game = new Vue({
if (building.requires) {
Object.keys(building.requires).forEach((resource) => {
- if (building.requires[resource] > this.resources[resource].amount) {
+ if (building.requires[resource] > game.resources[resource].amount) {
resourcesMissing.push(resource);
}
});
@@ -432,7 +438,12 @@ let game = new Vue({
},
// Quests
- generateQuestWithRandomItems() {
+ generateQuestWithRandomItems(skip = false) {
+ if (skip && this.questSkipCounter >= 3) {
+ this.sendWarning('You can only skip 3 quests in a row!');
+ return false;
+ }
+
let game = this;
let quest = [];
let rewardSum = 0;
@@ -450,16 +461,18 @@ let game = new Vue({
});
if (rewardSum > 0) {
+ if (skip) {
+ game.questSkipCounter++;
+ }
+
quest['reward'] = rewardSum;
game.currentQuest = quest;
+ console.log(game.currentQuest);
game.$forceUpdate();
} else {
game.currentQuest = null;
game.sendInfo('You haven\'t unlocked any resources yet.');
}
-
- localStorage.setItem(this.storageNames.currentQuest, JSON.stringify(this.currentQuest));
- return this.currentQuest;
},
getRandomAmountForQuestResource() {
@@ -508,6 +521,7 @@ let game = new Vue({
game.add(game.currentQuest['reward']);
game.sendRewardMessage(game.currentQuest['reward']);
+ game.questSkipCounter = 0;
game.generateQuestWithRandomItems();
} else {
return false;
@@ -525,7 +539,7 @@ let game = new Vue({
// Templating
getFormattedNumber(value) {
- return value.toLocaleString('de-DE');
+ return value.toLocaleString();
},
getResourceIconForBuilding(building) {