@ -1,3 +1,11 @@
@@ -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({
@@ -182,6 +190,7 @@ let game = new Vue({
} ,
} ,
currentQuest : null ,
questSkipCounter : 0 ,
loadedIntervals : [ ]
} ,
created ( ) {
@ -189,15 +198,12 @@ let game = new Vue({
@@ -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({
@@ -250,7 +256,7 @@ let game = new Vue({
}
} ) ;
this . buildings = savedBuildings ;
game . buildings = savedBuildings ;
}
} ,
@ -410,7 +416,7 @@ let game = new Vue({
@@ -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({
@@ -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({
@@ -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({
@@ -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({
@@ -525,7 +539,7 @@ let game = new Vue({
// Templating
getFormattedNumber ( value ) {
return value . toLocaleString ( 'de-DE' ) ;
return value . toLocaleString ( ) ;
} ,
getResourceIconForBuilding ( building ) {