mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 07:55:11 +08:00
feat: 新增多语言README并优化文档结构
新增德语、俄语、韩语、繁体中文多语言README,英文与简体中文README同步优化,统一下载链接与徽章样式,完善多语言入口。提升国际化支持与文档可读性。
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user