feat: prestige and time era backend logic

This commit is contained in:
John McCardle 2022-01-11 17:30:14 -05:00 committed by pskfyi
parent 2b4dd94309
commit 34c44dd94a
1 changed files with 79 additions and 1 deletions

View File

@ -143,6 +143,7 @@ export const state = () => ({
unlocked: true,
viewed: false,
complete: false,
resetOnPrestige: false,
},
{
name: 'Study Time Magic',
@ -159,6 +160,7 @@ export const state = () => ({
unlocked: true,
viewed: false,
complete: false,
resetOnPrestige: true,
},
{
name: 'Create the Time Machine',
@ -175,9 +177,10 @@ export const state = () => ({
unlocked: false,
viewed: false,
complete: false,
resetOnPrestige: false,
},
{
name: 'Time To Cheat Death',
name: 'Time to Cheat Death',
description:
'Your body seems to be failing you. ' +
'Write a book to pass your knowedge to your younger self through the time machine. ' +
@ -192,6 +195,43 @@ export const state = () => ({
unlocked: false,
viewed: false,
complete: false,
resetOnPrestige: false,
},
{
// update doPrestige (mutation) if this is renamed
name: 'Time Travel Precision',
description:
'The time machine could target a certain month instead of a decade, ' +
'with the proper calibration.',
unlockCriteria: {
unit: 'missionsCompleted',
value: ['Time to Cheat Death', 'Create the Time Machine'],
},
completionCriteria: {
unit: 'spareTime',
value: 10000,
},
unlocked: false,
viewed: false,
complete: false,
resetOnPrestige: false,
},
{
name: 'Time to Cheat Death... Again',
description:
'Another life well lived. ' +
'Add a few chapters to the tome you received and send it back again.',
unlockCriteria: {
unit: 'missionsCompleted',
value: ['Time to Cheat Death', 'Create the Time Machine'],
},
completionCriteria: {
unit: 'maxAge',
},
unlocked: false,
viewed: false,
complete: false,
resetOnPrestige: true,
},
],
@ -267,6 +307,23 @@ export const getters = {
process.created ? totalInstruments + 1 : totalInstruments,
0
),
currentEra: (state) => {
if (state.gameDate < 100 * 12) {
return 'prehistoric'
} else if (state.gameDate < 999 * 12) {
return 'classical'
} else if (state.gameDate < 1400 * 12) {
return 'middle ages'
} else if (state.gameDate < 1750 * 12) {
return 'early modern'
} else if (state.gameDate < 2100 * 12) {
return 'modern'
} else if (state.gameDate < 2500 * 12) {
return 'future'
} else {
return 'distant future'
}
},
}
export const mutations = {
@ -320,4 +377,25 @@ export const mutations = {
travelGameDate: (state, month) => {
state.gameDate = month
},
doPrestige: (state) => {
state.currency = new Decimal(0)
state.wisdomApplied += state.wisdomGained
state.wisdomGained = 0
state.totalLifetimes += 1
state.timeJumpsBackwards += 1
state.playerLivedTotal += state.playerAge
// TODO: refactor next 3 lines if getters can be used in mutators: missionIsCompleted('Time Travel Precision')
const precisionMissionIndex = state.missions.findIndex(
(m) => m.name === 'Time Travel Precision'
)
const precisionMission = state.missions[precisionMissionIndex]
if (precisionMission.completed) {
state.playerAge = 30 * 12
state.gameDate = 1400 * 12
} else {
state.playerAge = 8 * 12
state.gameDate = 1378 * 12
}
},
doTimeTravel: (state, monthNumber) => {},
}