Пример #1
0
 public override void EnterState(SpikyFSM spiky)
 {
     Setup(spiky);
     PlayAnimation(spiky);
     PlayAudio();
     BeingHitAction(spiky);
 }
Пример #2
0
 public override void Update(SpikyFSM spiky)
 {
     if (base.CheckTransitionToAttacking(spiky))
     {
         return;
     }
 }
Пример #3
0
 public virtual bool CheckTransitionToAttacking(SpikyFSM spiky)
 {
     if (spiky.attackCooldownTimer <= 0)
     {
         spiky.TransitionToState(spiky.AttackingState);
         return(true);
     }
     return(false);
 }
Пример #4
0
    public virtual bool CheckTransitionToDying(SpikyFSM spiky)
    {
        if (spiky.currentHealth <= 0)
        {
            spiky.TransitionToState(spiky.DyingState);
            return(true);
        }

        return(false);
    }
Пример #5
0
    public override void FixedUpdate(SpikyFSM spiky)
    {
        if (attackingTimer >= 0)
        {
            attackingTimer -= Time.deltaTime;
            return;
        }

        AttackAction(spiky);
        if (base.CheckTransitionToIdle(spiky))
        {
            return;
        }
    }
Пример #6
0
    private void AttackAction(SpikyFSM spiky)
    {
        if (spiky.spriteRenderer.isVisible)
        {
            Manager.audio.Play("Enemy Shoot");
        }
        Vector3[] bulletDirections = spiky.CalculateDirections();

        for (int i = 0; i < bulletDirections.Length; i++)
        {
            Vector3 position = spiky.bulletStartTransforms[i].position;
            Vector3 angle    = spiky.bulletStartTransforms[i].eulerAngles;
            spiky.SpawnBullet(position, angle, bulletDirections[i]);
        }

        spiky.attackCooldownTimer = spiky.startAttackCooldownTimer;
    }
Пример #7
0
    public override void FixedUpdate(SpikyFSM spiky)
    {
        if (base.CheckTransitionToDying(spiky))
        {
            return;
        }

        if (hitTimer >= 0)
        {
            hitTimer -= Time.deltaTime;
            return;
        }

        if (base.CheckTransitionToIdle(spiky))
        {
            return;
        }
    }
Пример #8
0
 public override void EnterState(SpikyFSM spiky)
 {
     PlayAnimation(spiky);
     IdleAction(spiky);
 }
Пример #9
0
 private void IdleAction(SpikyFSM spiky)
 {
     spiky.rb.velocity = Vector2.zero;
 }
Пример #10
0
 private void PlayAnimation(SpikyFSM spiky)
 {
     spiky.animator.Play("Idle");
 }
Пример #11
0
 public override void EnterState(SpikyFSM spiky)
 {
     Enemy.DieAction(spiky.gameObject);
 }
Пример #12
0
 private void PlayAnimation(SpikyFSM spiky)
 {
     spiky.animator.Play("Attacking");
 }
Пример #13
0
 private void BeingHitAction(SpikyFSM spiky)
 {
     spiky.rb.velocity = Vector2.zero;
 }
Пример #14
0
 private void PlayAnimation(SpikyFSM spiky)
 {
     spiky.animator.Play("BeingHit", -1, 0f);
 }
Пример #15
0
 private void Setup(SpikyFSM spiky)
 {
     hitTimer = Helper.GetAnimationDuration("BeingHit", spiky.animator);
 }
Пример #16
0
 private void Setup(SpikyFSM spiky)
 {
     attackingTimer   = spiky.bulletSpawnTimerSyncedWithAnimation;
     bulletDirections = new Vector2[5];
 }
Пример #17
0
 public virtual void FixedUpdate(SpikyFSM spiky)
 {
 }
Пример #18
0
 public override void EnterState(SpikyFSM spiky)
 {
     Setup(spiky);
     PlayAnimation(spiky);
 }
Пример #19
0
 public virtual bool CheckTransitionToIdle(SpikyFSM spiky)
 {
     spiky.TransitionToState(spiky.IdleState);
     return(true);
 }
Пример #20
0
 public abstract void EnterState(SpikyFSM spiky);