feat: 重构战报弹窗与模拟器视图,优化UI与逻辑

重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
This commit is contained in:
谦君
2025-12-15 20:04:40 +08:00
parent 9b9fda0400
commit 59dd7bfd05
126 changed files with 3944 additions and 1487 deletions

View File

@@ -33,13 +33,19 @@ export default {
viewRequirements: '요구사항 보기',
requirementsNotMet: '요구사항 미충족',
current: '현재',
level: '레벨'
level: '레벨',
gmModeActivated: 'GM 모드가 활성화되었습니다! 탐색 메뉴를 확인하세요.'
},
errors: {
requirementsNotMet: '전제 조건 미충족',
insufficientResources: '자원 부족',
insufficientFleetStorage: '함대 저장소 부족',
shieldDomeLimit: '실드 돔 한도 도달',
missileSiloLimit: '미사일 사일로 용량 초과',
insufficientMissiles: '행성간 미사일 부족',
invalidMissileCount: '잘못된 미사일 수량',
targetOutOfRange: '목표가 사정거리 밖',
cannotAttackOwnPlanet: '자신의 행성 공격 불가',
fleetMissionsFull: '함대 임무 슬롯 가득 참',
insufficientFleet: '함대 부족',
insufficientFuel: '연료 부족',
@@ -166,8 +172,8 @@ export default {
darkMatterCollector: '희귀한 암흑 물질 자원 수집',
darkMatterTank: '암흑 물질 저장 용량 증가',
missileSilo: '미사일을 저장 및 발사, 레벨당 10발',
terraformer: '행성 지형 개조, 레벨당 가용 공간 5 증가',
lunarBase: '달 가용 공간 증가, 레벨당 +5 공간',
terraformer: '행성 지형 개조, 레벨당 가용 공간 30 증가',
lunarBase: '달 가용 공간 증가, 레벨당 +30 공간',
sensorPhalanx: '주변 행성계의 함대 활동 감지',
jumpGate: '다른 위성으로 함대 순간 이동',
planetDestroyerFactory: '행성을 파괴할 수 있는 궁극 병기 건조'
@@ -283,7 +289,7 @@ export default {
impulseDrive: '중급 추진 기술',
hyperspaceDrive: '고급 추진 기술',
darkMatterTechnology: '암흑 물질의 성질과 응용 연구',
terraformingTechnology: '행성 지형 개조 기술 연구, 레벨당 모든 행성의 가용 공간 3 증가',
terraformingTechnology: '행성 지형 개조 기술 연구, 레벨당 모든 행성의 가용 공간 30 증가',
planetDestructionTech: '행성 전체를 파괴하는 공포의 기술 연구'
},
officers: {
@@ -316,6 +322,7 @@ export default {
cancelResearch: '연구 취소',
confirmCancel: '취소하시겠습니까? 자원의 50%가 환불됩니다.',
level: '레벨',
gmModeActivated: '',
upgradeToLevel: '레벨로 업그레이드'
},
overview: {
@@ -336,6 +343,7 @@ export default {
usedSpace: '사용된 공간',
spaceUsage: '공간 사용',
level: '레벨',
gmModeActivated: '',
upgradeCost: '업그레이드 비용',
buildTime: '건설 시간',
upgrade: '업그레이드',
@@ -347,8 +355,8 @@ export default {
demolishRefund: '철거 환불',
demolishFailed: '철거 실패',
demolishFailedMessage: '이 건물을 철거할 수 없습니다. 건설 대기열이 가득 찼거나 건물 레벨이 0인지 확인하세요.',
confirmDemolish: '',
confirmDemolishMessage: ''
confirmDemolish: '철거 확인',
confirmDemolishMessage: '다음 건물을 철거하시겠습니까?'
},
researchView: {
title: '연구',
@@ -360,6 +368,7 @@ export default {
},
shipyard: {
attack: '공격력',
missileAttack: '미사일 공격',
shield: '쉴드',
armor: '장갑',
speed: '속도',
@@ -377,6 +386,7 @@ export default {
title: '조선소',
fleetStorage: '함대 저장소',
attack: '공격력',
missileAttack: '미사일 공격',
shield: '실드',
speed: '속도',
cargoCapacity: '적재량',
@@ -391,6 +401,7 @@ export default {
},
defense: {
attack: '공격력',
missileAttack: '미사일 공격',
shield: '쉴드',
armor: '장갑',
buildCost: '건설 비용',
@@ -404,6 +415,7 @@ export default {
defenseView: {
title: '방어 시설',
attack: '공격력',
missileAttack: '미사일 공격',
shield: '실드',
armor: '장갑',
buildTime: '건설 시간',
@@ -413,6 +425,7 @@ export default {
totalCost: '총 비용',
build: '건조',
shieldDomeBuilt: '실드 돔이 이미 건설됨',
missileCapacity: '미사일 용량',
inputError: '입력 오류',
inputErrorMessage: '건조 수량을 입력하세요!',
buildFailed: '건조 실패',
@@ -425,6 +438,7 @@ export default {
flightMissions: '비행 임무',
currentPlanetFleet: '현재 행성 함대',
attack: '공격',
missileAttack: '미사일 공격',
shield: '실드',
armor: '장갑',
speed: '속도',
@@ -519,26 +533,37 @@ export default {
selectSystem: '행성계 선택',
view: '보기',
myPlanet: '내 행성',
myPlanets: '내 행성',
myPlanets: '내 행성계 보기',
npcPlanets: 'NPC 행성들',
selectPlanetToView: '행성 선택',
selectPlanetToView: '행성 선택하여 행성계 보기',
totalPositions: '총 10개 행성 위치',
mine: '내 것',
hostile: '적대',
emptySlot: '빈 자리 - 식민 가능',
scout: '정찰',
attack: '공격',
missileAttack: '미사일 공격',
colonize: '식민',
switch: '전환',
recycle: '회수',
debrisField: '잔해 필드',
scoutPlanetTitle: '행성 정찰',
attackPlanetTitle: '행성 공격',
missileAttackTitle: '미사일 공격',
colonizePlanetTitle: '행성 식민',
recyclePlanetTitle: '잔해 회수',
scoutPlanetMessage:
'행성 [{coordinates}]을(를) 정찰하기 위해 정찰기를 보내시겠습니까?\n\n함대 페이지로 이동하여 함선을 선택하고 파견하세요.',
attackPlanetMessage: '행성 [{coordinates}]을(를) 공격하시겠습니까?\n\n함대 페이지로 이동하여 함선을 선택하고 파견하세요.',
missileAttackMessage: '행성 [{coordinates}]에 행성간 미사일 발사',
missileCount: '미사일 수량',
availableMissiles: '사용 가능한 미사일',
missileRange: '미사일 사정거리',
systems: '시스템',
distance: '거리',
flightTime: '비행 시간',
launchMissile: '발사',
cancel: '취소',
colonizePlanetMessage: '위치 [{coordinates}]을(를) 식민하시겠습니까?\n\n함대 페이지로 이동하여 식민선을 파견하세요.',
recyclePlanetMessage: '위치 [{coordinates}]의 잔해를 회수하시겠습니까?\n\n함대 페이지로 이동하여 회수선을 파견하세요.',
sendGift: '선물 보내기',
@@ -691,10 +716,24 @@ export default {
gamePaused: '게임이 일시정지되었습니다',
gameResumed: '게임이 재개되었습니다',
playerName: '플레이어 이름',
gameSpeed: '게임 속도',
gameSpeedDesc: '현재 게임 속도 배율',
gameSpeed: '자원 생산 속도',
gameSpeedDesc: '현재 자원 생산 속도 배율',
speedChanged: '자원 생산 속도가 {speed}x로 변경되었습니다',
speedReset: '자원 생산 속도가 1x로 재설정되었습니다',
reset: '재설정',
about: '정보',
version: '버전',
latestVersion: '최신 버전',
checkUpdate: '업데이트 확인',
checking: '확인 중...',
newVersionAvailable: '새 버전 {version} 사용 가능',
upToDate: '이미 최신 버전입니다',
checkUpdateCooldown: '나중에 다시 시도해주세요 (5분 쿨다운)',
checkUpdateFailed: '업데이트 확인 실패, 네트워크 연결을 확인하세요',
viewUpdate: '업데이트 보기',
updateAvailable: '새 버전이 사용 가능합니다. 릴리스 노트를 보려면 클릭하세요.',
download: '다운로드',
goToDownload: '다운로드로 이동',
buildDate: '빌드 날짜',
community: '커뮤니티',
github: 'GitHub 저장소',
@@ -733,12 +772,22 @@ export default {
testSpy: '정찰 테스트',
testAttack: '공격 테스트',
testSpyAndAttack: '정찰 & 공격 테스트',
initializeFleet: 'NPC 함대 초기화',
testSpyMessage: '확인을 클릭하여 정찰 임무를 가속화',
testAttackMessage: '확인을 클릭하여 공격 임무를 가속화',
testSpyAndAttackMessage: '확인을 클릭하여 임무를 가속화',
initializeFleet: 'NPC 함대 초기化',
accelerateMissions: '모든 임무 가속(5초)',
selectNPCFirst: '먼저 NPC를 선택하세요',
npcNoProbes: 'NPC에 정찰 프로브가 없습니다',
npcNoSpyReport: 'NPC가 먼저 정찰해야 합니다',
npcMissionFailed: '임무 생성 실패',
npcNoPlanets: 'NPC에 행성이 없습니다',
npcWillSpyIn5s: '{npcName}이(가) 5초 후에 정찰합니다',
npcWillAttackIn5s: '{npcName}이(가) 5초 후에 공격합니다',
npcWillSpyAndAttack: '{npcName}이(가) 5초 후에 정찰하고 10초 후에 공격합니다',
acceleratedMissions: '{count}개의 임무를 5초로 가속화했습니다',
npcFleetInitialized: '{npcName} 함대가 초기화되었습니다',
npcFleetDetails: '100 정찰 프로브\n500 경전투기\n300 중전투기\n200 순양함\n100 전함\n50 폭격기\n30 구축함\n20 순양전함',
dangerZone: '위험 구역',
dangerZoneDesc: '다음 작업은 되돌릴 수 없습니다',
resetGame: '게임 초기화',
@@ -790,9 +839,32 @@ export default {
events: {
gift: '선물 전송',
attack: '공격',
missileAttack: '미사일 공격',
allyAttacked: '동맹 공격당함',
spy: '정찰',
stealDebris: '잔해 약탈'
},
reports: {
giftedResources: '{metal}M {crystal}C {deuterium}D 선물함',
receivedGiftFromPlayer: '플레이어로부터 선물을 받았습니다',
giftedToNpc: '{npcName}에게 자원을 선물했습니다. 평판 +{reputation}',
rejectedPlayerGift: '플레이어의 선물을 거부했습니다',
npcRejectedGift: '{npcName}이(가) 당신의 선물을 거부했습니다. 평판 {reputation}',
attackedNpc: '{npcName}을(를) 공격했습니다',
wasAttackedByPlayer: '플레이어에게 공격당했습니다',
youAttackedNpc: '당신은 {npcName}을(를) 공격했습니다',
playerAttackedAlly: '플레이어가 동맹 {allyName}을(를) 공격했습니다',
allyDispleased: '{allyName}은(는) 당신이 동맹 {targetName}을(를) 공격한 것에 불만입니다',
wasSpiedByPlayer: '플레이어에게 정찰당했습니다 (발견: {detected})',
spyDetected: '당신의 정찰이 {npcName}에게 발견되었습니다',
stoleDebrisFromTerritory: '{npcName}의 영역에서 잔해를 약탈했습니다',
playerStoleDebris: '플레이어가 영역에서 잔해를 약탈했습니다',
recycledDebrisNearNpc: '{npcName}의 행성 근처에서 잔해를 수집했습니다. 그들은 불만족스러워합니다.',
giftedResourcesToPlayer: '플레이어에게 자원을 선물했습니다',
receivedGiftFromNpc: '{npcName}로부터 선물을 받았습니다',
acceptedGiftFromNpc: '{npcName}의 선물을 받았습니다: {metal}M {crystal}C {deuterium}D',
playerRejectedGift: '플레이어가 선물을 거부했습니다',
rejectedGiftFromNpc: '{npcName}의 선물을 거부했습니다. 평판 {reputation}'
}
},
pagination: {
@@ -801,5 +873,10 @@ export default {
first: '처음',
last: '마지막',
page: '{page}페이지'
},
notFound: {
title: '페이지를 찾을 수 없습니다',
description: '죄송합니다. 찾으시는 페이지가 존재하지 않습니다',
goHome: '홈으로 이동'
}
}