public GameState GetInitialGameState()
{
var localGameStateString = FileHelper.TryReadHashProtectedTextFile(_storageFile, _manifestFile, HASH_SEED);
if (!string.IsNullOrEmpty(localGameStateString))
{
var localGameState = (Dictionary<string, object>) Json.Deserialize(File.ReadAllText(_storageFile));
var localGeneration = GameState.GetGeneration(localGameState);
var remoteGeneration = GameState.GetGeneration(_remoteGameState);
PSDebug.Log("Local game state is newer that server state: {0} ({1} > {2})",
localGeneration > remoteGeneration, localGeneration, remoteGeneration);
var forceRemote = remoteGeneration < 0;
return new GameState(
forceRemote || localGeneration <= remoteGeneration
? _remoteGameState
: localGameState
);
}
return new GameState(_remoteGameState);
}