mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-11 22:16:59 +00:00
properly pass props in routing
This commit is contained in:
+80
-53
@@ -1,24 +1,52 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {RouterLink, RouterView} from 'vue-router'</script>
|
import {RouterLink, RouterView} from 'vue-router'
|
||||||
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<header>
|
<header>
|
||||||
<nav>
|
<nav>
|
||||||
<RouterLink to="/">Guild</RouterLink>
|
<RouterLink
|
||||||
<RouterLink to="/quests">Quests</RouterLink>
|
:to="{
|
||||||
<RouterLink to="/adventurers">Adventurers</RouterLink>
|
name: 'guild',
|
||||||
|
params: {
|
||||||
|
guild: guild,
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
Guild
|
||||||
|
</RouterLink>
|
||||||
|
<RouterLink
|
||||||
|
:to="{
|
||||||
|
name: 'quests',
|
||||||
|
params: {
|
||||||
|
guild: guild,
|
||||||
|
adventurers: adventurers,
|
||||||
|
quests: missives,
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
Quests
|
||||||
|
</RouterLink>
|
||||||
|
<RouterLink
|
||||||
|
:to="{
|
||||||
|
name: 'adventurers',
|
||||||
|
params: {
|
||||||
|
guild: guild,
|
||||||
|
adventurers: adventurers,
|
||||||
|
lastRecruitTime: lastRecruitHandled
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
Adventurers
|
||||||
|
</RouterLink>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<RouterView
|
<RouterView
|
||||||
:guild="guild"
|
@finalizeQuest="finalizeQuest($event)"
|
||||||
:adventurers="adventurers"
|
@wipeSave="resetSave()"
|
||||||
:quests="missives"
|
@recruitActionTaken="lastRecruitHandled = Number(new Date())"
|
||||||
:lastRecruitTime="lastRecruitHandled"
|
/>
|
||||||
@finalizeQuest="finalizeQuest($event)"
|
|
||||||
@wipeSave="resetSave()"
|
|
||||||
@recruitActionTaken="lastRecruitHandled = Number(new Date())"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@@ -46,17 +74,16 @@ export default defineComponent({
|
|||||||
data: () => ({
|
data: () => ({
|
||||||
guild: new Guild(1, 500),
|
guild: new Guild(1, 500),
|
||||||
lastQuestGot: {
|
lastQuestGot: {
|
||||||
S: null as null|number,
|
S: null as null | number,
|
||||||
A: null as null|number,
|
A: null as null | number,
|
||||||
B: null as null|number,
|
B: null as null | number,
|
||||||
C: null as null|number,
|
C: null as null | number,
|
||||||
D: null as null|number,
|
D: null as null | number,
|
||||||
E: null as null|number,
|
E: null as null | number,
|
||||||
F: null as null|number,
|
F: null as null | number,
|
||||||
},
|
},
|
||||||
lastRecruitHandled: null as null|number,
|
lastRecruitHandled: null as null | number,
|
||||||
adventurers: {
|
adventurers: {} as { [key: string]: Adventurer },
|
||||||
} as { [key: string]: Adventurer },
|
|
||||||
quests: {
|
quests: {
|
||||||
F: {
|
F: {
|
||||||
"1": new Quest("1", QuestRank.F, "Frog Frenzy", "Kill 10 demon frogs.", 30, 1, 25),
|
"1": new Quest("1", QuestRank.F, "Frog Frenzy", "Kill 10 demon frogs.", 30, 1, 25),
|
||||||
@@ -160,43 +187,43 @@ export default defineComponent({
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
loadGame() {
|
loadGame() {
|
||||||
const rawData = window.localStorage.getItem("savedGame");
|
const rawData = window.localStorage.getItem("savedGame");
|
||||||
if (!rawData) return;
|
if (!rawData) return;
|
||||||
const saveData = JSON.parse(rawData);
|
const saveData = JSON.parse(rawData);
|
||||||
|
|
||||||
this.lastQuestGot = saveData.lastQuestGot;
|
this.lastQuestGot = saveData.lastQuestGot;
|
||||||
|
|
||||||
this.guild = new Guild(saveData.guild.level, saveData.guild.gold);
|
this.guild = new Guild(saveData.guild.level, saveData.guild.gold);
|
||||||
|
|
||||||
const adventurers = {} as { [key: string]: Adventurer };
|
const adventurers = {} as { [key: string]: Adventurer };
|
||||||
|
|
||||||
for (const id in saveData.adventurers) {
|
for (const id in saveData.adventurers) {
|
||||||
const data = saveData.adventurers[id];
|
const data = saveData.adventurers[id];
|
||||||
const adventurer = new Adventurer(data.id, data.name, data.portrait, data.attackPerLevel, data.defensePerLevel, data.level);
|
const adventurer = new Adventurer(data.id, data.name, data.portrait, data.attackPerLevel, data.defensePerLevel, data.level);
|
||||||
adventurer.busy = data.busy;
|
adventurer.busy = data.busy;
|
||||||
adventurers[data.id] = adventurer;
|
adventurers[data.id] = adventurer;
|
||||||
}
|
}
|
||||||
this.adventurers = adventurers;
|
this.adventurers = adventurers;
|
||||||
|
|
||||||
const missives = {} as { [key: string]: { [key: string]: Quest } };
|
const missives = {} as { [key: string]: { [key: string]: Quest } };
|
||||||
|
|
||||||
for (const id in saveData.missives) {
|
for (const id in saveData.missives) {
|
||||||
const missiveRank = {} as { [key: string]: Quest }
|
const missiveRank = {} as { [key: string]: Quest }
|
||||||
for (const questId in saveData.missives[id]) {
|
for (const questId in saveData.missives[id]) {
|
||||||
const data = saveData.missives[id][questId];
|
const data = saveData.missives[id][questId];
|
||||||
const quest = new Quest(questId, getFromString(data.rank), data.title, data.text, data.maxProgress, data.expReward, data.goldReward);
|
const quest = new Quest(questId, getFromString(data.rank), data.title, data.text, data.maxProgress, data.expReward, data.goldReward);
|
||||||
quest.progressPoints = data.progressPoints;
|
quest.progressPoints = data.progressPoints;
|
||||||
if (data.adventurers.length > 0) {
|
if (data.adventurers.length > 0) {
|
||||||
quest.adventurers.push(this.adventurers[data.adventurers[0].id])
|
quest.adventurers.push(this.adventurers[data.adventurers[0].id])
|
||||||
}
|
}
|
||||||
missiveRank[questId] = quest;
|
missiveRank[questId] = quest;
|
||||||
}
|
}
|
||||||
missives[id] = missiveRank;
|
missives[id] = missiveRank;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.missives = missives;
|
this.missives = missives;
|
||||||
|
|
||||||
this.lastRecruitHandled = saveData.lastRecruitAction;
|
this.lastRecruitHandled = saveData.lastRecruitAction;
|
||||||
},
|
},
|
||||||
resetSave() {
|
resetSave() {
|
||||||
if (!confirm("You are about to wipe your save file. Are you sure?")) return;
|
if (!confirm("You are about to wipe your save file. Are you sure?")) return;
|
||||||
@@ -209,7 +236,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
this.saveGame();
|
this.saveGame();
|
||||||
}, 30*1000)
|
}, 30 * 1000)
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
this.updateMissives();
|
this.updateMissives();
|
||||||
|
|||||||
Reference in New Issue
Block a user