private void DoIdle(TurtleStateMachine stateMachine) { stateMachine.enemy.conditions.isInvincible = false; stateMachine.enemy.conditions.isIdle = true; stateMachine.SetIdleAnim(true); stateMachine.WaitToPatrol(2f); }
public IState DoState(TurtleStateMachine stateMachine) { if (!stateMachine.GetIsDieAnim()) { DoDeathState(stateMachine); } return(this); }
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); } }
public IState DoState(TurtleStateMachine stateMachine) { DoIdle(stateMachine); if (stateMachine.enemy.conditions.isPatrol) { return(stateMachine.patrolState); } else { return(stateMachine.idleState); } }
public IState DoState(TurtleStateMachine stateMachine) { DoGetHit(stateMachine); if (stateMachine.enemy.conditions.isDead) { return(stateMachine.deathState); } else { return(stateMachine.invincibleState); } }
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)); }
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; }
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; } }