private void syncGameState() { SyncData syncData = calculateGameSyncData(); if (string.IsNullOrEmpty(syncData.methodName)) { Log.LogError(this, $"O_o\t Can't sync game state, this mini game will not work properly"); } else { initGame(syncData); } }
private void initGame(SyncData syncData) { CancelInvoke(); activePlayers.Clear(); finishedPlayers.Clear(); isGameActive = false; isAntennaVisible = false; setBulbState(isOn: false); ParticlesGameOver.SetActive(value: false); PlatformOneWayIn.SetActive(value: false); PlatformOneWayOut.SetActive(value: false); setRotationSpeed(0f, 0f, 0f); stepSize = Mathf.Abs(MaxDiameter / (float)NumberOfShrinks) * -1f; stepTime = SecondsRoundLength / (float)NumberOfShrinks; diameter = MaxDiameter; Vector3 localPosition = platformFinalPosition + new Vector3(0f, 10f, 0f); PlatformObject.transform.localPosition = localPosition; setPlatformSize(diameter); setPlatformTilt(platformOriginalAngle); setPlatformRotation(platformOriginalRotation); PlatformTube.transform.localPosition = platformTubeSafetyPosition; tiltAngle = 0f; tileChange = MaxTiltAngle * 2f / SecondsTiltCycle; PlatformSign.SetActive(value: true); textPlatform.text = TextBuoyDefault; if (launchpadObj != null) { UnityEngine.Object.Destroy(launchpadObj); } animLaunchpad = null; participatingPlayers = 0; didLocalPlayerParticipate = false; timeBetweenRounds = StartOnMinute * 60; timeBeforeGameStart = timeBetweenRounds - 130; if (string.IsNullOrEmpty(syncData.methodName)) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = 0; } syncAdjustment = syncData.timeAdjust; Invoke(syncData.methodName, 0f); }
private SyncData calculateGameSyncData() { SyncData syncData = new SyncData(); int num = secondsUntilStart(); if (num >= 131) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = 0; } else if (num < 130 && num >= 127) { animBuoyAndPlatform.SetTrigger("BuoyIdle"); syncData.methodName = "finishBuoyCoundown"; syncData.timeAdjust = -130; } else if (num < 127 && num >= 125) { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); syncData.methodName = "startLaunchPadAppear"; syncData.timeAdjust = -130; } else if (num < 125 && num >= 100) { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); syncData.methodName = "startLaunchPadAppear"; syncData.timeAdjust = -130; } else if (num < 100 && num >= 97) { if (SyncPlayerVolume.PlayerCount() == 0) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = timeBeforeGameStart; } else { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); PlatformSign.SetActive(value: false); syncData.methodName = "startGameWarmup"; syncData.timeAdjust = -130; } } else if (num < 97 && num >= 7) { if (SyncPlayerVolume.PlayerCount() == 0) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = timeBeforeGameStart; } else { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); PlatformSign.SetActive(value: false); syncData.methodName = "startGameWarmup"; syncData.timeAdjust = -130; } } else if (num < 7 && num >= 2) { if (SyncPlayerVolume.PlayerCount() == 0) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = timeBeforeGameStart; } else { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); PlatformSign.SetActive(value: false); setPlatformSize(MinDiameter); syncData.methodName = "endGame"; syncData.timeAdjust = -130; } } else if (num < 2 && num >= 0) { if (SyncPlayerVolume.PlayerCount() == 0) { syncData.methodName = "initAttractMode"; syncData.timeAdjust = timeBeforeGameStart; } else { animBuoyAndPlatform.SetTrigger("PlatformGameInProgress"); PlatformSign.SetActive(value: false); setPlatformSize(MinDiameter); syncData.methodName = "endGamePlatformStartDisappear"; syncData.timeAdjust = -130; } } return(syncData); }