feat: 新增NPC与外交逻辑,优化UI组件结构

重构并精简了部分UI组件,移除冗余弹窗与详情组件,新增NPC相关逻辑(npcBehaviorLogic、npcGrowthLogic、npcStore等)及外交逻辑(diplomaticLogic、DiplomacyView)。完善分页、标签、复选框等通用UI组件。优化战报弹窗,调整README下载链接为相对路径,修复部分国际化内容。
This commit is contained in:
谦君
2025-12-15 08:23:45 +08:00
parent 44580909a3
commit 9b9fda0400
164 changed files with 18628 additions and 2775 deletions

View File

@@ -62,6 +62,7 @@ export default {
officers: '장교',
simulator: '시뮬레이터',
galaxy: '은하계',
diplomacy: 'Diplomacy',
messages: '메시지',
settings: '설정',
gm: 'GM'
@@ -97,6 +98,8 @@ export default {
coordinates: '좌표',
switchToMoon: '위성 보기',
backToPlanet: '모행성으로 돌아가기',
switchPlanet: '행성 전환',
currentPlanet: '현재 행성',
fields: '필드',
temperature: '온도',
homePlanet: '모행성',
@@ -112,6 +115,7 @@ export default {
crystalMine: '크리스탈 광산',
deuteriumSynthesizer: '중수소 합성기',
solarPlant: '태양광 발전소',
fusionReactor: '핵융합 반응로',
roboticsFactory: '로봇 공장',
naniteFactory: '나노 공장',
shipyard: '조선소',
@@ -120,6 +124,8 @@ export default {
crystalStorage: '크리스탈 창고',
deuteriumTank: '중수소 탱크',
darkMatterCollector: '암흑 물질 수집기',
darkMatterTank: '암흑 물질 탱크',
missileSilo: '미사일 발사대',
terraformer: '지형 변환기',
lunarBase: '달 기지',
sensorPhalanx: '센서 팔랑크스',
@@ -130,13 +136,26 @@ export default {
consumption: '소비',
totalCost: '총 비용',
totalPoints: '총 점수',
levelRange: '레벨 범위'
levelRange: '레벨 범위',
capacity: 'Capacity/Effect',
storageCapacity: 'Capacity',
energyProduction: 'Energy Production',
fleetStorage: 'Fleet Storage',
buildQueue: 'Build Queue',
buildQueueBonus: '건설 대기열',
spaceBonus: '공간 보너스',
buildSpeedBonus: '건설 속도 보너스',
researchSpeedBonus: '연구 속도 보너스',
planetSpace: 'Planet Space',
moonSpace: 'Moon Space',
missileCapacity: 'Missile Capacity'
},
buildingDescriptions: {
metalMine: '금속 자원 채굴',
crystalMine: '크리스탈 자원 채굴',
deuteriumSynthesizer: '중수소 자원 합성',
solarPlant: '에너지 제공',
fusionReactor: '중수소를 사용하여 대량의 에너지 생산',
roboticsFactory: '건설 속도 향상',
naniteFactory: '건설 대기열 수 증가, 레벨당 +1 (최대 10레벨)',
shipyard: '함선 건조',
@@ -145,6 +164,8 @@ export default {
crystalStorage: '크리스탈 저장 용량 증가',
deuteriumTank: '중수소 저장 용량 증가',
darkMatterCollector: '희귀한 암흑 물질 자원 수집',
darkMatterTank: '암흑 물질 저장 용량 증가',
missileSilo: '미사일을 저장 및 발사, 레벨당 10발',
terraformer: '행성 지형 개조, 레벨당 가용 공간 5 증가',
lunarBase: '달 가용 공간 증가, 레벨당 +5 공간',
sensorPhalanx: '주변 행성계의 함대 활동 감지',
@@ -156,11 +177,15 @@ export default {
heavyFighter: '중전투기',
cruiser: '순양함',
battleship: '전함',
battlecruiser: '순양전함',
bomber: '폭격기',
destroyer: '구축함',
smallCargo: '소형 수송선',
largeCargo: '대형 수송선',
colonyShip: '식민선',
recycler: '재활용선',
espionageProbe: '정찰기',
solarSatellite: '태양광 위성',
darkMatterHarvester: '암흑 물질 채취선',
deathstar: '데스스타'
},
@@ -169,11 +194,15 @@ export default {
heavyFighter: '중장갑 전투기',
cruiser: '중형 전함, 공격과 방어 균형',
battleship: '강력한 전함',
battlecruiser: '빠르고 강력한 전투함, 전함 공격에 탁월',
bomber: '방어 시설 공격 전문 함선',
destroyer: '대형 함선 파괴 전문 헌터',
smallCargo: '소량의 자원 운송',
largeCargo: '대량의 자원 운송',
colonyShip: '새로운 행성 식민에 사용',
recycler: '잔해장 자원 수집',
espionageProbe: '적 행성 정찰',
solarSatellite: '추가 에너지 제공, 위성당 50 에너지 생성',
darkMatterHarvester: '암흑 물질 채취 전용 특수 함선',
deathstar: '행성 전체를 파괴할 수 있는 궁극 병기'
},
@@ -186,6 +215,8 @@ export default {
plasmaTurret: '플라즈마 포탑',
smallShieldDome: '소형 실드 돔',
largeShieldDome: '대형 실드 돔',
antiBallisticMissile: '요격 미사일',
interplanetaryMissile: '행성간 미사일',
planetaryShield: '행성 실드'
},
defenseDescriptions: {
@@ -197,13 +228,23 @@ export default {
plasmaTurret: '강력한 방어 시설',
smallShieldDome: '행성 전체를 보호하는 소형 실드',
largeShieldDome: '행성 전체를 보호하는 대형 실드',
antiBallisticMissile: '적 미사일 요격, 행성간 미사일 1발 요격 가능',
interplanetaryMissile: '다른 행성의 방어 시설 공격 가능',
planetaryShield: '파괴 공격으로부터 행성을 보호하는 초급 실드'
},
research: {
researchTime: '연구 시간',
totalCost: '총 비용',
totalPoints: '총 점수',
levelRange: '레벨 범위'
levelRange: '레벨 범위',
capacity: 'Capacity/Effect',
storageCapacity: 'Capacity',
energyProduction: 'Energy Production',
fleetStorage: 'Fleet Storage',
buildQueue: 'Build Queue',
planetSpace: 'Planet Space',
moonSpace: 'Moon Space',
missileCapacity: 'Missile Capacity'
},
technologies: {
energyTechnology: '에너지 기술',
@@ -212,6 +253,12 @@ export default {
hyperspaceTechnology: '초공간 기술',
plasmaTechnology: '플라즈마 기술',
computerTechnology: '컴퓨터 기술',
espionageTechnology: '스파이 기술',
weaponsTechnology: '무기 기술',
shieldingTechnology: '실드 기술',
armourTechnology: '장갑 기술',
astrophysics: '천체물리학',
gravitonTechnology: '중력자 기술',
combustionDrive: '연소 엔진',
impulseDrive: '임펄스 엔진',
hyperspaceDrive: '초공간 엔진',
@@ -226,6 +273,12 @@ export default {
hyperspaceTechnology: '초공간 점프 기술',
plasmaTechnology: '플라즈마 무기 기술',
computerTechnology: '연구 대기열 수 증가, 레벨당 +1 (최대 10레벨)',
espionageTechnology: '스파이 탐사기 효과 향상, 레벨당 정찰 깊이 +1',
weaponsTechnology: '함선과 방어의 공격력 레벨당 10% 증가',
shieldingTechnology: '함선과 방어의 실드 레벨당 10% 증가',
armourTechnology: '함선과 방어의 장갑 레벨당 10% 증가',
astrophysics: '레벨당 식민지 슬롯 +1, 탐험 성공률 향상',
gravitonTechnology: '중력 조작 연구, 데스스타 필요 기술',
combustionDrive: '기본 추진 기술',
impulseDrive: '중급 추진 기술',
hyperspaceDrive: '고급 추진 기술',
@@ -293,7 +346,9 @@ export default {
demolish: '철거',
demolishRefund: '철거 환불',
demolishFailed: '철거 실패',
demolishFailedMessage: '이 건물을 철거할 수 없습니다. 건설 대기열이 가득 찼거나 건물 레벨이 0인지 확인하세요.'
demolishFailedMessage: '이 건물을 철거할 수 없습니다. 건설 대기열이 가득 찼거나 건물 레벨이 0인지 확인하세요.',
confirmDemolish: '',
confirmDemolishMessage: ''
},
researchView: {
title: '연구',
@@ -380,6 +435,7 @@ export default {
all: '전체',
targetCoordinates: '목표 좌표',
galaxy: '은하계',
diplomacy: 'Diplomacy',
system: '행성계',
position: '위치',
missionType: '임무 유형',
@@ -413,7 +469,11 @@ export default {
cannotSendToOwnPlanet: '자신의 행성으로 함대를 파견할 수 없습니다',
cargoExceedsCapacity: '적재량이 용량을 초과합니다',
noColonyShip: '식민 임무를 위해 식민선이 필요합니다',
noDebrisAtTarget: '대상 좌표에 잔해장이 없거나 잔해장이 비어 있습니다'
noDebrisAtTarget: '대상 좌표에 잔해장이 없거나 잔해장이 비어 있습니다',
noDeathstar: '파괴 임무를 위해 데스스타가 필요합니다',
giftMode: '선물 모드',
giftModeDescription: '자원을 선물로 보내기',
estimatedReputationGain: '예상 평판 획득'
},
officersView: {
title: '장교',
@@ -453,11 +513,15 @@ export default {
title: '은하계',
selectCoordinates: '좌표 선택',
galaxy: '은하계',
diplomacy: 'Diplomacy',
selectGalaxy: '은하계 선택',
system: '행성계',
selectSystem: '행성계 선택',
view: '보기',
myPlanet: '내 행성',
myPlanets: '내 행성들',
npcPlanets: 'NPC 행성들',
selectPlanetToView: '볼 행성 선택',
totalPositions: '총 10개 행성 위치',
mine: '내 것',
hostile: '적대',
@@ -476,12 +540,17 @@ export default {
'행성 [{coordinates}]을(를) 정찰하기 위해 정찰기를 보내시겠습니까?\n\n함대 페이지로 이동하여 함선을 선택하고 파견하세요.',
attackPlanetMessage: '행성 [{coordinates}]을(를) 공격하시겠습니까?\n\n함대 페이지로 이동하여 함선을 선택하고 파견하세요.',
colonizePlanetMessage: '위치 [{coordinates}]을(를) 식민하시겠습니까?\n\n함대 페이지로 이동하여 식민선을 파견하세요.',
recyclePlanetMessage: '위치 [{coordinates}]의 잔해를 회수하시겠습니까?\n\n함대 페이지로 이동하여 회수선을 파견하세요.'
recyclePlanetMessage: '위치 [{coordinates}]의 잔해를 회수하시겠습니까?\n\n함대 페이지로 이동하여 회수선을 파견하세요.',
sendGift: '선물 보내기',
debris: '잔해',
giftPlanetTitle: '선물 보내기',
giftPlanetMessage: '행성 [{coordinates}]에 자원을 선물로 보내시겠습니까?\n\n함대 페이지로 이동하여 수송선을 선택하고 자원을 적재하세요.'
},
messagesView: {
title: '메시지 센터',
battles: '전투',
spy: '정찰',
npc: 'NPC',
battleReports: '전투 보고서',
spyReports: '정찰 보고서',
noBattleReports: '전투 보고서 없음',
@@ -512,7 +581,48 @@ export default {
hideRoundDetails: '라운드 상세 숨기기',
round: '제{round}라운드',
attackerRemainingPower: '공격자 잔여 화력',
defenderRemainingPower: '방어자 잔여 화력'
defenderRemainingPower: '방어자 잔여 화력',
spied: '정찰당함',
spiedNotification: '정찰 알림',
noSpiedNotifications: '정찰 알림 없음',
detected: '발견됨',
undetected: '미발견',
missions: '임무',
noMissionReports: '임무 보고서 없음',
success: '성공',
failed: '실패',
npcActivity: 'NPC 활동',
noNPCActivity: 'NPC 활동 알림 없음',
npcRecycleActivity: 'NPC가 잔해 회수',
gifts: '선물',
giftRejected: '거부됨',
noGiftNotifications: '선물 알림 없음',
noGiftRejected: '거부된 기록 없음',
giftFrom: '{npcName}의 선물',
giftRejectedBy: '{npcName}가 선물을 거부했습니다',
giftResources: '선물 자원',
rejectedResources: '거부된 자원',
expectedReputation: '예상 평판',
currentReputation: '현재 평판',
acceptGift: '수락',
rejectGift: '거부',
rejectionReason: {
hostile: '상대방이 적대적이어서 선물을 받지 않습니다',
neutral_distrust: '상대방이 당신을 신뢰하지 않습니다',
polite_decline: '정중하게 거절했습니다'
}
},
missionReports: {
transportSuccess: '수송 임무가 성공적으로 완료되었습니다',
transportFailed: '수송 임무 실패',
colonizeSuccess: '식민 임무 성공, 새로운 행성이 건설되었습니다',
colonizeFailed: '식민 임무 실패',
deploySuccess: '배치 임무가 성공적으로 완료되었습니다',
deployFailed: '배치 임무 실패',
recycleSuccess: '회수 임무가 성공적으로 완료되었습니다',
recycleFailed: '회수 임무 실패, 목표 위치에 잔해가 없습니다',
destroySuccess: '행성 파괴 임무가 성공적으로 실행되었습니다',
destroyFailed: '행성 파괴 임무 실패'
},
simulatorView: {
title: '전투 시뮬레이터',
@@ -614,9 +724,82 @@ export default {
modifyOfficers: '장교 수정',
officersDesc: '장교 만료 시간을 빠르게 설정',
days: '일',
npcTesting: 'NPC 테스트',
npcTestingDesc: 'NPC 정찰 및 공격 동작 테스트',
selectNPC: 'NPC 선택',
chooseNPC: 'NPC를 선택하세요',
targetPlanet: '목표 행성',
chooseTarget: '목표 행성 선택',
testSpy: '정찰 테스트',
testAttack: '공격 테스트',
testSpyAndAttack: '정찰 & 공격 테스트',
initializeFleet: 'NPC 함대 초기화',
accelerateMissions: '모든 임무 가속(5초)',
selectNPCFirst: '먼저 NPC를 선택하세요',
npcNoProbes: 'NPC에 정찰 프로브가 없습니다',
npcNoSpyReport: 'NPC가 먼저 정찰해야 합니다',
npcMissionFailed: '임무 생성 실패',
dangerZone: '위험 구역',
dangerZoneDesc: '다음 작업은 되돌릴 수 없습니다',
resetGame: '게임 초기화',
resetGameConfirm: '게임을 초기화하시겠습니까? 모든 데이터가 삭제됩니다!'
},
alerts: {
npcSpyIncoming: 'NPC 정찰 프로브 접근 중',
npcAttackIncoming: 'NPC 함대 공격 진행 중!',
npcFleetIncoming: 'NPC 함대 접근 중',
ships: '척',
spiedBy: '정찰당함',
attackedBy: '공격당함',
detectionSuccess: '정찰 발견됨',
detectionFailed: '정찰 미발견',
npcSpiedYourPlanet: 'NPC가 당신의 행성을 정찰했습니다',
npcAttackedYourPlanet: 'NPC가 당신의 행성을 공격했습니다'
},
diplomacy: {
title: '외교',
description: 'NPC와의 외교 관계 관리',
tabs: {
all: '전체',
friendly: '우호적',
neutral: '중립',
hostile: '적대적'
},
noNpcs: 'NPC 없음',
noFriendlyNpcs: '우호적인 NPC 없음',
noNeutralNpcs: '중립적인 NPC 없음',
noHostileNpcs: '적대적인 NPC 없음',
recentEvents: '최근 이벤트',
recentEventsDescription: '최근 외교 활동 로그',
ago: '전',
status: {
friendly: '우호적',
neutral: '중립',
hostile: '적대적'
},
planets: '행성',
allies: '동맹',
reputation: '평판',
alliedWith: '동맹 관계',
more: '더보기',
actions: {
gift: '선물 보내기',
viewPlanets: '행성 보기'
},
lastEvent: '최근 이벤트',
events: {
gift: '선물 전송',
attack: '공격',
allyAttacked: '동맹 공격당함',
spy: '정찰',
stealDebris: '잔해 약탈'
}
},
pagination: {
previous: '이전',
next: '다음',
first: '처음',
last: '마지막',
page: '{page}페이지'
}
}