You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
955 B

  1. using System;
  2. public static class ConflictResolver
  3. {
  4. public static ConflictResolver.ConflictSolution Resolve(LocalGameState localGameState, CloudGameState cloudGameState)
  5. {
  6. if (cloudGameState.GameVersion > localGameState.LocalGameVersion)
  7. {
  8. return ConflictResolver.ConflictSolution.InvalidGameVersion;
  9. }
  10. if (cloudGameState.SaveGame != null && !string.IsNullOrEmpty(cloudGameState.SaveGuid) && localGameState.IsNewInstall)
  11. {
  12. return ConflictResolver.ConflictSolution.PickCloud;
  13. }
  14. if (cloudGameState.SaveStateGuid == localGameState.LocalSaveStateGuid)
  15. {
  16. return ConflictResolver.ConflictSolution.None;
  17. }
  18. if (cloudGameState.InstallGuid == localGameState.InstallGuid)
  19. {
  20. return ConflictResolver.ConflictSolution.PickLocal;
  21. }
  22. return ConflictResolver.ConflictSolution.AskPlayer;
  23. }
  24. public enum ConflictSolution
  25. {
  26. None,
  27. AskPlayer,
  28. PickLocal,
  29. PickCloud,
  30. InvalidGameVersion
  31. }
  32. }