Exemplo n.º 1
0
        private IEnumerator PlayerAttack(int damage, PrologueCharacter enemy, bool critical, bool dead, bool isFenrir = false)
        {
            _player.Ready();
            if (critical)
            {
                _player.Animator.CriticalAttack();
            }
            else
            {
                _player.Animator.Attack();
            }
            yield return(new WaitUntil(() => _player.AttackEnd));

            if (dead)
            {
                enemy.Animator.Die();
            }
            else
            {
                enemy.Animator.Hit();
            }
            _battle.ShowComboText(true);
            PopupDmg(damage, enemy.gameObject, true, critical, ElementalType.Normal, isFenrir);
            yield return(new WaitUntil(() => _player.Animator.IsIdle()));
        }
Exemplo n.º 2
0
        private IEnumerator CoSpawnWave(GameObject player)
        {
            var monsterIds = new List <int>
            {
                202002,
                203005,
                205000,
            };

            yield return(StartCoroutine(
                             Game.instance.Stage.spawner.CoSpawnWave(monsterIds, player.transform.position, 0f, _fenrir, _player)));

            var characters = GetComponentsInChildren <PrologueCharacter>();

            _fox    = characters[1];
            _pig    = characters[2];
            _knight = characters[3];
        }
Exemplo n.º 3
0
        private IEnumerator CoStartPrologue()
        {
            Mixpanel.Track("Unity/Prologuebattle Start");
            StartCoroutine(Widget.Find <Blind>().FadeOut(2f));
            ActionCamera.instance.InPrologue = true;
            AudioController.instance.PlayMusic(AudioController.MusicCode.PrologueBattle);
            Game.instance.Stage.LoadBackground("Chapter_Prologue");
            var go = PlayerFactory.Create();

            _player = go.GetComponent <Player>();
            _player.Equip(10251001, 10151000);
            var position = _player.transform.position;

            position.y = Stage.StageStartPosition;
            _player.transform.position = position;
            _player.StartRun();
            ActionCamera.instance.ChaseX(_player.transform);
            _battle = Widget.Find <UI.Battle>();
            _battle.ShowForTutorial();
            yield return(new WaitForSeconds(2f));

            var go2 = EnemyFactory.Create(205007, _player.transform.position, 7f, _player);

            _fenrir = go2.GetComponent <PrologueCharacter>();
            yield return(new WaitUntil(() => 6f > Mathf.Abs(go.transform.position.x - go2.transform.position.x)));

            _player.ShowSpeech("PLAYER_PROLOGUE_SPEECH");
            AudioController.instance.PlaySfx(AudioController.SfxCode.FenrirGrowlCasting);
            _player.StopRun();
            _fenrir.Animator.StandingToIdle();
            yield return(new WaitUntil(() => _fenrir.Animator.IsIdle()));

            yield return(new WaitForSeconds(1f));

            Widget.Find <PrologueDialog>().Show();
            yield return(new WaitWhile(() => Widget.Find <PrologueDialog>().isActiveAndEnabled));

            yield return(StartCoroutine(CoSpawnWave(go)));

            yield return(StartCoroutine(CoBattle()));

            yield return(StartCoroutine(CoPrologueEnd()));
        }
Exemplo n.º 4
0
 public EnemyAnimator(PrologueCharacter root) : base(root)
 {
 }
Exemplo n.º 5
0
        public IEnumerator CoSpawnWave(List <int> monsterIds, Vector2 position, float offset, PrologueCharacter fenrir, Player player)
        {
            AudioController.instance.PlaySfx(AudioController.SfxCode.FenrirGrowlSummon);
            for (var index = 0; index < monsterIds.Count; index++)
            {
                fenrir.Animator.Cast();
                var id  = monsterIds[index];
                var pos = new Vector2(
                    spawnPoints[index].x + position.x + offset,
                    spawnPoints[index].y);
                var go    = EnemyFactory.Create(id, pos, offset, player, true);
                var enemy = go.GetComponent <PrologueCharacter>();
                yield return(new WaitUntil(() => enemy.Animator.IsIdle()));

                yield return(new WaitForSeconds(1f));

                fenrir.Animator.Idle();
                yield return(new WaitForSeconds(0.3f));
            }
        }