IEnumerator WaitRangeSkill(Enemy enemy) { CloseCamera(); animator.SetTrigger(RangeAttack); while (!animator.GetCurrentAnimatorStateInfo(0).IsTag("Range")) { yield return(null); } _gameManager.somethingOn = true; enemy.getHit = GetHit.GetHit; giveHit = GiveHit.normal; while (_gameManager.swordMin > animator.GetCurrentAnimatorStateInfo(0).normalizedTime || animator.GetCurrentAnimatorStateInfo(0).normalizedTime > _gameManager.rangeMax) { yield return(null); } _soundManager.PlaySound(Sound.EnergyGun); while (animator.GetCurrentAnimatorStateInfo(0).normalizedTime < _gameManager.rangeHit) { yield return(null); } _gameManager.effectManager.RangeEffectPlayer(enemy, this); Damage(enemy); CheckDead(enemy); giveHit = GiveHit.normal; var victory = _gameManager.CheckVictory(); if (!victory) { _gameManager.somethingOn = false; _gameManager.NextPlayer(); } NonCloseCamera(); while (!enemy.animator.GetCurrentAnimatorStateInfo(0).IsTag("Hit")) { yield return(null); } while (enemy.animator.GetCurrentAnimatorStateInfo(0).normalizedTime < _gameManager.rangeEndTime) { yield return(null); } if (enemy.activeState != ActiveState.Dead) { enemy.GetComponent <CapsuleCollider>().enabled = true; } if (enemy.activeState == ActiveState.Dead) { AfterDead(enemy); } enemy.getHit = GetHit.normal; if (!victory) { CheckPlayerTurn(); } }
IEnumerator WaitCloseSkill(Enemy enemy, float farFromCharacter) { enemy.GetComponent <CapsuleCollider>().enabled = false; _gameManager.somethingOn = true; enemy.getHit = GetHit.GetHit; giveHit = GiveHit.GiveHit; if (enemy.direction == Vector3.forward || enemy.direction == Vector3.back || enemy.direction == Vector3.left || enemy.direction == Vector3.right) { _model.position = this.transform.position - enemy.direction / farFromCharacter; } else { _model.position = this.transform.position + enemy.direction / (farFromCharacter + farFromCharacter); } while (!animator.GetCurrentAnimatorStateInfo(0).IsTag("Sword")) { yield return(null); } while (_gameManager.swordMin > animator.GetCurrentAnimatorStateInfo(0).normalizedTime || animator.GetCurrentAnimatorStateInfo(0).normalizedTime > _gameManager.swordMax) { yield return(null); } while (animator.GetCurrentAnimatorStateInfo(0).normalizedTime < _gameManager.swordHit) { yield return(null); } _gameManager.effectManager.SwordEffectPlayer(enemy, this); _soundManager.PlaySound(Sound.Sword); Damage(enemy); CheckDead(enemy); giveHit = GiveHit.normal; while (!enemy.animator.GetCurrentAnimatorStateInfo(0).IsTag("Hit")) { yield return(null); } while (enemy.animator.GetCurrentAnimatorStateInfo(0).normalizedTime < _gameManager.swordEndTime) { yield return(null); } if (enemy.activeState != ActiveState.Dead) { enemy.GetComponent <CapsuleCollider>().enabled = true; } if (enemy.activeState == ActiveState.Dead) { AfterDead(enemy); } enemy.getHit = GetHit.normal; }