private void OnPlayerRemoved(PlayerSessionData playerSessionData) { for (int i = 0; i < playerControllers.Count; i++) { if (playerControllers[i].playerIndex == playerSessionData.playerIndex) { playerControllers[i].SetPlayerActive(false); break; } } for (int i = 0; i < selectScreenPlayerDatas.Length; i++) { if (selectScreenPlayerDatas[i] != null) { selectScreenPlayerDatas[i].playerReady = false; csPanels[selectScreenPlayerDatas[i].playerSessionData.playerIndex].UpdatePanel(selectScreenPlayerDatas[i]); } } selectScreenPlayerDatas[playerSessionData.playerIndex].playerActive = false; selectScreenPlayerDatas[playerSessionData.playerIndex].playerReady = false; audioController.PlayExit(); csPanels[playerSessionData.playerIndex].Deactivate(); if (inputManager.GetPlayerCount() == 0) { mainMenu.ChangeScreenToRootMainMenu(); } }
public void StartSession() { //Time.timeScale = 2; currentSessionData = new PlayerSessionData(0, 0, 0); StartCoroutine(lateUIupdate()); GeneralGameUIHolder.Instance.otherUI.targetConditionValue = PlayerHandler.PlayerInstance.targetPoint.GetComponentInChildren <Slider>(); GeneralGameUIHolder.Instance.otherUI.targetConditionValue.minValue = 0; GeneralGameUIHolder.Instance.otherUI.changeCameraBehaviour.onClick.RemoveAllListeners(); GeneralGameUIHolder.Instance.otherUI.changeCameraBehaviour.onClick.AddListener(() => ChangeCameraBehaviour()); GeneralGameUIHolder.Instance.otherUI.restartButton.onClick.RemoveAllListeners(); GeneralGameUIHolder.Instance.otherUI.restartButton.onClick.AddListener(() => Restart()); GeneralGameUIHolder.Instance.otherUI.returnToMenuButton.onClick.RemoveAllListeners(); GeneralGameUIHolder.Instance.otherUI.returnToMenuButton.onClick.AddListener(() => BackToMainMenu()); PlayerHandler.PlayerInstance.truck.trucksCondition.OnZeroCondition += SaveCurrentSessionData; UpdatePlayerConditionValueAndSessionComplexity(); PlayerHandler.PlayerInstance.truck.trucksCondition.OnCurrentConditionChanged += UpdatePlayerConditionValueAndSessionComplexity; startPostion = PlayerHandler.PlayerInstance.truck._transform.position; startTime = (int)Time.time; StartCoroutine(WriteTimeTraveledDistances()); }
public void CreateCharacter(PlayerSessionData psData) { if (!initialized) { return; } CharController newChar = GameObject.Instantiate(characterPrefab, spawnLocations[psData.playerIndex % spawnLocations.Count]); newChar.ship = shipMovement; newChar.outsideBehaviour.shipEjectSystem = shipEjectSystem; newChar.transform.parent = charactersRoot; newChar.Initialize(psData, spawnFloors[psData.playerIndex % spawnFloors.Count]); /* Attach Tool */ if (psData.charToolType != CharToolType.None) { CharTool tool = charToolFactory.CreateCharTool(psData.charToolType); newChar.EquipTool(tool); } /* Cameras */ contextCams[psData.playerIndex].SetFollowTarget(newChar.transform); contextCams[psData.playerIndex].Activate(); CamZone charGameplayCamZone = gameplayCamZone.Copy(); charGameplayCamZone.trans = newChar.transform; gameplaySet.camZones.Add(charGameplayCamZone); CamZone charCharactersCamZone = characterCamZone.Copy(); charCharactersCamZone.trans = newChar.transform; charactersSet.camZones.Add(charCharactersCamZone); playerCharacters.Add(newChar); }
public void ShowSessionProgress(PlayerSessionData sessionData, CurrentSessionTaskData sessionTask, UnityEngine.Events.UnityAction onOKclick) { gameObject.SetActive(true); for (int i = 0; i < sessionTask.tasks.Length; i++) { taskViewer[i].SetActive(true); taskViewer[i].GetComponentInChildren <Toggle>().gameObject.SetActive(true); taskViewer[i].GetComponent <Text>().text = GetLocalizedTaskText(sessionTask.tasks[i].taskType, sessionTask.tasks[i].taskAmount); taskViewer[i].GetComponentInChildren <Toggle>().GetComponent <UnityEngine.UI.Toggle>().isOn = sessionTask.tasks[i].isDone; taskViewer[i].transform.GetChild(1).GetComponent <Text>().text = sessionTask.tasks[i].reward.ToString() + "$"; switch (sessionTask.tasks[i].taskType) { case GameEnums.TaskType.DestroyEnemies: taskViewer[i].transform.GetChild(2).GetComponent <Text>().text = $"{sessionData.defeatedEnemies}"; break; case GameEnums.TaskType.TravelDistance: taskViewer[i].transform.GetChild(2).GetComponent <Text>().text = $"{sessionData.traveledDistance} m"; break; case GameEnums.TaskType.TravelTime: taskViewer[i].transform.GetChild(2).GetComponent <Text>().text = $"{sessionData.traveledTime} sec"; break; default: break; } } totalRewardText.gameObject.SetActive(true); totalRewardText.text = GetLocalizedRewardText(sessionTask.totalReward, PlayerStaticDataHandler.RewardCoinsForSession(sessionData.defeatedEnemies, sessionData.traveledDistance)); okButton.onClick.RemoveAllListeners(); okButton.onClick.AddListener(() => onOKclick.Invoke()); okButton.onClick.AddListener(() => HideWindow()); }
public void CopyData(SelectScreenPlayerData ssPlayerData) { this.playerSessionData = ssPlayerData.playerSessionData; this.skinIndex = ssPlayerData.skinIndex; this.devotionNameIndex = ssPlayerData.devotionNameIndex; this.spiritNameIndex = ssPlayerData.spiritNameIndex; this.charTool = ssPlayerData.charTool; this.playerActive = ssPlayerData.playerActive; this.playerReady = ssPlayerData.playerReady; }
public static void SaveData(TruckData truckData, FirePointData firePointData, PlayerSessionData playerSessionData) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/player.data"; FileStream stream = new FileStream(path, FileMode.Create); SerializablePlayerData data = new SerializablePlayerData(); data.firePointType = (int)truckData.firePointType; data.truckType = (int)truckData.truckType; data.gunTypes = new int[12]; data.locationPaths = new int[12]; data.trackingGroups = new int[12]; data.gunDataTypes = new int[12]; for (int i = 0; i < firePointData.gunsConfigurations.Length; i++) { var config = firePointData.gunsConfigurations[i]; data.gunTypes[i] = (int)config.gunType; data.locationPaths[i] = (int)config.locationPath; data.trackingGroups[i] = (int)config.trackingGroup; data.gunDataTypes[i] = (int)config.gunDataType; } if (playerSessionData.traveledDistance > PlayerStaticRunTimeData.maxTraveledDistancePerSession) { data.maxTraveledDistancePerSession = playerSessionData.traveledDistance; } else { data.maxTraveledDistancePerSession = PlayerStaticRunTimeData.maxTraveledDistancePerSession; } data.traveledDistance = PlayerStaticRunTimeData.traveledDistance + playerSessionData.traveledDistance; if (playerSessionData.defeatedEnemies > PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession) { data.maxDefeatedEnemiesPerSession = playerSessionData.defeatedEnemies; } else { data.maxDefeatedEnemiesPerSession = PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession; } data.defeatedEnemies = PlayerStaticRunTimeData.defeatedEnemies + playerSessionData.defeatedEnemies; data.experience = PlayerStaticRunTimeData.experience + playerSessionData.defeatedEnemies * 100 + playerSessionData.traveledDistance / 10; data.coins = PlayerStaticRunTimeData.coins + playerSessionData.defeatedEnemies * 10 + +playerSessionData.traveledDistance / 10; formatter.Serialize(stream, data); stream.Close(); }
private void OnPlayerRegistered(PlayerSessionData playerSessionData) { SelectScreenPlayerData ssPlayerData = new SelectScreenPlayerData(); selectScreenPlayerDatas[playerSessionData.playerIndex] = ssPlayerData; ssPlayerData.playerSessionData = playerSessionData; ssPlayerData.playerActive = true; ssPlayerData.playerReady = false; AssignRandomNames(ssPlayerData); AssignRandomSkin(ssPlayerData); AssignRandomTool(ssPlayerData); csPanels[playerSessionData.playerIndex].Activate(playerSessionData.playerIndex, playerSessionData.uiInputManager); audioController.PlayEnter(); }
public void ShowSessionProgress(PlayerSessionData sessionData, CurrentSessionTaskData sessionTask, UnityEngine.Events.UnityAction onOKclick) { gameObject.SetActive(true); for (int i = 0; i < sessionTask.tasks.Length; i++) { taskViewer[i].SetActive(true); taskViewer[i].GetComponentInChildren <Toggle>().gameObject.SetActive(true); taskViewer[i].GetComponent <Text>().text = GetLocalizedTaskText(sessionTask.tasks[i].taskType, sessionTask.tasks[i].taskAmount); taskViewer[i].GetComponentInChildren <Toggle>().GetComponent <UnityEngine.UI.Toggle>().isOn = sessionTask.tasks[i].isDone; taskViewer[i].transform.GetChild(2).GetComponent <Text>().text = sessionTask.tasks[i].reward.ToString() + "$"; } totalRewardText.gameObject.SetActive(true); totalRewardText.text = GetLocalizedRewardText(sessionTask.totalReward, sessionData.defeatedEnemies * 10 + sessionData.traveledDistance / 10); okButton.onClick.RemoveAllListeners(); okButton.onClick.AddListener(() => onOKclick.Invoke()); okButton.onClick.AddListener(() => HideWindow()); }
private void OnPlayerChangedIndex(PlayerSessionData playerSessionData, int oldIndex) { selectScreenPlayerDatas[playerSessionData.playerIndex].CopyData(selectScreenPlayerDatas[oldIndex]); selectScreenPlayerDatas[oldIndex].playerReady = false; selectScreenPlayerDatas[oldIndex].playerActive = false; selectScreenPlayerDatas[playerSessionData.playerIndex].playerActive = true; for (int i = 0; i < playerControllers.Count; i++) { if (playerControllers[i].playerIndex == oldIndex) { playerControllers[i].playerIndex = playerSessionData.playerIndex; } } csPanels[playerSessionData.playerIndex].UpdatePanel(selectScreenPlayerDatas[playerSessionData.playerIndex]); csPanels[playerSessionData.playerIndex].Activate(playerSessionData.playerIndex, playerSessionData.uiInputManager); csPanels[oldIndex].UpdatePanel(selectScreenPlayerDatas[oldIndex]); csPanels[oldIndex].Deactivate(); }
public void Initialize(PlayerSessionData playerSessionData, int startingFloor) { initialized = true; this.playerSessionData = playerSessionData; this.charInputManager = playerSessionData.gameplayInputManager; this.charAnimator.sprites = playerSessionData.skin.sprites.ToArray(); animator.runtimeAnimatorController = playerSessionData.skin.animatorController; ship.AddDependentTransform(transform); SetGameplayInputActive(); insideBehaviour.Initialize(this, rb2D, charSpriteRenderer, animator, charAudio); outsideBehaviour.Initialize(this, rb2D, charSpriteRenderer, animator, charAudio); outsideBehaviour.Deactivate(); ChangeState(CharState.Inside); charAudio.SetEnvironmentBasedOnFloor(startingFloor); animator.keepAnimatorControllerStateOnDisable = true; //Initialize Actions availableActions = new Dictionary <UseActionButton, List <UseAction> >(); Subscribe(); }
public void CheckSession(PlayerSessionData sessionData) { //totalReward = 0; for (int i = 0; i < tasks.Length; i++) { if (!tasks[i].isDone) { switch (tasks[i].taskType) { case GameEnums.TaskType.DestroyEnemies: if (sessionData.defeatedEnemies >= tasks[i].taskAmount) { tasks[i].isDone = true; totalReward += tasks[i].reward; } break; case GameEnums.TaskType.TravelDistance: if (sessionData.traveledDistance >= tasks[i].taskAmount) { tasks[i].isDone = true; totalReward += tasks[i].reward; } break; case GameEnums.TaskType.TravelTime: if (sessionData.traveledTime >= tasks[i].taskAmount) { tasks[i].isDone = true; totalReward += tasks[i].reward; } break; default: break; } } } }
public static void SaveData(TruckData truckData, PlayerSessionData playerSessionData) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/player.data"; FileStream stream = new FileStream(path, FileMode.Create); PlayerSerializableData data = new PlayerSerializableData(); data.firePointType = (int)truckData.firePointType; data.truckType = (int)truckData.truckType; data.gunTypes = new int[12]; data.battleTypes = new int[12]; data.locationPaths = new int[12]; data.trackingGroups = new int[12]; data.gunDataTypes = new int[12]; for (int i = 0; i < truckData.firePointData.gunsConfigurations.Length; i++) { var config = truckData.firePointData.gunsConfigurations[i]; data.gunTypes[i] = (int)config.gunType; data.battleTypes[i] = (int)config.battleType; data.locationPaths[i] = (int)config.locationPath; data.trackingGroups[i] = (int)config.trackingGroup; data.gunDataTypes[i] = (int)config.gunDataType; } if (playerSessionData.traveledDistance > PlayerStaticRunTimeData.maxTraveledDistancePerSession) { data.maxTraveledDistancePerSession = playerSessionData.traveledDistance; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceInOneSession_ID); } else { data.maxTraveledDistancePerSession = PlayerStaticRunTimeData.maxTraveledDistancePerSession; } if (playerSessionData.defeatedEnemies > PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession) { data.maxDefeatedEnemiesPerSession = playerSessionData.defeatedEnemies; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.defeatedEnemies, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxDefeatedEnemiesInOneSession_ID); } else { data.maxDefeatedEnemiesPerSession = PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession; } if (playerSessionData.traveledTime > PlayerStaticRunTimeData.maxTraveledTimePerSession) { data.maxTraveledTimePerSession = playerSessionData.traveledTime; } else { data.maxTraveledTimePerSession = PlayerStaticRunTimeData.maxTraveledTimePerSession; } if (playerSessionData.traveledDistance_1Minute > PlayerStaticRunTimeData.maxTraveledDistance_1Minute) { data.maxTraveledDistance_1Minute = playerSessionData.traveledDistance_1Minute; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_1Minute, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_1_Minute_ID); } else { data.maxTraveledDistance_1Minute = PlayerStaticRunTimeData.maxTraveledDistance_1Minute; } if (playerSessionData.traveledDistance_3Minutes > PlayerStaticRunTimeData.maxTraveledDistance_3Minutes) { data.maxTraveledDistance_3Minutes = playerSessionData.traveledDistance_3Minutes; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_3Minutes, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_3_Minute_ID); } else { data.maxTraveledDistance_5Minutes = PlayerStaticRunTimeData.maxTraveledDistance_5Minutes; } if (playerSessionData.traveledDistance_5Minutes > PlayerStaticRunTimeData.maxTraveledDistance_5Minutes) { data.maxTraveledDistance_5Minutes = playerSessionData.traveledDistance_5Minutes; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_5Minutes, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_5_Minute_ID); } else { data.maxTraveledDistance_5Minutes = PlayerStaticRunTimeData.maxTraveledDistance_5Minutes; } data.totalTraveledDistance = PlayerStaticRunTimeData.totalTraveledDistance + playerSessionData.traveledDistance; data.totalTraveledTime = PlayerStaticRunTimeData.totalTraveledTime + playerSessionData.traveledTime; data.totalDefeatedEnemies = PlayerStaticRunTimeData.totalDefeatedEnemies + playerSessionData.defeatedEnemies; data.experience = PlayerStaticRunTimeData.experience + RewardCoinsForSession(playerSessionData.defeatedEnemies, playerSessionData.traveledDistance); data.coins = PlayerStaticRunTimeData.coins + RewardCoinsForSession(playerSessionData.defeatedEnemies, playerSessionData.traveledDistance); formatter.Serialize(stream, data); stream.Close(); }