feat: 为 ID 生成添加随机后缀并增强 GM 面板功能

- 为战斗报告、星球、月球、任务通知和舰队任务等 ID 添加随机后缀,避免重复 ID
- 在 GM 面板中添加预设管理系统,支持保存和应用建筑、研究、舰船和防御的配置
- 在外交界面添加 NPC 排序功能,支持按声望、星球数量、难度和盟友数量排序
- 修复数据迁移中的重复星球 ID 问题,确保月球与母星关联正确
- 优化 GM 面板的资源最大化功能,基于实际存储容量设置资源
- 为所有支持的语言添加相关翻译文本
This commit is contained in:
wenyu
2026-03-18 17:59:00 +08:00
parent 703563c9b2
commit 8e49998205
16 changed files with 448 additions and 25 deletions

View File

@@ -61,7 +61,7 @@ export const createFleetMission = (
): FleetMission => {
const now = Date.now()
return {
id: `mission_${now}`,
id: `mission_${now}_${Math.random().toString(36).substring(2, 9)}`,
playerId,
originPlanetId,
// 深拷贝targetPosition避免多个任务共享同一个引用
@@ -414,7 +414,7 @@ export const processColonizeArrival = (
// 创建新殖民地
const newPlanet: Planet = {
id: `planet_${Date.now()}`,
id: `planet_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
name: `${colonyNameTemplate} ${mission.targetPosition.galaxy}:${mission.targetPosition.system}:${mission.targetPosition.position}`,
ownerId: player.id,
position: mission.targetPosition,
@@ -564,7 +564,7 @@ export const processSpyArrival = (
const wasDetected = Math.random() < detectionChance
const spyReport: SpyReport = {
id: `spy_${Date.now()}`,
id: `spy_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
timestamp: Date.now(),
spyId: attacker.id,
targetPlanetId: targetPlanet.id,