示例#1
0
    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();
    }
示例#2
0
 private void OnLegsMoved(LegsController legs, bool forward)
 {
     if (forward)
     {
     }
     else
     {
     }
 }
示例#3
0
    private GameplaySequence GetNextSequence()
    {
        LegsController lowestProgressLegsController = GetLowestProgressPlayer();
        int            newIndex = lowestProgressLegsController.Progress;

        if (newIndex > 0 && newIndex < Sequences.Count)
        {
            return(Sequences[newIndex]);
        }
        return(null);
    }
示例#4
0
    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);
        }
    }