public void Init(Sprite[] targetSprites, Color[] targetColors, LegsController legsController) { _animator = GetComponent <Animator>(); _targetSprites = targetSprites; _targetColors = targetColors; Legs = legsController; GameObject playerGameObject = Instantiate(_playerPrefab, _gameplayParent.transform); playerGameObject.transform.position = _playerSpawnPoint.position; _shredder = GetComponentInChildren <PlayerShredder>(); _shredder.ShredderEntered += OnShredderEntered; _player = playerGameObject.GetComponent <PlayerController>(); _player.Init(_controlScheme); _triggers = GetComponentsInChildren <TargetTrigger>(); foreach (TargetTrigger trigger in _triggers) { trigger.Init(); } TargetTrigger.TriggerEntered += OnTriggerEntered; Deactivate(); }
private void OnLegsMoved(LegsController legs, bool forward) { if (forward) { } else { } }
private GameplaySequence GetNextSequence() { LegsController lowestProgressLegsController = GetLowestProgressPlayer(); int newIndex = lowestProgressLegsController.Progress; if (newIndex > 0 && newIndex < Sequences.Count) { return(Sequences[newIndex]); } return(null); }
private IEnumerator SequenceEndCoroutine(GameplaySequence sequence) { GameplaySequence sequenceToPlay = null; if (sequence.Success) { Debug.Log("Sequence " + sequence.RequiredScore.ToString() + " won."); Dialogue dialogue = GetRandomPositiveDialogue(); yield return(StartCoroutine(DisplayBoardTextCoroutine(sequence.StartingBoard, dialogue.Sentence, true))); yield return(StartCoroutine(DisplayBoardTextCoroutine(sequence.OtherBoard, dialogue.Answer, true))); } else { Debug.Log("Sequence " + sequence.RequiredScore.ToString() + " lost."); Dialogue dialogue = GetRandomNegativeDialogue(); yield return(StartCoroutine(DisplayBoardTextCoroutine(sequence.StartingBoard, dialogue.Sentence, false))); yield return(StartCoroutine(DisplayBoardTextCoroutine(sequence.OtherBoard, dialogue.Answer, false))); } LegsController legsToMove = sequence.Success ? GetLowestProgressPlayer() : GetHighestProgressPlayer(); legsToMove.StepToPosition(sequence.Success, false); while (sequence.Legs.IsMoving) { yield return(null); } _currentSequence = GetNextSequence(); if (_currentSequence != null) { _currentSequence.Start(OnGameplaySequenceFinished); } else { EndGame(sequence.Success); } }