mirror of
https://github.com/YouHaveTrouble/GuildMaster.git
synced 2026-05-12 06:26:59 +00:00
style buttons and fix up number formatting
This commit is contained in:
+2
-1
@@ -157,7 +157,8 @@ export default defineComponent({
|
|||||||
data.portrait,
|
data.portrait,
|
||||||
data.attackExponent ?? 1.1,
|
data.attackExponent ?? 1.1,
|
||||||
data.level ?? 1,
|
data.level ?? 1,
|
||||||
data.exp ?? 0
|
data.exp ?? 0,
|
||||||
|
data.prestige ?? 0,
|
||||||
);
|
);
|
||||||
adventurer.busy = data.busy;
|
adventurer.busy = data.busy;
|
||||||
adventurers[data.id] = adventurer;
|
adventurers[data.id] = adventurer;
|
||||||
|
|||||||
+26
-6
@@ -1,8 +1,3 @@
|
|||||||
|
|
||||||
:root {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 0 10rem;
|
padding: 0 0 10rem;
|
||||||
@@ -61,4 +56,29 @@ body {
|
|||||||
filter: drop-shadow(-0.15rem 0.2rem 0.1rem rgba(0, 0, 0, 0.25));
|
filter: drop-shadow(-0.15rem 0.2rem 0.1rem rgba(0, 0, 0, 0.25));
|
||||||
border-image: url("/img/borders/metal_corner.png") 30 round;
|
border-image: url("/img/borders/metal_corner.png") 30 round;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-family: 'EB Garamond', serif;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 2px solid rgb(0, 0, 0);
|
||||||
|
transition: filter 0.05s linear;
|
||||||
|
white-space: nowrap;
|
||||||
|
&.metal {
|
||||||
|
background-image: url("/img/borders/metal_strip.png");
|
||||||
|
background-size: contain;
|
||||||
|
background-blend-mode: darken;
|
||||||
|
background-repeat: repeat;
|
||||||
|
color: #dcdcdc;
|
||||||
|
}
|
||||||
|
&:disabled {
|
||||||
|
opacity: 0.55;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
&:hover:not(:disabled) {
|
||||||
|
filter: brightness(1.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import type {GuildUpgrade} from "@/classes/GuildUpgrade";
|
import type {GuildUpgrade} from "@/classes/GuildUpgrade";
|
||||||
import {AdventurerCapacityUpgrade} from "@/classes/guildUpgrades/AdventurerCapacityUpgrade";
|
import {AdventurerCapacityUpgrade} from "@/classes/guildUpgrades/AdventurerCapacityUpgrade";
|
||||||
import formatGold from "@/classes/NumberMagic";
|
import {formatGold} from "@/classes/NumberMagic";
|
||||||
|
|
||||||
|
|
||||||
export class Guild {
|
export class Guild {
|
||||||
gold: number;
|
gold: number;
|
||||||
|
|||||||
@@ -1,10 +1,20 @@
|
|||||||
const formatter = new Intl.NumberFormat('en-US', {
|
const goldFormatter = new Intl.NumberFormat('en-US', {
|
||||||
maximumFractionDigits: 3,
|
maximumFractionDigits: 3,
|
||||||
// @ts-ignore - typescript doesn't know about this option for some godforsaken reason
|
// @ts-ignore - typescript doesn't know about this option for some godforsaken reason
|
||||||
notation: "compact",
|
notation: "compact",
|
||||||
useGrouping: true,
|
useGrouping: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function formatGold(number: number): string {
|
const damageFormatter = new Intl.NumberFormat('en-US', {
|
||||||
return formatter.format(number);
|
maximumFractionDigits: 2,
|
||||||
|
// @ts-ignore - typescript doesn't know about this option for some godforsaken reason
|
||||||
|
notation: "compact",
|
||||||
|
});
|
||||||
|
|
||||||
|
export function formatGold(number: number): string {
|
||||||
|
return goldFormatter.format(number);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function formatDamage(number: number): string {
|
||||||
|
return damageFormatter.format(number);
|
||||||
}
|
}
|
||||||
@@ -11,10 +11,11 @@
|
|||||||
<p>Prestige level: {{ adventurer.prestige }}</p>
|
<p>Prestige level: {{ adventurer.prestige }}</p>
|
||||||
|
|
||||||
<p>Exp: {{ adventurer.exp }} / {{ adventurer.getNextLevelExpRequirement() }}</p>
|
<p>Exp: {{ adventurer.exp }} / {{ adventurer.getNextLevelExpRequirement() }}</p>
|
||||||
<p>DPS: {{ adventurer.getDPS().toPrecision(2) }}</p>
|
<p>DPS: {{ formatDamage(adventurer.getDPS()) }}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="adventurer-upgrades">
|
<div class="adventurer-upgrades">
|
||||||
<button
|
<button
|
||||||
|
class="button metal"
|
||||||
:disabled="!adventurer.canPrestigeUp()"
|
:disabled="!adventurer.canPrestigeUp()"
|
||||||
:title="!adventurer.canPrestigeUp() ? 'Adventurer needs to be at max level to prestige up' : ''"
|
:title="!adventurer.canPrestigeUp() ? 'Adventurer needs to be at max level to prestige up' : ''"
|
||||||
@click="() => {
|
@click="() => {
|
||||||
@@ -33,9 +34,11 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type {Adventurer} from "@/classes/Adventurer";
|
import type {Adventurer} from "@/classes/Adventurer";
|
||||||
import {defineComponent, type PropType} from "vue";
|
import {defineComponent, type PropType} from "vue";
|
||||||
|
import {formatDamage} from "../classes/NumberMagic";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "AdventurerDetails",
|
name: "AdventurerDetails",
|
||||||
|
methods: {formatDamage},
|
||||||
props: {
|
props: {
|
||||||
adventurer: {
|
adventurer: {
|
||||||
type: Object as PropType<Adventurer | null>,
|
type: Object as PropType<Adventurer | null>,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<div class="upgrade">
|
<div class="upgrade">
|
||||||
<span>Adventurer capacity (level {{ guild.adventurerCapacity.level }})</span>
|
<span>Adventurer capacity (level {{ guild.adventurerCapacity.level }})</span>
|
||||||
<button
|
<button
|
||||||
|
class="button metal"
|
||||||
v-if="guild.adventurerCapacity.nextLevelCost"
|
v-if="guild.adventurerCapacity.nextLevelCost"
|
||||||
:disabled="guild.gold < guild.adventurerCapacity.nextLevelCost"
|
:disabled="guild.gold < guild.adventurerCapacity.nextLevelCost"
|
||||||
@click="upgradeAdventurerCapacity()"
|
@click="upgradeAdventurerCapacity()"
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {Guild} from "@/classes/Guild";
|
import {Guild} from "@/classes/Guild";
|
||||||
import {defineComponent, type PropType} from "vue";
|
import {defineComponent, type PropType} from "vue";
|
||||||
import formatGold from "../classes/NumberMagic";
|
import {formatGold} from "@/classes/NumberMagic";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "UpgradesList",
|
name: "UpgradesList",
|
||||||
@@ -67,7 +68,7 @@ export default defineComponent({
|
|||||||
width: min(25rem, 100%);
|
width: min(25rem, 100%);
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 0.2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -17,8 +17,12 @@
|
|||||||
</section>
|
</section>
|
||||||
<section class="upgrade">
|
<section class="upgrade">
|
||||||
<p>Guild level: {{ guild.level }}</p>
|
<p>Guild level: {{ guild.level }}</p>
|
||||||
<button :disabled="guild.upgradeCost ? guild.gold < guild.upgradeCost : true" @click="guild.upgrade()">
|
<button
|
||||||
<span>Upgrade guild level</span><br>
|
class="button metal"
|
||||||
|
:disabled="guild.upgradeCost ? guild.gold < guild.upgradeCost : true"
|
||||||
|
@click="guild.upgrade()"
|
||||||
|
>
|
||||||
|
<span>Upgrade guild level </span>
|
||||||
<span>({{ guild.displayUpgradeCost }})</span>
|
<span>({{ guild.displayUpgradeCost }})</span>
|
||||||
</button>
|
</button>
|
||||||
</section>
|
</section>
|
||||||
@@ -40,7 +44,7 @@ import {Guild} from "@/classes/Guild";
|
|||||||
|
|
||||||
import {version} from "../../package.json"
|
import {version} from "../../package.json"
|
||||||
import UpgradesList from "@/components/UpgradesList.vue";
|
import UpgradesList from "@/components/UpgradesList.vue";
|
||||||
import formatGold from "../classes/NumberMagic";
|
import {formatGold} from "@/classes/NumberMagic";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "GuildView",
|
name: "GuildView",
|
||||||
|
|||||||
Reference in New Issue
Block a user