Esempio n. 1
0
 private void DoIdle(TurtleStateMachine stateMachine)
 {
     stateMachine.enemy.conditions.isInvincible = false;
     stateMachine.enemy.conditions.isIdle       = true;
     stateMachine.SetIdleAnim(true);
     stateMachine.WaitToPatrol(2f);
 }
Esempio n. 2
0
 public IState DoState(TurtleStateMachine stateMachine)
 {
     if (!stateMachine.GetIsDieAnim())
     {
         DoDeathState(stateMachine);
     }
     return(this);
 }
Esempio n. 3
0
        private void DoDeathState(TurtleStateMachine stateMachine)
        {
            stateMachine.enemy.hpIndicator.UpdateHp();
            stateMachine.navAgent.velocity = Vector3.zero;
            stateMachine.enemy.SetNewDamageIndicator();
            stateMachine.enemy.ParticleDamaged();
            stateMachine.SetTriggerDieAnim();
            stateMachine.SetIsDieAnim(true);

            stateMachine.enemy.conditions.Reset();
        }
 public IState DoState(TurtleStateMachine stateMachine)
 {
     DoInvincible(stateMachine);
     if (!stateMachine.enemy.conditions.isInvincible)
     {
         return(stateMachine.patrolState);
     }
     else
     {
         return(this);
     }
 }
Esempio n. 5
0
 public IState DoState(TurtleStateMachine stateMachine)
 {
     DoIdle(stateMachine);
     if (stateMachine.enemy.conditions.isPatrol)
     {
         return(stateMachine.patrolState);
     }
     else
     {
         return(stateMachine.idleState);
     }
 }
Esempio n. 6
0
 public IState DoState(TurtleStateMachine stateMachine)
 {
     DoGetHit(stateMachine);
     if (stateMachine.enemy.conditions.isDead)
     {
         return(stateMachine.deathState);
     }
     else
     {
         return(stateMachine.invincibleState);
     }
 }
Esempio n. 7
0
        public IState DoState(TurtleStateMachine stateMachine)
        {
            DoPatrol(stateMachine);
            if (stateMachine.enemy.conditions.isHitten && !stateMachine.enemy.conditions.isInvincible)
            {
                return(stateMachine.getHitState);
            }
            else if (stateMachine.enemy.conditions.isDead)
            {
                return(stateMachine.deathState);
            }

            else
            {
                return(this);
            }
        }
 private void DoInvincible(TurtleStateMachine stateMachine)
 {
     stateMachine.enemy.conditions.isIdle   = false;
     stateMachine.enemy.conditions.isPatrol = false;
     stateMachine.navAgent.velocity         = Vector3.zero;
     stateMachine.navAgent.isStopped        = true;
     stateMachine.SetPatrolAnim(false);
     if (stateMachine.enemy.conditions.isHitten)
     {
         stateMachine.enemy.SetNewInvencibleDamageIndicator();
         stateMachine.enemy.ParticleDamaged();
         stateMachine.StopCoroutine("CdInvCorr");
         stateMachine.SetGetHitInvincibleAnim(true);
         stateMachine.RestartCdInvincible();
         stateMachine.enemy.conditions.isHitten = false;
     }
     stateMachine.StartCdInvincible(Random.Range(4f, 10f));
 }
Esempio n. 9
0
        private void DoGetHit(TurtleStateMachine stateMachine)
        {
            stateMachine.enemy.conditions.isIdle   = false;
            stateMachine.enemy.conditions.isPatrol = false;
            stateMachine.SetPatrolAnim(false);
            stateMachine.navAgent.velocity = Vector3.zero;
            stateMachine.enemy.ParticleDamaged();

            stateMachine.SetTriggerGetHitAnim();
            stateMachine.enemy.SetNewDamageIndicator();

            stateMachine.enemy.stats.CurrentHp -= stateMachine.enemy.cuantity;
            stateMachine.enemy.hpIndicator.UpdateHp();

            stateMachine.navAgent.speed               += 0.2f;
            stateMachine.enemy.conditions.isHitten     = false;
            stateMachine.enemy.conditions.isInvincible = true;
        }
Esempio n. 10
0
        private void DoPatrol(TurtleStateMachine stateMachine)
        {
            stateMachine.enemy.conditions.isIdle       = false;
            stateMachine.enemy.conditions.isPatrol     = true;
            stateMachine.enemy.conditions.isInvincible = false;
            stateMachine.navAgent.isStopped            = false;
            stateMachine.SetPatrolAnim(true);

            if (stateMachine.currentPoint == null)
            {
                stateMachine.currentPoint = stateMachine.points[0];
            }
            if (stateMachine.navAgent.destination != stateMachine.currentPoint.Point)
            {
                stateMachine.navAgent.SetDestination(stateMachine.currentPoint.Point);
            }

            if (Vector3.Distance(stateMachine.navAgent.transform.position, stateMachine.currentPoint.Point) <= stateMachine.navAgent.stoppingDistance)
            {
                stateMachine.currentPoint = stateMachine.currentPoint.nextPoint;
            }
        }