feat(upserver): 接入认证与KV存档并完成限定钓鱼闭环

This commit is contained in:
Liubing\LB
2026-09-28 18:14:01 +08:00
parent f40a816cc4
commit 0eb43b2b40
129 changed files with 11612 additions and 573 deletions

View File

@@ -9,6 +9,41 @@ using GameCore;
public class EventShootingRangeData : IChainPackData
{
private RawData _data = new RawData();
private bool _kvLoadPresent;
internal bool KVLoadPresent => _kvLoadPresent;
internal static game.PlayerDataStorage.PlayerKVShootingRangeState DecodeForKVLoad(
IReadOnlyDictionary<string, string> raw, game.PlayerDataStorage.PlayerKVSchemaSnapshot snapshot,
game.PlayerDataStorage.PlayerKVSchemaDiagnostics errors) =>
game.PlayerDataStorage.PlayerKVSaveSchema.DecodeShootingRange(raw, snapshot, errors);
internal void ResetForKVLoad()
{
_kvLoadPresent = false;
_data = default(RawData);
}
internal void ReplaceFromKVDecoded(game.PlayerDataStorage.PlayerKVShootingRangeState state)
{
if (state == null) throw new ArgumentNullException(nameof(state));
if (!state.IsPresent) { ResetForKVLoad(); return; }
var replacement = new RawData
{
EventId = state.EventId,
CycleId = state.CycleId,
RedirectId = state.RedirectId,
AmmoCount = state.AmmoCount,
CurrentStageIdx = state.CurrentStageIdx,
ChainProgress = state.ChainProgress,
RewardFlag = state.RewardFlag,
TargetFlag = state.TargetFlag,
HasBeenOpened = state.HasBeenOpened,
Inflation = state.Inflation,
};
_data = replacement;
_kvLoadPresent = true;
}
internal game.PlayerDataStorage.PlayerKVShootingRangeState SnapshotForKVValidation() =>
new game.PlayerDataStorage.PlayerKVShootingRangeState(_kvLoadPresent, _data.EventId, _data.CycleId, _data.RedirectId, _data.AmmoCount, _data.CurrentStageIdx, _data.ChainProgress, _data.RewardFlag, _data.TargetFlag, _data.HasBeenOpened, _data.Inflation);
private readonly Tables _tables = GContext.container.Resolve<Tables>();
private readonly TbPack _pack = GContext.container.Resolve<Tables>().TbPack;
private readonly TbEventPackManager _eventPackManager = GContext.container.Resolve<Tables>().TbEventPackManager;
@@ -357,4 +392,4 @@ public class EventShootingRangeData : IChainPackData
public bool HasBeenOpened;
public float Inflation;
}
}
}