private void Awake() { _helpScore = new HelpScore(0, _gameSettings.MaximumHelps); _scoreChanges.OnNext(_helpScore); _countDown = TimeSpan.FromSeconds(_gameSettings.GameDurationSeconds); _countDownChanges.OnNext(_countDown); _worldChanges.OnNext(_currentWorldStatus); _mumblingOwners = new Dictionary <AudioClip, KeyValuePair <HumanController, GhostController> >(); List <int> randomIndexList = new List <int>(); for (int i = 0; i < _allMumbles.Length; i++) { randomIndexList.Add(i); } var goes = GameObject.FindGameObjectsWithTag("spawningPositions"); var spawningPoints = new TupleSpawnPoint[goes.Length]; for (var index = 0; index < goes.Length; index++) { var go = goes[index]; spawningPoints[index] = new TupleSpawnPoint(); spawningPoints[index].HumanPosition = go.transform.Find("Human").transform; spawningPoints[index].GhostPosition = go.transform.Find("Ghost").transform; } int n = spawningPoints.Length; while (n > 1) { int k = UnityEngine.Random.Range(0, n--); TupleSpawnPoint temp = spawningPoints[n]; spawningPoints[n] = spawningPoints[k]; spawningPoints[k] = temp; } for (int i = 0; i < _allMumbles.Length; i++) { var randomIndex = UnityEngine.Random.Range(0, randomIndexList.Count); var index = randomIndexList[randomIndex]; randomIndexList.RemoveAt(randomIndex); if (i >= spawningPoints.Length) { Debug.LogError("You need as many spawn points as mumble sounds"); return; } var mumble = _allMumbles[index]; var longMumble = _allLongMumbles[index]; var ehMumble = _allEhMumbles[index]; var positions = spawningPoints[index]; var notesConfiguration = GetRandomNotesConfiguration(); var humanInstance = Instantiate(_humanControllerPrefab); humanInstance.transform.position = positions.HumanPosition.position; humanInstance.OnSuccess += OnHumanSuccess; humanInstance.SetNoteConfiguration(notesConfiguration); humanInstance.SetMumbling(mumble); humanInstance.SetLongMumbling(longMumble); humanInstance.SetEhMumble(ehMumble); var ghostInstance = Instantiate(_ghostControllerPrefab); ghostInstance.transform.position = positions.GhostPosition.position; ghostInstance.SetMumbling(mumble); ghostInstance.SetNoteConfiguration(notesConfiguration); _mumblingOwners[mumble] = new KeyValuePair <HumanController, GhostController>(humanInstance, ghostInstance); } }
private void OnScoreChange(HelpScore helpScore) { _textComp.text = helpScore.ToString(); }
public void Rescued() { _helpScore = new HelpScore(_helpScore.current + 1, _helpScore.max); _scoreChanges.OnNext(_helpScore); }