mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-12 14:36:58 +00:00
finish up base recruitment system
This commit is contained in:
@@ -13,7 +13,10 @@
|
||||
<p>Exp: {{ adventurer.exp }} / {{ adventurer.getNextLevelExpRequirement() }}</p>
|
||||
<p>DPS: {{ formatDamage(adventurer.getDPS()) }}</p>
|
||||
</div>
|
||||
<div class="adventurer-upgrades">
|
||||
<div
|
||||
v-if="showPrestigeButton"
|
||||
class="adventurer-upgrades"
|
||||
>
|
||||
<button
|
||||
class="button metal"
|
||||
:disabled="!adventurer.canPrestigeUp()"
|
||||
@@ -44,6 +47,10 @@ export default defineComponent({
|
||||
type: Object as PropType<Adventurer | null>,
|
||||
required: true,
|
||||
},
|
||||
showPrestigeButton: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
const refs = this.$refs as any;
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
<template>
|
||||
<section class="recruit panel pinned-paper">
|
||||
<h1>Applying adventurers</h1>
|
||||
<h1>Applying adventurers
|
||||
{{ `(${Object.keys(adventurersForHire).length}/${guild.recruitmentCapacity.getRecruitmentCapacity()})` }}</h1>
|
||||
<div class="adventurers">
|
||||
<div v-for="adventurerForHire in currentlyForHire" :key="adventurerForHire.id">
|
||||
<div class="adventurer-tile">
|
||||
<adventurer-tile class="hire-tile" :adventurer="adventurerForHire"/>
|
||||
<div class="decision">
|
||||
<div class="adventurer-tile" v-for="adventurerForHire in currentlyForHire" :key="adventurerForHire.id">
|
||||
<adventurer-tile
|
||||
class="hire-tile"
|
||||
:adventurer="adventurerForHire"
|
||||
@click="previewAdventurer(adventurerForHire)"
|
||||
/>
|
||||
<div class="decision">
|
||||
<span
|
||||
title="Hire"
|
||||
@click="hireAdventurer(adventurerForHire)"
|
||||
:class="{disabled: Object.keys(adventurersForHire).length >= guild.adventurerCapacity.getAdventurerCapacity()}"
|
||||
:class="{disabled: !canRecruitMore}"
|
||||
>
|
||||
✔
|
||||
</span>
|
||||
<span
|
||||
:title="Object.keys(adventurersForHire).length > 0 ? 'Dismiss' : ''"
|
||||
:class="{disabled: Object.keys(adventurersForHire).length <= 0}"
|
||||
@click="dismissAdventurer(adventurerForHire)"
|
||||
>
|
||||
<span
|
||||
:title="Object.keys(adventurersForHire).length > 0 ? 'Dismiss' : ''"
|
||||
:class="{disabled: Object.keys(adventurersForHire).length <= 0}"
|
||||
@click="dismissAdventurer(adventurerForHire)"
|
||||
>
|
||||
✗
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-if="Object.keys(adventurersForHire).length == 0">
|
||||
<span>Noone applied as of now. Check back later!</span>
|
||||
<span>No one applied as of now. Check back later!</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
@@ -46,16 +47,22 @@ export default defineComponent({
|
||||
currentlyForHire(): Array<Adventurer> {
|
||||
return Object.values(this.adventurersForHire);
|
||||
},
|
||||
canRecruitMore() {
|
||||
return Object.keys(this.adventurersForHire).length < this.guild.adventurerCapacity.getAdventurerCapacity();
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
hireAdventurer(adventurer: Adventurer): void {
|
||||
if (Object.keys(this.adventurersForHire).length >= this.guild.adventurerCapacity.getAdventurerCapacity()) return;
|
||||
if (!this.canRecruitMore) return;
|
||||
this.$emit("hireAdventurer", adventurer);
|
||||
},
|
||||
dismissAdventurer(adventurer: Adventurer) {
|
||||
if (Object.keys(this.adventurersForHire).length <= 0) return;
|
||||
this.$emit("dismissAdventurer", adventurer);
|
||||
}
|
||||
},
|
||||
previewAdventurer(adventurer: Adventurer): void {
|
||||
this.$emit("previewAdventurer", adventurer);
|
||||
},
|
||||
},
|
||||
props: {
|
||||
guild: {
|
||||
@@ -67,7 +74,7 @@ export default defineComponent({
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
emits: ["dismissAdventurer", "hireAdventurer"],
|
||||
emits: ["dismissAdventurer", "hireAdventurer", "previewAdventurer"],
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -88,8 +95,10 @@ export default defineComponent({
|
||||
gap: 0.25rem;
|
||||
font-size: 1.1rem;
|
||||
cursor: pointer;
|
||||
padding-block: 1rem;
|
||||
padding-inline: 0.5rem;
|
||||
|
||||
.entry {
|
||||
.hire-tile {
|
||||
height: 7rem;
|
||||
width: 7rem;
|
||||
}
|
||||
@@ -112,6 +121,8 @@ export default defineComponent({
|
||||
align-items: center;
|
||||
font-size: 2rem;
|
||||
gap: 1rem;
|
||||
line-height: 1;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
cursor: pointer;
|
||||
|
||||
@@ -48,6 +48,7 @@ export default defineComponent({
|
||||
overflow: clip;
|
||||
font-size: 5rem;
|
||||
line-height: 1;
|
||||
aspect-ratio: 1/1;
|
||||
color: rgba(0, 0, 0, 0.75);
|
||||
position: relative;
|
||||
background: rgb(2,0,36);
|
||||
|
||||
@@ -13,6 +13,19 @@
|
||||
Upgrade ({{ formatGold(guild.adventurerCapacity.nextLevelCost) }} gold)
|
||||
</button>
|
||||
</div>
|
||||
<div class="upgrade">
|
||||
<span>Recruitment capacity (level {{ guild.recruitmentCapacity.level }})</span>
|
||||
<small>Increases the maximum amount of adventurers that await recruitment</small>
|
||||
<button
|
||||
class="button metal"
|
||||
v-if="guild.recruitmentCapacity.nextLevelCost"
|
||||
:disabled="guild.gold < guild.recruitmentCapacity.nextLevelCost || guild.recruitmentCapacity.isMaxLevel()"
|
||||
@click="upgradeRecruitmentCapacity()"
|
||||
>
|
||||
<span v-if="!guild.recruitmentCapacity.isMaxLevel()">Upgrade ({{ formatGold(guild.recruitmentCapacity.nextLevelCost) }} gold)</span>
|
||||
<span v-else>Max level</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="upgrade" v-if="guild.level >= guild.autoFinishQuestsUpgrade.guildLevelRequirement">
|
||||
<span>Auto-finish quests (level {{ guild.autoFinishQuestsUpgrade.level - 1 }})</span>
|
||||
<small>Automatically finish quests when they are completed.</small>
|
||||
@@ -75,6 +88,14 @@ export default defineComponent({
|
||||
this.guild.gold -= this.guild.adventurerCapacity.nextLevelCost;
|
||||
this.guild.adventurerCapacity.upgrade();
|
||||
},
|
||||
upgradeRecruitmentCapacity(): void {
|
||||
if (!this.guild.recruitmentCapacity) return;
|
||||
if (this.guild.recruitmentCapacity.isMaxLevel()) return;
|
||||
if (!this.guild.recruitmentCapacity.nextLevelCost) return;
|
||||
if (this.guild.gold < this.guild.recruitmentCapacity.nextLevelCost) return;
|
||||
this.guild.gold -= this.guild.recruitmentCapacity.nextLevelCost;
|
||||
this.guild.recruitmentCapacity.upgrade();
|
||||
},
|
||||
upgradeAutoFinishQuests(): void {
|
||||
if (!this.guild.autoFinishQuestsUpgrade) return;
|
||||
if (this.guild.autoFinishQuestsUpgrade.isMaxLevel()) return;
|
||||
|
||||
Reference in New Issue
Block a user