This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Ananta-ps/internal/gameserver/routers/game_router_mobile_skin.go
T

48 lines
2.3 KiB
Go

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// Phone menu skin parts (手机壁纸 / 装饰 / 挂件).
// The client's "apply" button only sends AskSetMobileSkinPart and then waits for the answer.
// It never writes the worn suit locally: GameToClientImpl.SyncSpiritMobileSkinPartInfo is the
// sole writer of SpiritInfo.MobileSkinInfo, and it is also what fires
// ON_SYNC_SPIRIT_SKIN_PART_INFO_CHANGE so MainPhonePanelStore.OnSpiritSkinPartChange re-reads the
// value. Because this method previously fell through to the typed-neutral fallback, the whole
// sequence ended with "applied successfully" and an unchanged wallpaper: the preview closed, the
// panel re-read the untouched login struct, and the wallpaper snapped back.
// This handler stores the choice per character (and mirrors it to PlayerProgressStore) and replays
// it as SyncSpiritMobileSkinPartInfo so the wallpaper actually changes — and stays changed across
// re-logins, because the login payload now carries the stored suit.
// The reply stays an empty 0-error body, byte-identical to what the fallback produced, so the
// client's existing "close preview / show result toast" branch is untouched.
//
func GameRouter_MobileSkin_AskSetMobileSkinPart4229938(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_MobileSkin_AskSetMobileSkinPart4229938
var zero any; return zero
}
func GameRouter_MobileSkin_AskResetMobileSkinPart4229938(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_MobileSkin_AskResetMobileSkinPart4229938
var zero any; return zero
}
//
// Stores the worn suit for the character currently in play and echoes it back.
// The spirit id must be a FightSpiritConfig template id, not a unit instance id: the client
// looks the character up through SpiritManager.spiritViewDatas, which SyncPlayerInfoSpirit /
// SyncPlayerAllSpirits key by SpiritInfo.TemplateId, and GetCurrentSpiritSkinInfo resolves the
// same way through gBattleSpiritMgr.currentSpiritTemplateId (= InfoSpirit.ActiveSpirit).
//
func GameRouter_MobileSkin_ApplyPhoneSkin4229938Async(ctx context.Context, conn any, msg any, wallpaper uint32, decoration uint32, pendant uint32, reason string) any {
// Router implementation for GameRouter_MobileSkin_ApplyPhoneSkin4229938Async
var zero any; return zero
}