Ejemplo n.º 1
0
        public override void DoAction()
        {
            animator.SetTrigger("Attack");

            Vector3 normalVector = (targetObject.transform.position - transform.position).normalized;

            transform.rotation = Quaternion.LookRotation(normalVector);
            transform.rotation = new Quaternion(0f, transform.rotation.y, 0, transform.rotation.w);

            int   ShotCount = (2 * bossPhase) + 1;
            float angle     = ((ShotCount - 1) * 0.5f) * AngleOffset;

            for (int i = 0; i < ShotCount; i++)
            {
                EnemyFireBall enemyFireBall = FireballList.Dequeue();
                LaunchedFireballList.Enqueue(enemyFireBall);
                enemyFireBall.gameObject.SetActive(true);
                SetFireball(enemyFireBall, normalVector, angle);
                enemyFireBall.AttackArea.Power = (int)Power;

                fireballTimer = GameTimeManager.Instance.PopTimer();
                fireballTimer.SetTimer(timeToReturn, false);
                fireballTimer.Callback = timerCallback;
                fireballTimer.StartTimer();

                angle -= AngleOffset;
            }
        }
Ejemplo n.º 2
0
 private void SetFireball(EnemyFireBall enemyFireBall, Vector3 normalVector, float angle)
 {
     enemyFireBall.gameObject.transform.position = (transform.rotation * Vector3.forward * shotOffset) + transform.position;
     enemyFireBall.transform.rotation            = Quaternion.LookRotation(normalVector);
     enemyFireBall.transform.Rotate(0, angle, 0);
     enemyFireBall.rigidbodyComponent.velocity = enemyFireBall.gameObject.transform.rotation * Vector3.forward * fireballSpeed;
 }
Ejemplo n.º 3
0
 public AttackPattern2(EnemyFireBall fireBall, GameTimer fireballLifeTimer, Animator animator,
                       Transform transform, Rigidbody rigidbodyComponent, BattlePlayer targetObject, Vector3 position,
                       float fireballSpeed, TimerCallback pushFireball, ChangeStateCallback changeStateCallback, float Power) : base(animator, rigidbodyComponent)
 {
     this.fireBall            = fireBall;
     this.fireballLifeTimer   = fireballLifeTimer;
     this.animator            = animator;
     this.transform           = transform;
     this.rigidbodyComponent  = rigidbodyComponent;
     this.targetObject        = targetObject;
     this.fireballSpeed       = fireballSpeed;
     this.pushFireball        = pushFireball;
     this.changeStateCallback = changeStateCallback;
     this.Power = Power;
 }