app.hypergames.hypersdk 1.8.11 → 1.9.0-exhibition.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,9 +1,15 @@
1
- ## [1.8.11](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.8.11) (2026-04-30)
1
+ # [1.9.0-exhibition.1](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.9.0-exhibition.1) (2026-05-01)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * normalize score ordering and prevent duplicate final score delta ([ad47380](https://github.com/mvmhyper/hyper-sdk/commit/ad47380e7af6d3c6323a53732bc56d2c0fd545fa))
6
+ * add exhibition prerelease channel ([cf4fbaa](https://github.com/mvmhyper/hyper-sdk/commit/cf4fbaa69f83ca3cd6b4e9f1c518aa885df72cf8))
7
+
8
+
9
+ ### Features
10
+
11
+ * **exhibition:** decouple battle/practice exhibition flow from backend submission ([ec44391](https://github.com/mvmhyper/hyper-sdk/commit/ec44391604146582c295c184e02c41550e859925))
12
+ * **exhibition:** unify fixed countdown flow for battle and practice ([5a25dff](https://github.com/mvmhyper/hyper-sdk/commit/5a25dffbd1f07e6eb2f1d9e718fcdc040b247a3a))
7
13
 
8
14
  ## [1.8.10](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.9...v1.8.10) (2026-04-22)
9
15
 
@@ -928,6 +928,24 @@ namespace Hyper.Internal.Managers
928
928
  yield break;
929
929
  }
930
930
 
931
+ var finalScoreData = _dataManager?.CurrentScoreData;
932
+ finalScoreData.isFinal = true;
933
+
934
+ // For consistency with per-second and backlog submissions, always send
935
+ // the final score as an array of ScoreData.
936
+ var finalScoreList = new List<ScoreData>(1) { finalScoreData };
937
+ string rawScoreJson = JsonConvert.SerializeObject(finalScoreList);
938
+ var compressedScoreData = JsonCompressor.CompressJson(rawScoreJson);
939
+ string scoreJson = compressedScoreData.MinifiedJson;
940
+ string encryptedScoreData = EncryptScore(scoreJson);
941
+
942
+ if (string.IsNullOrEmpty(encryptedScoreData))
943
+ {
944
+ LastSubmissionError = SubmissionErrorType.EncryptionError;
945
+ HyperDebug.LogError("Encryption failed [ENCRYPTION_ERROR]");
946
+ yield break;
947
+ }
948
+
931
949
  // Reset gameResumed flag for this attempt
932
950
  _gameResumed = false;
933
951
 
@@ -1024,39 +1042,6 @@ namespace Hyper.Internal.Managers
1024
1042
  _finalScoreSubmitted = false;
1025
1043
  _isWaitingForFinalScoreResponse = true;
1026
1044
 
1027
- float currentScoreDataScoreTime = _dataManager.CurrentScoreData.cumulativeScore + _dataManager.CurrentScoreData.scoreSnapshot.scoreTime;
1028
- float lastCapturedScoreDataScoreTime = _lastSentBatch.Last().cumulativeScore + _lastSentBatch.Last().scoreSnapshot.scoreTime;
1029
- ScoreData finalScoreData;
1030
-
1031
- if (currentScoreDataScoreTime > lastCapturedScoreDataScoreTime)
1032
- {
1033
- finalScoreData = _dataManager.CurrentScoreData;
1034
- finalScoreData.isFinal = true;
1035
- }
1036
- else
1037
- {
1038
- finalScoreData = _lastSentBatch.Last();
1039
- finalScoreData.isFinal = true;
1040
- finalScoreData.timestampUtc = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
1041
- finalScoreData.scoreSnapshot.scoreDelta = 0;
1042
- finalScoreData.scoreSnapshot.gameplayModifiers = new GameplayModifiers();
1043
- }
1044
-
1045
- // For consistency with per-second and backlog submissions, always send
1046
- // the final score as an array of ScoreData.
1047
- var finalScoreList = new List<ScoreData>(1) { finalScoreData };
1048
- string rawScoreJson = JsonConvert.SerializeObject(finalScoreList);
1049
- var compressedScoreData = JsonCompressor.CompressJson(rawScoreJson);
1050
- string scoreJson = compressedScoreData.MinifiedJson;
1051
- string encryptedScoreData = EncryptScore(scoreJson);
1052
-
1053
- if (string.IsNullOrEmpty(encryptedScoreData))
1054
- {
1055
- LastSubmissionError = SubmissionErrorType.EncryptionError;
1056
- HyperDebug.LogError("Encryption failed [ENCRYPTION_ERROR]");
1057
- yield break;
1058
- }
1059
-
1060
1045
  _lastSentBatch.Clear();
1061
1046
  if (finalScoreData != null)
1062
1047
  {
@@ -66,7 +66,7 @@ namespace Hyper.Internal.Managers
66
66
 
67
67
  CurrentScoreData.cumulativeScore = CurrentScore;
68
68
  CurrentScoreData.timestampUtc = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
69
- CurrentScoreData.isFinal = false;
69
+ CurrentScoreData.isFinal = true;
70
70
 
71
71
  var snapshot = CurrentScoreData.scoreSnapshot;
72
72
  snapshot.scoreTime = currentGameSecond;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app.hypergames.hypersdk",
3
- "version": "1.8.11",
3
+ "version": "1.9.0-exhibition.1",
4
4
  "displayName": "HyperSDK",
5
5
  "description": "Official Unity SDK for Hyper: multiplayer battles, leaderboards, deterministic RNG, session management, tutorials, and WebGL optimizations for production-ready games.",
6
6
  "unity": "6000.0",