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: 'Производит абсолютное оружие, способное уничтожать планеты'
@@ -284,7 +290,7 @@ export default {
hyperspaceDrive: 'Продвинутая технология двигателей',
darkMatterTechnology: 'Исследование свойств и применения тёмной материи',
terraformingTechnology:
'Исследование технологии терраформирования планет, увеличивает доступное пространство всех планет на 3 за уровень',
'Исследование технологии терраформирования планет, увеличивает доступное пространство всех планет на 30 за уровень',
planetDestructionTech: 'Исследование ужасающей технологии уничтожения целых планет'
},
officers: {
@@ -317,6 +323,7 @@ export default {
cancelResearch: 'Отменить исследование',
confirmCancel: 'Вы уверены, что хотите отменить? 50% ресурсов будет возвращено.',
level: 'Уровень',
gmModeActivated: '',
upgradeToLevel: 'Улучшить до уровня'
},
overview: {
@@ -337,6 +344,7 @@ export default {
usedSpace: 'Использовано полей',
spaceUsage: 'Использование полей',
level: 'Уровень',
gmModeActivated: '',
upgradeCost: 'Стоимость улучшения',
buildTime: 'Время строительства',
upgrade: 'Улучшить',
@@ -348,8 +356,8 @@ export default {
demolishRefund: 'Возврат от сноса',
demolishFailed: 'Снос не удался',
demolishFailedMessage: 'Невозможно снести это здание. Проверьте, не заполнена ли очередь строительства или уровень здания не равен 0.',
confirmDemolish: '',
confirmDemolishMessage: ''
confirmDemolish: 'Подтвердить снос',
confirmDemolishMessage: 'Вы уверены, что хотите снести следующее здание?'
},
researchView: {
title: 'Исследования',
@@ -362,6 +370,7 @@ export default {
},
shipyard: {
attack: 'Атака',
missileAttack: 'Ракетная атака',
shield: 'Щит',
armor: 'Броня',
speed: 'Скорость',
@@ -379,6 +388,7 @@ export default {
title: 'Верфь',
fleetStorage: 'Хранилище флота',
attack: 'Атака',
missileAttack: 'Ракетная атака',
shield: 'Щит',
speed: 'Скорость',
cargoCapacity: 'Грузоподъёмность',
@@ -393,6 +403,7 @@ export default {
},
defense: {
attack: 'Атака',
missileAttack: 'Ракетная атака',
shield: 'Щит',
armor: 'Броня',
buildCost: 'Стоимость постройки',
@@ -406,6 +417,7 @@ export default {
defenseView: {
title: 'Оборона',
attack: 'Атака',
missileAttack: 'Ракетная атака',
shield: 'Щит',
armor: 'Броня',
buildTime: 'Время постройки',
@@ -415,6 +427,7 @@ export default {
totalCost: 'Общая стоимость',
build: 'Построить',
shieldDomeBuilt: 'Щитовой купол уже построен',
missileCapacity: 'Вместимость ракет',
inputError: 'Ошибка ввода',
inputErrorMessage: 'Пожалуйста, введите количество для постройки!',
buildFailed: 'Постройка не удалась',
@@ -428,6 +441,7 @@ export default {
flightMissions: 'Полетные миссии',
currentPlanetFleet: 'Флот на этой планете',
attack: 'Атака',
missileAttack: 'Ракетная атака',
shield: 'Щит',
armor: 'Броня',
speed: 'Скорость',
@@ -522,27 +536,38 @@ 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:
@@ -698,10 +723,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',
@@ -740,12 +779,22 @@ export default {
testSpy: 'Тест разведки',
testAttack: 'Тест атаки',
testSpyAndAttack: 'Тест разведки и атаки',
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: 'Сбросить игру',
@@ -797,9 +846,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: {
@@ -808,5 +880,10 @@ export default {
first: 'Первая',
last: 'Последняя',
page: 'Страница {page}'
},
notFound: {
title: 'Страница не найдена',
description: 'Извините, страница, которую вы ищете, не существует',
goHome: 'На главную'
}
}