diff --git a/src/App.vue b/src/App.vue index 9f0c80b..9b39b7c 100644 --- a/src/App.vue +++ b/src/App.vue @@ -97,6 +97,7 @@ export default defineComponent({ lastRecruitHandled: null as null | number, adventurerForHire: null as Adventurer | null, adventurersDatabase: {} as Array, + allAdventurers: {} as { [key: string]: Adventurer }, adventurers: {} as { [key: string]: Adventurer }, quests: {} as { [key: string]: { [key: string]: Quest } }, missives: { @@ -214,11 +215,18 @@ export default defineComponent({ for (const id in saveData.adventurers) { const data = saveData.adventurers[id]; + let portrait: string = ""; + + const adventurer = this.allAdventurers[data.id]; + if (adventurer) { + portrait = adventurer.portrait; + } + try { const adventurer = new Adventurer( data.id, data.name, - data.portrait, + portrait, data.attackExponent ?? 1.1, data.level ?? 1, data.exp ?? 0, @@ -293,6 +301,11 @@ export default defineComponent({ this.quests = promises[0] as { [key: string]: { [key: string]: Quest } }; this.adventurersDatabase = promises[1] as Array; + for (const adventurerId in this.adventurersDatabase) { + const adventurer = this.adventurersDatabase[adventurerId]; + this.allAdventurers[adventurer.id] = new Adventurer(adventurer.id, adventurer.name, adventurer.portrait, adventurer.attackExponent, adventurer.level, adventurer.exp, adventurer.prestige); + } + console.debug("Game data loaded!") this.loadGame(); this.adventurersDatabase = removeAlreadyHiredAdventurers(this.adventurersDatabase, this.adventurers); diff --git a/src/GameData.ts b/src/GameData.ts index ee3108e..f86a3b6 100644 --- a/src/GameData.ts +++ b/src/GameData.ts @@ -31,9 +31,17 @@ export function saveGame( data: GameData ): void { console.debug("Saving game..."); + + const adventurers = {} as { [key: string]: any }; + for (const adventurerId in data.adventurers) { + const adventurer: {[key: string]: any} = JSON.parse(JSON.stringify(data.adventurers[adventurerId])); + delete adventurer.portrait; + adventurers[adventurerId] = adventurer; + } + window.localStorage.setItem("savedGame", JSON.stringify({ guild: data.guild, - adventurers: data.adventurers, + adventurers: adventurers, missives: data.missives, lastQuestGot: data.lastQuestGot, lastRecruitAction: data.lastRecruitAction,