fix(game-ui): 메인 턴과 장수 상태 표시를 보완

This commit is contained in:
2026-08-29 03:30:50 +00:00
parent fa9fe71539
commit 26952fcdc7
11 changed files with 120 additions and 49 deletions
@@ -32,6 +32,7 @@ const props = withDefaults(
storageKey: string;
editModeStorageKey?: string;
maxPushTurn?: number;
maxShiftTurn?: number;
compact?: boolean;
mobile?: boolean;
title?: string;
@@ -44,6 +45,7 @@ const props = withDefaults(
{
editModeStorageKey: undefined,
maxPushTurn: 6,
maxShiftTurn: 6,
compact: false,
mobile: false,
title: '',
@@ -498,7 +500,7 @@ const clickOutsideMenu = (event: Event) => {
<summary>당기기</summary>
<div class="menu-items">
<button
v-for="amount in props.maxPushTurn"
v-for="amount in props.maxShiftTurn"
:key="amount"
@click="
emit('shift', -amount);
@@ -513,7 +515,7 @@ const clickOutsideMenu = (event: Event) => {
<summary>미루기</summary>
<div class="menu-items">
<button
v-for="amount in props.maxPushTurn"
v-for="amount in props.maxShiftTurn"
:key="amount"
@click="
emit('shift', amount);
@@ -695,12 +697,38 @@ const clickOutsideMenu = (event: Event) => {
</div>
<div v-if="!props.compact" class="bottom-actions">
<button class="legacy-button legacy-button--secondary" type="button" @click="emit('shift', -1)">
당기기
</button>
<button class="legacy-button legacy-button--secondary" type="button" @click="emit('shift', 1)">
미루기
</button>
<details class="legacy-menu bottom-shift-menu">
<summary class="legacy-button legacy-button--secondary" role="button">당기기</summary>
<div class="menu-items">
<button
v-for="amount in props.maxShiftTurn"
:key="amount"
type="button"
@click="
emit('shift', -amount);
clickOutsideMenu($event);
"
>
{{ amount }}
</button>
</div>
</details>
<details class="legacy-menu bottom-shift-menu">
<summary class="legacy-button legacy-button--secondary" role="button">미루기</summary>
<div class="menu-items">
<button
v-for="amount in props.maxShiftTurn"
:key="amount"
type="button"
@click="
emit('shift', amount);
clickOutsideMenu($event);
"
>
{{ amount }}
</button>
</div>
</details>
<button class="legacy-button legacy-button--secondary" type="button" @click="expanded = !expanded">
{{ expanded ? '접기' : '펼치기' }}
</button>
@@ -831,7 +859,8 @@ const clickOutsideMenu = (event: Event) => {
}
.control-pad > button,
.clock,
.legacy-menu > summary {
.control-pad > .legacy-menu > summary,
.advanced-actions .legacy-menu > summary {
box-sizing: border-box;
min-height: 34px;
border: 0;
@@ -272,11 +272,19 @@ const specialText = computed(() => {
<strong class="stat-value" :style="{ color: injuryInfo.color }">
<span>{{ stat.value }}</span>
<span v-if="stat.bonus > 0" class="leadership-bonus">+{{ stat.bonus }}</span>
<span class="bar-cell" :data-stat-progress="stat.key">
<LegacyProgressBar
:percent="stat.percent"
:label="`${stat.label} 성장 ${stat.accumulated} / ${stat.limit}`"
/>
<span class="bar-cell">
<RichTooltip
:title="`${stat.label} 성장`"
:description="`${stat.accumulated} / ${stat.limit}`"
:test-id="`stat-${stat.key}`"
>
<span :data-stat-progress="stat.key">
<LegacyProgressBar
:percent="stat.percent"
:label="`${stat.label} 성장 ${stat.accumulated} / ${stat.limit}`"
/>
</span>
</RichTooltip>
</span>
</strong>
</template>
@@ -539,6 +547,12 @@ const specialText = computed(() => {
grid-column: 3;
}
.bar-cell :deep(.rich-tooltip-trigger),
.bar-cell [data-stat-progress] {
display: block;
width: 100%;
}
.bar-cell,
.experience-bar {
display: grid;
@@ -17,7 +17,7 @@ export const resolveTournamentMainPresentation = (
tournamentStage: number,
tournamentType: number | null
): TournamentMainPresentation => {
const active = tournamentStage > 0 || tournamentType !== null;
const active = tournamentStage === 1 || tournamentStage === 6;
const bettingActive = tournamentStage === 6;
const tournamentLabel = tournamentType === null ? undefined : tournamentLabels[tournamentType];
return {