diff --git a/pages/Missions.vue b/pages/Missions.vue index 19ab40a..a5036e0 100644 --- a/pages/Missions.vue +++ b/pages/Missions.vue @@ -75,12 +75,16 @@ export default { this.$store.commit('unlockTab', 'Time Machine') } - if (mission.name === 'Time to Cheat Death') { + if ( + mission.name === 'Time to Cheat Death' || + mission.name === 'Cheat Death... Again' + ) { this.$store.commit('unlockTab', 'Wisdom') - this.$store.commit('setPlayerAge', { year: 30 }) - this.$store.commit('timeTravel', { year: 1400, era: 'Early Modern' }) - this.$store.commit('tickLifetime') - this.$store.commit('spendCurrency', this.$store.state.currency) + // this.$store.commit('setPlayerAge', { year: 30 }) + // this.$store.commit('timeTravel', { year: 1400, era: 'Early Modern' }) + // this.$store.commit('tickLifetime') + // this.$store.commit('spendCurrency', this.$store.state.currency) + this.$store.commit('doPrestige') this.$store.commit('startGame') const message = diff --git a/pages/Wisdom.vue b/pages/Wisdom.vue index cd605c4..1601079 100644 --- a/pages/Wisdom.vue +++ b/pages/Wisdom.vue @@ -2,10 +2,14 @@
Total spare time generated{{ $store.getters.suffixedDecimalText($store.state.currencyTotal) }} + >{{ + $store.getters.suffixedDecimalText($store.state.currencyTotal) + }} Total spare time spent{{ $store.getters.suffixedDecimalText($store.getters.currencySpent) }} + >{{ + $store.getters.suffixedDecimalText($store.getters.currencySpent) + }} Total in-game time elapsed diff --git a/store/index.js b/store/index.js index 1cffc34..e0e5661 100644 --- a/store/index.js +++ b/store/index.js @@ -99,6 +99,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 5000000000000, + baseWorkerCost: 5000000000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -120,6 +121,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 50000000000, + baseWorkerCost: 50000000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -141,6 +143,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 500000000, + baseWorkerCost: 500000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -162,6 +165,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 5000000, + baseWorkerCost: 5000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -183,6 +187,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 50000, + baseWorkerCost: 50000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -204,6 +209,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 500, + baseWorkerCost: 500, nextWorkerFactor: 1.6, unlockThreshold: { tech: null, currency: 10000 }, @@ -225,6 +231,7 @@ export const state = () => ({ workerLevel: 0, // 0 = not hired; 1+ = hired nextWorkerCost: 50, // currency cost of next worker + baseWorkerCost: 50, // currency cost of first worker (for prestige reset) nextWorkerFactor: 1.5, // worker cost *= this factor after each purchase unlockThreshold: { tech: null, currency: 0 }, @@ -246,6 +253,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 5000, + baseWorkerCost: 5000, nextWorkerFactor: 1.8, unlockThreshold: { tech: 0, currency: new Decimal(10e5) }, @@ -267,6 +275,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 500000, + baseWorkerCost: 500000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -288,6 +297,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 50000000, + baseWorkerCost: 50000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -309,6 +319,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 5000000000, + baseWorkerCost: 5000000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -330,6 +341,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 500000000000, + baseWorkerCost: 500000000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -351,6 +363,7 @@ export const state = () => ({ workerLevel: 0, nextWorkerCost: 50000000000000, + baseWorkerCost: 50000000000000, nextWorkerFactor: 1.8, unlockThreshold: { tech: null, currency: new Decimal(1e1) }, @@ -436,25 +449,26 @@ export const state = () => ({ 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, - // }, + { + // 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. Send it to yourself as a child and ' + + 'give your past self even more of a head start.', + unlockCriteria: { + unit: 'missionsCompleted', + value: ['Time to Cheat Death', 'Create the Time Machine'], + }, + completionCriteria: { + unit: 'spareTime', + value: 1e15, + }, + unlocked: false, + viewed: false, + complete: false, + resetOnPrestige: false, + }, // { // name: 'Live Forever', // description: @@ -790,7 +804,8 @@ export const mutations = { // Time Machine tickEnergy: (state) => { - state.energy += 1 + state.energy += 1 + Math.floor(state.wisdomApplied / 100) + if (state.energy > state.energyMax) state.energy = state.energyMax }, spendEnergy: (state, amount) => { if (amount <= state.energy) { @@ -810,24 +825,39 @@ export const mutations = { state.gameDate = month }, doPrestige: (state) => { + // sum up statistics for Wisdom tab state.currency = new Decimal(0) state.wisdomApplied += state.wisdomGained state.wisdomGained = 0 state.lifetimes += 1 state.timeJumpsBackwards += 1 state.playerLivedTotal += state.playerAge + + // If the "Time Travel Precision" mission is done, send players back as a child for +20ish more years of life // 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 { + if (precisionMission.complete) { state.playerAge = 8 * 12 state.gameDate = 1378 * 12 + } else { + state.playerAge = 30 * 12 + state.gameDate = 1400 * 12 } + + // restart missions as appropriate + state.missions.forEach((e) => { + if (e.resetOnPrestige) e.complete = false + }) + + // delete all apprentices + state.processes.forEach((e) => { + e.visited = false // require re-travel to time period to hire + e.workerLevel = 0 + e.nextWorkerCost = e.baseWorkerCost + }) }, timeTravel: (state, { era, year = 0, month = 0 }) => { const newYear = year * 12 + month @@ -849,7 +879,10 @@ export const mutations = { Vue.set(state.spells[index], 'unlocked', true) }, tickMana: (state) => { - state.mana += 1 + state.mana += 1 + Math.floor(state.wisdomApplied / 100) + // apply a n% chance of extra mana for wisdom not part of a full hundred + if (Math.random() * 100 < state.wisdomApplied % 100) state.mana += 1 + if (state.mana > state.manaMax) state.mana = state.manaMax }, spendMana: (state, amount) => { if (amount <= state.mana) {