with one click
time-system
电竞经理游戏的时间推进系统。管理赛季阶段、比赛模拟、赛季结算等核心游戏流程。当需要修改游戏进度、阶段推进、比赛模拟逻辑时使用此技能。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
电竞经理游戏的时间推进系统。管理赛季阶段、比赛模拟、赛季结算等核心游戏流程。当需要修改游戏进度、阶段推进、比赛模拟逻辑时使用此技能。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | time-system |
| description | 电竞经理游戏的时间推进系统。管理赛季阶段、比赛模拟、赛季结算等核心游戏流程。当需要修改游戏进度、阶段推进、比赛模拟逻辑时使用此技能。 |
时间推进系统是游戏的核心引擎,管理整个赛季的15个阶段流转、比赛模拟调度、以及赛季结算。它与比赛模拟系统、荣誉系统、财政系统紧密集成。
文件: src-tauri/src/engines/season_progress.rs
赛季进度引擎,管理阶段状态和可执行操作。
pub struct SeasonProgressEngine {
current_season: u32,
current_phase: SeasonPhase,
phase_completed: bool,
}
核心方法:
advance_phase() - 推进到下一阶段get_available_actions() - 获取当前阶段可执行的操作validate_action() - 验证操作是否允许get_progress() - 获取赛季进度 (已完成/总数)文件: src-tauri/src/services/game_flow/
游戏流程服务,协调各引擎完成阶段初始化和推进。
核心方法:
get_time_state() - 获取完整游戏时间状态initialize_phase() - 初始化当前阶段(创建赛事)complete_and_advance() - 完成当前阶段并推进complete_phase() - 完成阶段并颁发荣誉(含幂等保护:已完成的阶段不会重复执行)fast_forward_to() - 快进到指定目标阶段execute_season_settlement() - 执行赛季结算advance_to_new_season() - 推进到新赛季初始化辅助方法 (由 initialize_phase 调用,避免春/夏季重复代码):
init_regional_regular_season(pool, save_id, season_id, tournament_type, season_label) - 赛区常规赛通用初始化init_regional_playoffs(pool, save_id, season_id, playoff_type, regular_type_str, season_label) - 赛区季后赛通用初始化init_32team_masters(pool, save_id, season_id, tournament_type, source_regular, tournament_name) - 32队大师赛通用初始化工具方法:
get_all_region_ids(pool, save_id) - 获取所有赛区 IDcount_tournament_matches(pool, tournament_id) - 统计赛事比赛数文件: src-tauri/src/models/season.rs
pub enum SeasonPhase {
SpringRegular, // 春季赛常规赛
SpringPlayoffs, // 春季赛季后赛
Msi, // MSI季中赛
MadridMasters, // 马德里大师赛
SummerRegular, // 夏季赛常规赛
SummerPlayoffs, // 夏季赛季后赛
ClaudeIntercontinental, // Claude洲际赛
WorldChampionship, // S世界赛
ShanghaiMasters, // 上海大师赛
IcpIntercontinental, // ICP四赛区洲际对抗赛
SuperIntercontinental, // Super洲际年度邀请赛
AnnualAwards, // 年度颁奖典礼
TransferWindow, // 转会期
Draft, // 选秀(每4年一次:S2, S6, S10...)
SeasonEnd, // 赛季结束
}
SeasonPhase 实用方法 (集中映射,避免在各处重复 match):
| 方法 | 返回类型 | 说明 |
|---|---|---|
to_tournament_type() | Option<TournamentType> | 转换为赛事类型枚举 |
tournament_type_str() | Option<&'static str> | 赛事类型字符串(用于 DB 查询) |
is_playoff() | bool | 是否季后赛(SpringPlayoffs / SummerPlayoffs) |
is_international() | bool | 是否国际赛 |
is_non_tournament() | bool | 是否无赛事阶段(颁奖/转会/选秀/赛季结束) |
display_name() | &'static str | 中文显示名(如 "春季常规赛") |
order() | u8 | 阶段顺序号 (0-14) |
is_before(target) | bool | 是否在目标阶段之前 |
注意: 不要在
game_flow.rs或time_commands.rs中重新编写阶段→赛事类型映射,统一使用SeasonPhase上的方法。
文件: src-tauri/src/models/game_time.rs
pub struct GameTimeState {
pub save_id: String,
pub current_season: u32,
pub current_phase: SeasonPhase,
pub phase_display_name: String,
pub phase_status: PhaseStatus,
pub phase_progress: PhaseProgress, // 当前阶段进度
pub season_progress: SeasonProgress, // 赛季整体进度
pub available_actions: Vec<TimeAction>, // 可用操作
pub can_advance: bool, // 是否可推进
pub next_phase: Option<String>, // 下一阶段
}
pub enum GameAction {
GenerateSpringSchedule, // 生成春季赛赛程
SimulateSpringMatch, // 模拟春季赛比赛
GeneratePlayoffs, // 生成季后赛对阵
SimulatePlayoffMatch, // 模拟季后赛比赛
GenerateMSI, // 生成MSI对阵
SimulateMSIMatch, // 模拟MSI比赛
// ... 其他赛事
StartTransferWindow, // 开始转会期
ProcessTransfer, // 执行转会
EndTransferWindow, // 结束转会期
StartDraft, // 开始选秀
ProcessDraft, // 执行选秀
EndSeason, // 结束赛季
StartNewSeason, // 开始新赛季
}
pub enum FastForwardTarget {
NextPhase, // 下一阶段
ToPhase(SeasonPhase), // 到指定阶段
SeasonEnd, // 赛季结束
}
文件: src-tauri/src/commands/time_commands.rs
| 命令 | 功能 | 返回类型 |
|---|---|---|
get_time_state | 获取完整游戏时间状态 | GameTimeState |
time_init_phase | 初始化当前阶段(创建赛事) | String |
complete_and_advance | 完成当前阶段并推进 | CompleteAndAdvanceResult |
fast_forward_to | 快进到指定目标 | FastForwardResult |
time_simulate_all | 模拟当前阶段所有比赛 | u32 (模拟数量) |
time_simulate_next | 模拟下一场比赛 | SimulateNextResult |
time_season_settlement | 执行赛季结算 | SeasonSettlementResult |
time_start_new_season | 推进到新赛季 | u32 (新赛季号) |
文件: src/api/tauri.ts
// 获取时间状态
export async function getTimeState(): Promise<GameTimeState>
// 初始化阶段
export async function timeInitPhase(): Promise<string>
// 完成并推进
export async function completeAndAdvance(): Promise<CompleteAndAdvanceResult>
// 快进到目标
export async function fastForwardTo(target: string): Promise<FastForwardResult>
// 模拟所有比赛
export async function timeSimulateAll(): Promise<number>
// 模拟下一场
export async function timeSimulateNext(): Promise<SimulateNextResult>
// 赛季结算
export async function timeSeasonSettlement(): Promise<SeasonSettlementResult>
// 开始新赛季
export async function timeStartNewSeason(): Promise<number>
| 目标 | 说明 |
|---|---|
NEXT_PHASE | 下一阶段 |
SUMMER / SUMMER_REGULAR | 夏季赛常规赛 |
WORLDS / WORLD_CHAMPIONSHIP | 世界赛 |
SEASON_END | 赛季结束 |
MSI | MSI季中赛 |
SPRING_PLAYOFFS | 春季季后赛 |
TRANSFER_WINDOW | 转会期 |
DRAFT | 选秀 |
time_simulate_all 和 time_simulate_next 调用 LeagueService.simulate_match()advance_playoff_bracket)player_tournament_statsTransferWindow 阶段触发转会流程Draft 阶段仅在选秀年激活(S2, S6, S10...)SeasonPhase::is_draft_year(season) 判断是否选秀年SpringRegular → SpringPlayoffs → Msi → MadridMasters
↓
SummerRegular → SummerPlayoffs → ClaudeIntercontinental
↓
WorldChampionship → ShanghaiMasters → IcpIntercontinental
↓
SuperIntercontinental → AnnualAwards → TransferWindow
↓
Draft (if is_draft_year) → SeasonEnd → [新赛季 SpringRegular]
const state = await getTimeState()
console.log(`S${state.current_season} - ${state.phase_display_name}`)
console.log(`进度: ${state.phase_progress.completed_matches}/${state.phase_progress.total_matches}`)
// 模拟所有当前阶段比赛
await timeSimulateAll()
// 完成并推进到下一阶段
const result = await completeAndAdvance()
console.log(`已推进到: ${result.new_phase}`)
const result = await fastForwardTo('WORLDS')
console.log(`跳过了 ${result.skipped_phases.length} 个阶段`)
time_init_phase 创建赛事is_draft_year 规则为 (season - 2) % 4 == 0SeasonEnd 阶段调用,包含退役、合同过期等处理complete_phase 会检查赛事是否已完成,重复调用安全返回SeasonPhase 上的方法(to_tournament_type(), tournament_type_str(), display_name() 等),不要在业务代码中重复编写 match 映射init_regional_regular_season、init_regional_playoffs、init_32team_masters 通用方法,新增类似赛制时优先复用电竞经理游戏的数据中心系统。管理选手赛季统计、影响力排行、赛事表现记录、身价变化追踪。当需要修改统计计算、排行榜逻辑、年度评分时使用此技能。
电竞经理游戏的金额单位规范。全项目金额统一以「元」存储和传递,前端使用 formatMoney 系列函数格式化显示。当需要新增金额相关计算、修改身价/薪资/奖金/赞助公式、添加新的金额字段、或排查金额显示异常时使用此技能。
电竞经理游戏的版本更新(Meta)系统。管理20种Meta版本、位置权重、加权战力计算、赛季版本轮换。当需要修改Meta配置、位置权重、战力计算公式、版本轮换规则时使用此技能。
电竞经理游戏的选手系统。管理选手属性、成长曲线、忠诚度、满意度、身价计算。当需要修改选手属性、成长规则、身价公式、忠诚度机制时使用此技能。
电竞经理游戏的选手特性系统。管理14种选手特性的定义、触发条件、修正计算、随机生成、互斥规则。特性影响比赛模拟中选手的ability/stability/condition。当需要修改特性效果、添加新特性、调整触发条件、修改生成规则时使用此技能。
电竞经理游戏的转会系统。8轮制转会流程、AI球队性格、选手评估、自由球员竞标、转会谈判、跨赛区转会偏好值。当需要修改转会规则、AI决策逻辑、转会流程、跨赛区意愿度时使用此技能。