Exemplo n.º 1
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //attach walker
        //suble bug about rotation- -
        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, _path,
                                    _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        Vector3 tng = Bezier.GetTangent3d(_path.Nodes[_startNodeIdx]._ctrlPts,
                _startTngOffset);

        Vector3 binrm = Bezier.GetBinormal3d(_path.Nodes[_startNodeIdx]._ctrlPts,
                        _startTngOffset, transform.up);

        //instantiate cop squad
        _cops = new List<CopBehavior>();
        for (int i = 0; i < _copNum; i++)
        {
            CopBehavior cop = Instantiate(_copPrefab, transform.position, transform.rotation) as CopBehavior;

            cop.transform.parent = transform;
            cop.transform.position += binrm * _copSpace *
                (i > 0 ? ((float)((i - 1) / 2) + 1f) : 0f) * (i % 2 == 0 ? 1f : -1f);
            //cop.transform.position += binrm * _copSpace * i;
            _cops.Add(cop);
        }

        SoundManagerSingletonWrapper.Instance.GetComponent<EmitterSoundManager>().
                        Play(UnityEngine.Random.Range(11, 14), transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 2
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //attach walker
        //suble bug about rotation- -
        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, _path,
                                                            _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        Vector3 tng = Bezier.GetTangent3d(_path.Nodes[_startNodeIdx]._ctrlPts,
                                          _startTngOffset);

        Vector3 binrm = Bezier.GetBinormal3d(_path.Nodes[_startNodeIdx]._ctrlPts,
                                             _startTngOffset, transform.up);

        //instantiate cop squad
        _cops = new List <CopBehavior>();
        for (int i = 0; i < _copNum; i++)
        {
            CopBehavior cop = Instantiate(_copPrefab, transform.position, transform.rotation) as CopBehavior;

            cop.transform.parent    = transform;
            cop.transform.position += binrm * _copSpace *
                                      (i > 0 ? ((float)((i - 1) / 2) + 1f) : 0f) * (i % 2 == 0 ? 1f : -1f);
            //cop.transform.position += binrm * _copSpace * i;
            _cops.Add(cop);
        }

        SoundManagerSingletonWrapper.Instance.GetComponent <EmitterSoundManager>().
        Play(UnityEngine.Random.Range(11, 14), transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 3
0
    private IEnumerator TutorialCoroutine()
    {
        //charging
        _chargingCanvas.gameObject.SetActive(true);
        _inspirationCanvas.gameObject.SetActive(false);
        _reflectionCanvas.gameObject.SetActive(false);
        StartCoroutine(CheckChargeFinish());
        while (!_chargingFinish)
        {
            yield return(null);
        }

        //inspiration
        _chargingCanvas.gameObject.SetActive(false);
        _inspirationCanvas.gameObject.SetActive(true);
        _reflectionCanvas.gameObject.SetActive(false);
        StartCoroutine(CheckInspirationFinish());
        while (!_inspirationFinish)
        {
            yield return(null);
        }


        //reflection
        _chargingCanvas.gameObject.SetActive(false);
        _inspirationCanvas.gameObject.SetActive(false);
        _reflectionCanvas.gameObject.SetActive(true);
        LevelController.Instance._legionCtrl._crowd.GetComponent <BoxCollider>().enabled = false;
        yield return(new WaitForSeconds(3f));

        _cop = Instantiate(_copPrefab, transform.position, transform.rotation) as CopBehavior;
        _cop.transform.parent = transform;
        _copWalker            = PathSurfaceWalker.AttachPathSurfaceWalker(_cop.gameObject, _path,
                                                                          _copNodeIdx, _copTngOffset, _copBinrmOffset, 0f, _copSpeed);
        _copWalker.WalkFinish += OnWalkFinish;
        _copWalker.MoveOnPathSurface(_copNodeIdx, _copTngOffset, 0f);

        StartCoroutine(CheckReflectionFinish());
        while (!_reflectionFinish)
        {
            yield return(null);
        }
        LevelController.Instance._legionCtrl._crowd.GetComponent <BoxCollider>().enabled = true;
        EndEvent();
    }
Exemplo n.º 4
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //instantiate tank
        _tank = Instantiate(_tankPrefab, transform.position, transform.rotation) as TankBehavior;
        _tank.transform.parent = transform;

        PathManager path = LevelController.Instance._path;
        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, path,
            _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        SoundManagerSingletonWrapper.Instance.GetComponent<EmitterSoundManager>().
                       Play(16, transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 5
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //instantiate tank
        _tank = Instantiate(_tankPrefab, transform.position, transform.rotation) as TankBehavior;
        _tank.transform.parent = transform;

        PathManager path = LevelController.Instance._path;

        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, path,
                                                            _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        SoundManagerSingletonWrapper.Instance.GetComponent <EmitterSoundManager>().
        Play(16, transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 6
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //instantiate cop motorcade
        GameObject motorcade = Instantiate(_copMotorcadePrefab, transform.position, transform.rotation) as GameObject;
        motorcade.transform.parent = transform;

        PathManager path = LevelController.Instance._path;
        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, path,
            _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        SoundManagerSingletonWrapper.Instance.GetComponent<EmitterSoundManager>().
                   Play(15, transform, AudioType.GameSFX);

        SoundManagerSingletonWrapper.Instance.GetComponent<EmitterSoundManager>().
           Play(UnityEngine.Random.Range(11, 14), transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 7
0
    public override void StartEvent()
    {
        LevelController.Instance._legionCtrl.SlowDown();
        //instantiate cop motorcade
        GameObject motorcade = Instantiate(_copMotorcadePrefab, transform.position, transform.rotation) as GameObject;

        motorcade.transform.parent = transform;

        PathManager path = LevelController.Instance._path;

        _walker = PathSurfaceWalker.AttachPathSurfaceWalker(gameObject, path,
                                                            _startNodeIdx, _startTngOffset, _startBinrmOffset, 0f, _speed);
        _walker.WalkFinish += OnWalkFinish;
        _walker.MoveOnPathSurface(_startNodeIdx, _startTngOffset, 0f);

        SoundManagerSingletonWrapper.Instance.GetComponent <EmitterSoundManager>().
        Play(15, transform, AudioType.GameSFX);

        SoundManagerSingletonWrapper.Instance.GetComponent <EmitterSoundManager>().
        Play(UnityEngine.Random.Range(11, 14), transform, AudioType.GameSFX);

        _start = true;
    }
Exemplo n.º 8
0
    private IEnumerator TutorialCoroutine()
    {
        //charging
        _chargingCanvas.gameObject.SetActive(true);
        _inspirationCanvas.gameObject.SetActive(false);
        _reflectionCanvas.gameObject.SetActive(false);
        StartCoroutine(CheckChargeFinish());
        while (!_chargingFinish)
            yield return null;

        //inspiration
        _chargingCanvas.gameObject.SetActive(false);
        _inspirationCanvas.gameObject.SetActive(true);
        _reflectionCanvas.gameObject.SetActive(false);
        StartCoroutine(CheckInspirationFinish());
        while (!_inspirationFinish)
            yield return null;

        //reflection
        _chargingCanvas.gameObject.SetActive(false);
        _inspirationCanvas.gameObject.SetActive(false);
        _reflectionCanvas.gameObject.SetActive(true);
        LevelController.Instance._legionCtrl._crowd.GetComponent<BoxCollider>().enabled = false;
        yield return new WaitForSeconds(3f);
        _cop = Instantiate(_copPrefab, transform.position, transform.rotation) as CopBehavior;
        _cop.transform.parent = transform;
        _copWalker = PathSurfaceWalker.AttachPathSurfaceWalker(_cop.gameObject, _path,
                                    _copNodeIdx, _copTngOffset, _copBinrmOffset, 0f, _copSpeed);
        _copWalker.WalkFinish += OnWalkFinish;
        _copWalker.MoveOnPathSurface(_copNodeIdx, _copTngOffset, 0f);

        StartCoroutine(CheckReflectionFinish());
        while (!_reflectionFinish)
            yield return null;
        LevelController.Instance._legionCtrl._crowd.GetComponent<BoxCollider>().enabled = true;
        EndEvent();
    }