feat: 新增多语言README并优化文档结构

新增德语、俄语、韩语、繁体中文多语言README,英文与简体中文README同步优化,统一下载链接与徽章样式,完善多语言入口。提升国际化支持与文档可读性。
This commit is contained in:
谦君
2025-12-24 01:45:17 +08:00
parent a475b1b554
commit 5e3557e2da
105 changed files with 12459 additions and 1690 deletions

View File

@@ -14,6 +14,16 @@ export interface Resources {
energy: number // 电量(实时计算,不存储)
}
// 星球矿脉储量
export interface OreDeposits {
metal: number // 金属矿脉剩余储量
crystal: number // 晶体矿脉剩余储量
deuterium: number // 重氢储量
initialMetal: number // 初始金属储量(用于计算百分比)
initialCrystal: number // 初始晶体储量
initialDeuterium: number // 初始重氢储量
}
// 建筑类型
export const BuildingType = {
MetalMine: 'metalMine',
@@ -213,6 +223,35 @@ export const MissionType = {
export type MissionType = (typeof MissionType)[keyof typeof MissionType]
// 探险区域类型
export const ExpeditionZone = {
NearSpace: 'nearSpace', // 近空区域 - 低风险低收益
DeepSpace: 'deepSpace', // 深空区域 - 中等风险收益
UnchartedSpace: 'unchartedSpace', // 未知空间 - 高风险高收益
DangerousNebula: 'dangerousNebula' // 危险星云 - 极高风险极高收益
} as const
export type ExpeditionZone = (typeof ExpeditionZone)[keyof typeof ExpeditionZone]
// 探险区域配置
export interface ExpeditionZoneConfig {
id: ExpeditionZone
requiredTechLevel: number // 所需天体物理学等级
flightTimeMultiplier: number // 飞行时间倍率
resourceMultiplier: number // 资源奖励倍率
darkMatterMultiplier: number // 暗物质奖励倍率
fleetFindMultiplier: number // 舰船发现倍率
dangerMultiplier: number // 危险程度倍率
probabilities: {
resources: number // 发现资源概率
darkMatter: number // 发现暗物质概率
fleet: number // 发现舰船概率
pirates: number // 遭遇海盗概率
aliens: number // 遭遇外星人概率
nothing: number // 什么都没发现概率
}
}
// 外交关系状态
export const RelationStatus = {
Hostile: 'hostile', // 敌对
@@ -298,6 +337,8 @@ export interface FleetMission {
// 外交系统字段
isGift?: boolean // 是否为赠送资源任务
giftTargetNpcId?: string // 赠送目标NPC ID
// 探险系统字段
expeditionZone?: ExpeditionZone // 探险区域类型
}
// 导弹攻击任务(不使用舰队系统)
@@ -452,6 +493,8 @@ export interface MissionReport {
foundFleet?: Partial<Fleet>
// 探险任务:损失的舰船
fleetLost?: Partial<Fleet>
// 探险任务:探险区域
expeditionZone?: ExpeditionZone
// 侦查任务报告ID
spyReportId?: string
}
@@ -503,6 +546,18 @@ export interface BuildQueueItem {
endTime: number
}
// 等待队列项(尚未开始执行,不需要 startTime/endTime
export interface WaitingQueueItem {
id: string
type: 'building' | 'technology' | 'ship' | 'defense' | 'demolish'
itemType: BuildingType | TechnologyType | ShipType | DefenseType
targetLevel?: number // 用于建筑和科技
quantity?: number // 用于舰船和防御
priority: number // 排序优先级(数字越小优先级越高)
addedTime: number // 添加到等待队列的时间戳
planetId?: string // 建造队列需要标识目标星球
}
// 星球
export interface Planet {
id: string
@@ -514,6 +569,7 @@ export interface Planet {
fleet: Fleet
defense: Record<DefenseType, number>
buildQueue: BuildQueueItem[]
waitingBuildQueue: WaitingQueueItem[] // 等待队列(建筑、舰船、防御)
lastUpdate: number
maxSpace: number // 最大空间
maxFleetStorage: number // 舰队仓储上限
@@ -521,6 +577,8 @@ export interface Planet {
parentPlanetId?: string // 如果是月球,指向母星的ID
diameter?: number // 月球直径(km),用于销毁概率计算
jumpGateLastUsed?: number // 跳跃门上次使用时间戳(ms),用于冷却计算
oreDeposits?: OreDeposits // 矿脉储量(可选,用于向后兼容)
temperature?: { min: number; max: number } // 星球温度范围(摄氏度),影响太阳能卫星和重氢产量
}
// 月球特殊配置
@@ -581,6 +639,7 @@ export interface Player {
technologies: Record<TechnologyType, number>
officers: Record<OfficerType, Officer>
researchQueue: BuildQueueItem[]
waitingResearchQueue: WaitingQueueItem[] // 研究等待队列
fleetMissions: FleetMission[]
missileAttacks: MissileAttack[] // 导弹攻击任务
battleReports: BattleResult[]
@@ -611,6 +670,9 @@ export interface Player {
// 成就系统
achievementStats?: AchievementStats // 成就统计数据
achievements?: Record<string, AchievementProgress> // 成就进度
// 战役系统
campaignProgress?: PlayerCampaignProgress // 战役进度
questNotifications?: QuestNotification[] // 任务通知
}
export interface NotificationSettings {
@@ -642,6 +704,17 @@ export interface Universe {
npcs: NPC[]
}
// NPC AI 类型
export const NPCAIType = {
Aggressive: 'aggressive', // 侵略型 - 积极侦查和攻击玩家
Defensive: 'defensive', // 防守型 - 只在被攻击时反击,优先发展防御
Trader: 'trader', // 商人型 - 主动交易,几乎不攻击,高好感度时赠送资源
Expansionist: 'expansionist', // 扩张型 - 优先发展和殖民,较少攻击
Balanced: 'balanced' // 平衡型 - 根据情况动态调整策略
} as const
export type NPCAIType = (typeof NPCAIType)[keyof typeof NPCAIType]
// NPC玩家
export interface NPC {
id: string
@@ -650,6 +723,7 @@ export interface NPC {
planets: Planet[]
technologies: Record<TechnologyType, number>
difficulty: 'easy' | 'medium' | 'hard' // 保留兼容,不再使用
aiType?: NPCAIType // AI 行为类型
// 距离难度系统
difficultyLevel?: number // 基于距离的难度等级1-无限)
distanceToHomeworld?: number // 到玩家母星的距离
@@ -822,3 +896,190 @@ export interface AchievementProgress {
unlockedAt?: number
tierUnlocks: Record<AchievementTier, number | null>
}
// ==================== 排行榜系统类型 ====================
// 排行榜类别枚举
export const RankingCategory = {
Total: 'total', // 总积分
Building: 'building', // 建筑积分
Research: 'research', // 研究积分
Fleet: 'fleet', // 舰队积分
Defense: 'defense' // 防御积分
} as const
export type RankingCategory = (typeof RankingCategory)[keyof typeof RankingCategory]
// 排行榜条目接口
export interface RankingEntry {
id: string // 玩家或NPC ID
name: string // 名称
isPlayer: boolean // 是否为玩家否则为NPC
scores: {
total: number // 总积分
building: number // 建筑积分
research: number // 研究积分
fleet: number // 舰队积分
defense: number // 防御积分
}
planetCount: number // 星球数量
}
// ==================== 战役系统 ====================
// 任务状态
export const QuestStatus = {
Locked: 'locked', // 未解锁
Available: 'available', // 可接取
Active: 'active', // 进行中
Completed: 'completed', // 已完成
Failed: 'failed' // 失败
} as const
export type QuestStatus = (typeof QuestStatus)[keyof typeof QuestStatus]
// 任务目标类型
export const ObjectiveType = {
// 基础目标
BuildBuilding: 'buildBuilding', // 建造建筑到某等级
ResearchTech: 'researchTech', // 研究科技
ProduceShips: 'produceShips', // 生产舰船
AccumulateResources: 'accumulateResources', // 积累资源
// 战斗目标
DefeatNPC: 'defeatNPC', // 击败特定NPC
WinBattles: 'winBattles', // 赢得N场战斗
RecycleDebris: 'recycleDebris', // 回收残骸
DestroyPlanet: 'destroyPlanet', // 摧毁星球
// 外交目标
ReachRelation: 'reachRelation', // 达到某关系等级
SendGift: 'sendGift', // 送礼
FormAlliance: 'formAlliance', // 结盟
// 探索目标
Colonize: 'colonize', // 殖民新星球
Expedition: 'expedition', // 完成探险任务
DiscoverLocation: 'discoverLocation', // 发现特定位置
SpyTarget: 'spyTarget' // 侦查特定目标
} as const
export type ObjectiveType = (typeof ObjectiveType)[keyof typeof ObjectiveType]
// 任务目标
export interface QuestObjective {
id: string
type: ObjectiveType
descriptionKey: string // 翻译键
target: string | number // 目标值或ID (建筑类型/科技类型/舰船类型/NPC ID等)
targetSecondary?: string | number // 次要目标 (如等级要求)
required: number // 需要数量
}
// 任务奖励
export interface QuestReward {
resources?: Partial<Resources>
darkMatter?: number
points?: number
ships?: Partial<Fleet>
unlockBuilding?: BuildingType
unlockTech?: TechnologyType
specialItem?: string // 特殊物品ID
}
// 剧情对话
export interface StoryDialogue {
id: string
speaker: 'narrator' | 'player' | 'npc' | 'mysterious'
speakerNameKey?: string // 翻译键
portrait?: string // 头像标识
textKey: string // 翻译键
choices?: DialogueChoice[]
}
// 对话选项
export interface DialogueChoice {
textKey: string // 翻译键
nextDialogueId?: string
effect?: 'reputation_up' | 'reputation_down' | 'unlock_branch'
}
// 战役任务配置
export interface CampaignQuestConfig {
id: string
chapter: number // 章节号
order: number // 章节内顺序
titleKey: string // 翻译键
descriptionKey: string // 翻译键
// 剧情
prologueDialogues?: StoryDialogue[] // 任务开始对话
epilogueDialogues?: StoryDialogue[] // 任务完成对话
// 目标
objectives: QuestObjective[]
// 奖励
rewards: QuestReward
// 解锁条件
requiredQuestIds?: string[] // 需要先完成的任务
// 任务位置(用于地图显示)
mapPosition: { x: number; y: number }
// 特殊标记
isBoss?: boolean // Boss战
isBranch?: boolean // 分支任务
branchGroup?: string // 分支组ID同组只能完成一个
}
// 战役章节配置
export interface CampaignChapterConfig {
id: string
number: number
titleKey: string // 翻译键
descriptionKey: string // 翻译键
backgroundStoryKey: string // 翻译键
quests: CampaignQuestConfig[]
}
// 战役配置
export interface CampaignConfig {
id: string
nameKey: string // 翻译键
descriptionKey: string // 翻译键
chapters: CampaignChapterConfig[]
}
// 玩家任务进度
export interface QuestProgress {
questId: string
status: QuestStatus
objectives: Record<string, { current: number; completed: boolean }>
startedAt?: number
completedAt?: number
rewardsClaimed?: boolean
dialoguesRead?: string[] // 已读对话ID
}
// 玩家战役进度
export interface PlayerCampaignProgress {
campaignId: string
currentChapter: number
currentQuestId?: string
questProgress: Record<string, QuestProgress>
completedQuests: string[]
unlockedQuests: string[]
branchChoices?: Record<string, string> // 分支选择记录
}
// 任务通知
export interface QuestNotification {
id: string
timestamp: number
questId: string
questTitleKey: string // 翻译键
eventType: 'unlocked' | 'objective_completed' | 'quest_completed' | 'chapter_completed' | 'reward_claimed'
messageKey: string // 翻译键
messageParams?: Record<string, string | number> // 翻译参数
rewards?: QuestReward
read?: boolean
}