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())); }
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]; }
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())); }
public EnemyAnimator(PrologueCharacter root) : base(root) { }
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)); } }