private void Update()
        {
            if (Input.GetButtonDown(EFire.Fire1.ToString()))
            {
                _fireChanges.OnNext(EFire.Fire1);
            }

            if (Input.GetButtonDown(EFire.Fire2.ToString()))
            {
                _fireChanges.OnNext(EFire.Fire2);
            }

            if (Input.GetButtonDown(EFire.Fire3.ToString()))
            {
                _fireChanges.OnNext(EFire.Fire3);
            }

            if (Input.GetButtonDown(EFire.Fire4.ToString()))
            {
                _fireChanges.OnNext(EFire.Fire4);
            }
        }
    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);
        }
    }
Example #3
0
 private void NotifyListeners()
 {
     _utcNowChanged.OnNext(UtcNow);
 }