2022-01-07 19:46:33 -08:00
< template >
2022-01-10 21:48:15 -08:00
< div class = "missions grid" >
< responsive-grid
v - if = "incomplete.length"
: class = "
completed . length &&
` pb-6 border-b-2 border- ${ $store . getters . activeTab . darkColor } `
"
>
< mission-button
v - for = "(mission, index) in incomplete"
: key = "index"
: mission = "mission"
@ click = "complete(mission)"
/ >
< / responsive-grid >
< div
v - else
: class = "
completed . length &&
` pt-6 pb-10 border-b-2 border- ${ $store . getters . activeTab . darkColor } `
"
>
< h3 class = "text-center" > No Missions Currently Available < / h3 >
< / div >
< template v-if = "completed.length" >
< h2 class = "pt-2 pb-2 text-center text-xl" > Completed Missions < / h2 >
< responsive-grid min = "1" mid = "3" max = "6" >
< completed-mission
v - for = "(mission, index) in completed"
: key = "index"
: mission = "mission"
/ >
< / responsive-grid >
< / template >
< / div >
2022-01-07 19:46:33 -08:00
< / template >
2022-01-10 21:48:15 -08:00
< script >
export default {
computed : {
unlocked ( ) {
return this . $store . state . missions . filter ( ( { unlockCriteria } ) => {
if ( unlockCriteria . unit === 'instruments' ) {
return unlockCriteria . value <= this . $store . getters . instruments
} else if ( unlockCriteria . unit === 'apprenticeLevels' ) {
return unlockCriteria . value <= this . $store . getters . apprenticeLevels
} else if ( unlockCriteria . unit === 'missionsCompleted' ) {
return unlockCriteria . value . every ( ( name ) =>
this . $store . getters . missionIsCompleted ( name )
)
} else if ( unlockCriteria . unit === 'timeJumpsBackwards' ) {
return unlockCriteria . value <= this . $store . state . timeJumpsBackwards
} else {
return false
}
} )
} ,
incomplete ( ) {
return this . unlocked . filter ( ( m ) => ! m . complete )
} ,
completed ( ) {
return this . unlocked . filter ( ( m ) => m . complete )
} ,
} ,
methods : {
complete ( mission ) {
this . $store . commit ( 'completeMission' , mission . name )
2022-01-11 22:23:41 -08:00
2022-01-10 22:01:14 -08:00
if ( mission . completionCriteria . unit === 'spareTime' ) {
this . $store . commit ( 'spendCurrency' , mission . completionCriteria . value )
}
2022-01-11 22:23:41 -08:00
if ( mission . name === 'Study Time Magic' ) {
this . $store . commit ( 'unlockTab' , 'Time Magic' )
}
if ( mission . name === 'Create the Time Machine' ) {
this . $store . commit ( 'unlockTab' , 'Time Machine' )
}
if ( mission . name === 'Time to Cheat Death' ) {
this . $store . commit ( 'unlockTab' , 'Wisdom' )
this . $store . commit ( 'setPlayerAge' , { year : 30 } )
2022-01-12 21:37:30 -08:00
this . $store . commit ( 'timeTravel' , { year : 1400 , era : 'Early Modern' } )
2022-01-11 22:23:41 -08:00
this . $store . commit ( 'tickLifetime' )
}
2022-01-10 21:48:15 -08:00
} ,
} ,
}
< / script >
< style scoped >
. missions {
grid - template - rows : minmax ( 0 , 1 fr ) auto auto ;
}
< / style >