70 lines
3.5 KiB
Go
70 lines
3.5 KiB
Go
package routers
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"sync"
|
||
|
|
)
|
||
|
|
|
||
|
|
var _ = sync.Mutex{}
|
||
|
|
var _ = context.Background
|
||
|
|
|
||
|
|
//
|
||
|
|
// Profession phone-app DATA handlers (build 4229938) — 清洁工 Washer / 赛车手 Racer.
|
||
|
|
// Ported from the Lyco donor build on 2026-09-26.
|
||
|
|
// Diagnosis (donor, 2026-09-20 — holds for our tree too): these apps are not blocked at the
|
||
|
|
// entry or at the switch gate. `MainPhoneUtils.OnAppItemClick` has a branch for every job and the
|
||
|
|
// fastpatch ClientGameSwitch module already sets EnableJanitor / EnableCatExpress /
|
||
|
|
// EnableDutyTerminal / EnableEonBug, so `SwitchFunctionManager.CheckEnable` passes. What was
|
||
|
|
// missing is the DATA: with no handler the client fell through to the typed-default (all-zero)
|
||
|
|
// body and each panel rendered an empty shell.
|
||
|
|
// ⛑⛑ This is a STATIC SNAPSHOT, not a simulation. There is no server-side mission generation,
|
||
|
|
// no persisted racing result and no WasherConfig table on our side, so:
|
||
|
|
// * 清洁工 shows one in-flight mission and a fixed history — progress never advances by itself;
|
||
|
|
// * 赛车手 reports zero points / zero stars, so only the group whose authored gate is 0/0
|
||
|
|
// (group 1, C级赛) is unlocked and every league the player has not earned renders 未解锁.
|
||
|
|
// Accepting / finishing a mission is acked and nothing else happens.
|
||
|
|
// ⛑ Do NOT "improve" 赛车手 by returning every group with a synthetic record. The donor measured
|
||
|
|
// that on 2026-09-22: `RacerHistoryPageStore.BuildHistoryList` turns each group's track rows into a
|
||
|
|
// HISTORY entry (so the app claimed "C级赛事 完成" for a player who never raced) and
|
||
|
|
// `RacerCareerPageStore.BuildDisplayLists` treats the KEYS of CompetitionGroupInfos as the unlocked
|
||
|
|
// set, which pushes the frontier to the last league and renders B级赛 进行中 although it is
|
||
|
|
// authored locked. Presence means "unlocked"; the records stay empty until a race is finished.
|
||
|
|
//
|
||
|
|
func GameRouter_JobApps_AskGetWasherMissionInfo(ctx context.Context, conn any, msg any) any {
|
||
|
|
// Router implementation for GameRouter_JobApps_AskGetWasherMissionInfo
|
||
|
|
var zero any; return zero
|
||
|
|
}
|
||
|
|
|
||
|
|
//
|
||
|
|
// Accept / finish (63297472 / 63889979). Both return void per DefaultReturnCatalog, so an empty
|
||
|
|
// OK is the whole contract — they are INVOKEs, and leaving them unrouted makes the button await
|
||
|
|
// a reply that never comes.
|
||
|
|
//
|
||
|
|
func GameRouter_JobApps_WasherMissionAction(ctx context.Context, conn any, msg any) any {
|
||
|
|
// Router implementation for GameRouter_JobApps_WasherMissionAction
|
||
|
|
var zero any; return zero
|
||
|
|
}
|
||
|
|
|
||
|
|
func GameRouter_JobApps_AskRacingCompetitionGroupInfo(ctx context.Context, conn any, msg any) any {
|
||
|
|
// Router implementation for GameRouter_JobApps_AskRacingCompetitionGroupInfo
|
||
|
|
var zero any; return zero
|
||
|
|
}
|
||
|
|
|
||
|
|
// ------------------------------------------------------------------ builders
|
||
|
|
func GameRouter_JobApps_BuildWasherMissionInfo(ctx context.Context, ) any {
|
||
|
|
// Router implementation for GameRouter_JobApps_BuildWasherMissionInfo
|
||
|
|
var zero any; return zero
|
||
|
|
}
|
||
|
|
|
||
|
|
//
|
||
|
|
// 赛车手 league snapshot, gated by the authored thresholds in
|
||
|
|
// RacingDriverCompetitionGroupConfig: a group opens when it is not hard-locked and the player
|
||
|
|
// has reached both point/star gates. Player progress is zero (nothing is persisted yet), so
|
||
|
|
// only group 1 (C级赛, 0/0) opens and B级赛 renders 未解锁 — which is the truthful state for a
|
||
|
|
// player who has never raced.
|
||
|
|
//
|
||
|
|
func GameRouter_JobApps_BuildRacingCompetitionGroupInfo(ctx context.Context, ) any {
|
||
|
|
// Router implementation for GameRouter_JobApps_BuildRacingCompetitionGroupInfo
|
||
|
|
var zero any; return zero
|
||
|
|
}
|
||
|
|
|