@@ -183,9 +183,21 @@ private void StartLevel()
183183
184184 private void handleLevelFinished ( MultiplayerLevelScenesTransitionSetupDataSO sceneSetupData , MultiplayerResultsData resultsData )
185185 {
186- string ? hash = Utilities . Utils . LevelIdToHash ( sceneSetupData . previewBeatmapLevel . levelID ) ;
187- if ( hash != null && resultsData != null && resultsData . localPlayerResultData ? . levelCompletionResults != null )
188- _ = Statistics . PlayMap ( hash , sceneSetupData . beatmapDifficulty . ToString ( ) , sceneSetupData . beatmapCharacteristic . serializedName , ( int ) Math . Floor ( resultsData . localPlayerResultData . levelCompletionResults . endSongTime ) , ( int ) ExtendedPlayerManager . localPlatform , MPState . CurrentMasterServer . hostname ) ;
186+ if ( resultsData . localPlayerResultData . levelCompletionResults == null )
187+ return ;
188+
189+ string difficulty = sceneSetupData . beatmapDifficulty . ToString ( ) ;
190+ string characteristic = sceneSetupData . beatmapCharacteristic . serializedName ;
191+ int timePlayed = ( int ) Math . Floor ( resultsData . localPlayerResultData . levelCompletionResults . endSongTime ) ;
192+ bool pass = resultsData . localPlayerResultData . levelCompletionResults . levelEndStateType == LevelCompletionResults . LevelEndStateType . Cleared ;
193+ int cutNotes = resultsData . localPlayerResultData . levelCompletionResults . badCutsCount + resultsData . localPlayerResultData . levelCompletionResults . notGoodCount + resultsData . localPlayerResultData . levelCompletionResults . okCount + resultsData . localPlayerResultData . levelCompletionResults . goodCutsCount ;
194+ int missedNotes = resultsData . localPlayerResultData . levelCompletionResults . missedCount ;
195+ int score = resultsData . localPlayerResultData . levelCompletionResults . rawScore ;
196+ double accuracy = score != 0 ? Math . Floor ( 100 * ( ( double ) ScoreModel . MaxRawScoreForNumberOfNotes ( sceneSetupData . difficultyBeatmap . beatmapData . cuttableNotesType ) / score ) ) / 100 : 0 ;
197+ string ? hash = Utilities . Utils . LevelIdToHash ( sceneSetupData . previewBeatmapLevel . levelID ) ;
198+ if ( hash != null )
199+ _ = Statistics . PlayMap ( ExtendedPlayerManager . localPlatformID , ( int ) ExtendedPlayerManager . localPlatform , MPState . CurrentMasterServer . hostname , hash , difficulty , characteristic , timePlayed , pass , cutNotes , missedNotes , score , accuracy ) ;
200+ //_ = Statistics.PlayMap(hash, sceneSetupData.beatmapDifficulty.ToString(), sceneSetupData.beatmapCharacteristic.serializedName, (int)Math.Floor(resultsData.localPlayerResultData.levelCompletionResults.endSongTime), (int)ExtendedPlayerManager.localPlatform, MPState.CurrentMasterServer.hostname);
189201 }
190202
191203 private bool starting ;
0 commit comments