BattleRandomState
data class BattleRandomState(val seed: Long, val state: Long = seed, val generatedValueCount: Long = 0)
battle session 级确定性随机状态。
设计目标:
让 battle 内部所有随机数都从同一条序列中消费
让当前随机游标能够跟随 session state 一起导出、恢复
避免依赖 JVM 全局随机源,确保回放时序列严格一致
当前采用 SplitMix64 作为底层状态推进算法:
状态体积小,便于持久化
实现简单,跨平台行为稳定
每次生成只依赖上一状态,适合导出/恢复