merge: 최신 main을 사령부 모바일 호환에 통합
This commit is contained in:
@@ -256,6 +256,11 @@ const toExportedGeneral = (general: GeneralDraft): GeneralExport => ({
|
||||
inheritBuff: { ...general.inheritBuff },
|
||||
});
|
||||
|
||||
const resolveAvailableNationType = (candidate?: string | null): string => {
|
||||
const available = options.value?.nationTypes ?? [];
|
||||
return available.some((entry) => entry.key === candidate) ? (candidate as string) : (available[0]?.key ?? '');
|
||||
};
|
||||
|
||||
const initializeDefaults = async () => {
|
||||
loading.value = true;
|
||||
error.value = null;
|
||||
@@ -269,9 +274,9 @@ const initializeDefaults = async () => {
|
||||
repeatCnt.value = 1;
|
||||
seed.value = '';
|
||||
|
||||
const nationTypeDefault = context.nationTypes[0]?.key ?? 'che_중립';
|
||||
attackerNation.type = me?.nation?.typeCode ?? nationTypeDefault;
|
||||
defenderNation.type = me?.nation?.typeCode ?? nationTypeDefault;
|
||||
const nationTypeDefault = resolveAvailableNationType(me?.nation?.typeCode);
|
||||
attackerNation.type = nationTypeDefault;
|
||||
defenderNation.type = nationTypeDefault;
|
||||
|
||||
attackerNation.level = me?.nation?.level ?? 0;
|
||||
defenderNation.level = me?.nation?.level ?? 0;
|
||||
@@ -304,10 +309,10 @@ const applyGameEnvironment = () => {
|
||||
return;
|
||||
}
|
||||
const me = gameDefaults.value;
|
||||
const nationTypeDefault = options.value.nationTypes[0]?.key ?? 'che_중립';
|
||||
const nationTypeDefault = resolveAvailableNationType(me?.nation?.typeCode);
|
||||
year.value = options.value.world.currentYear;
|
||||
month.value = options.value.world.currentMonth;
|
||||
attackerNation.type = me?.nation?.typeCode ?? nationTypeDefault;
|
||||
attackerNation.type = nationTypeDefault;
|
||||
defenderNation.type = attackerNation.type;
|
||||
attackerNation.level = me?.nation?.level ?? 0;
|
||||
defenderNation.level = attackerNation.level;
|
||||
@@ -326,7 +331,7 @@ const applyIndependentEnvironment = () => {
|
||||
if (!options.value) {
|
||||
return;
|
||||
}
|
||||
const nationTypeDefault = options.value.nationTypes[0]?.key ?? 'che_중립';
|
||||
const nationTypeDefault = resolveAvailableNationType();
|
||||
year.value = options.value.world.startYear;
|
||||
month.value = 1;
|
||||
seed.value = '';
|
||||
@@ -740,13 +745,13 @@ const importBattle = (data: BattleExport) => {
|
||||
month.value = data.month;
|
||||
repeatCnt.value = data.repeatCnt;
|
||||
|
||||
attackerNation.type = data.attackerNation.type;
|
||||
attackerNation.type = resolveAvailableNationType(data.attackerNation.type);
|
||||
attackerNation.level = data.attackerNation.level;
|
||||
attackerNation.tech = Math.floor(data.attackerNation.tech / 1000);
|
||||
attackerNation.isCapital = data.attackerNation.capital === 1;
|
||||
attackerCity.level = data.attackerCity.level;
|
||||
|
||||
defenderNation.type = data.defenderNation.type;
|
||||
defenderNation.type = resolveAvailableNationType(data.defenderNation.type);
|
||||
defenderNation.level = data.defenderNation.level;
|
||||
defenderNation.tech = Math.floor(data.defenderNation.tech / 1000);
|
||||
defenderNation.isCapital = data.defenderNation.capital === 3;
|
||||
|
||||
@@ -143,7 +143,7 @@ watch(
|
||||
</h1>
|
||||
<div class="game-shell__actions desktop-action-controls">
|
||||
<button
|
||||
class="game-shell__action toggle"
|
||||
class="game-shell__action toggle legacy-button legacy-button--navigation"
|
||||
:class="{ active: realtimeEnabled }"
|
||||
type="button"
|
||||
@click="dashboard.setRealtimeEnabled(!realtimeEnabled)"
|
||||
@@ -151,7 +151,7 @@ watch(
|
||||
실시간 동기화: {{ realtimeLabel }}
|
||||
</button>
|
||||
<button
|
||||
class="game-shell__action game-shell__action--navigation"
|
||||
class="game-shell__action legacy-button legacy-button--navigation"
|
||||
type="button"
|
||||
:disabled="refreshing"
|
||||
:aria-busy="refreshing"
|
||||
@@ -159,7 +159,13 @@ watch(
|
||||
>
|
||||
갱 신
|
||||
</button>
|
||||
<button class="game-shell__action" type="button" @click="moveLobby">로비로</button>
|
||||
<button
|
||||
class="game-shell__action legacy-button legacy-button--navigation"
|
||||
type="button"
|
||||
@click="moveLobby"
|
||||
>
|
||||
로비로
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -475,10 +481,6 @@ button {
|
||||
background-image: var(--sammo-texture-walnut);
|
||||
}
|
||||
|
||||
.toggle.active {
|
||||
background: rgba(201, 164, 90, 0.2);
|
||||
}
|
||||
|
||||
.game-shell__action.highlight {
|
||||
border-color: #f39c12;
|
||||
background: #8a5b13;
|
||||
@@ -750,29 +752,8 @@ button {
|
||||
margin-top: 31px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ref renders these dashboard controls with the Lumen navigation family: no top
|
||||
* border, 1px sides and a 4px bottom edge that shortens on hover and press
|
||||
* while the control moves down.
|
||||
*/
|
||||
.desktop-action-controls .game-shell__action {
|
||||
border-color: #004f28;
|
||||
border-style: solid;
|
||||
border-width: 0 1px 4px;
|
||||
background: #006b36;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.desktop-action-controls .game-shell__action:hover {
|
||||
margin-top: 1px;
|
||||
border-bottom-width: 3px;
|
||||
background: #00582c;
|
||||
}
|
||||
|
||||
.desktop-action-controls .game-shell__action:active {
|
||||
margin-top: 2px;
|
||||
border-bottom-width: 2px;
|
||||
background: #005128;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
@@ -793,8 +774,8 @@ button {
|
||||
}
|
||||
|
||||
.desktop-action-controls .game-shell__action {
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
padding-right: 4px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.main-page {
|
||||
|
||||
Reference in New Issue
Block a user