private void ChangeState(S_JohnState currentState, S_JohnState nextState)
{
switch (currentState)
{
case S_JohnState.Idle:
switch (nextState)
{
case S_JohnState.MoveTowards:
break;
}
break;
case S_JohnState.MoveTowards:
switch (nextState)
{
case S_JohnState.Idle:
break;
case S_JohnState.Patrol:
break;
case S_JohnState.BullyAction:
break;
}
break;
case S_JohnState.BullyAction:
switch (nextState)
{
case S_JohnState.RunAway:
break;
case S_JohnState.BullyAction:
Collider[] l_nearActors;
l_nearActors = Physics.OverlapSphere(this.transform.position, m_proximityRadius);
foreach (Collider nearActor in l_nearActors)
{
if (nearActor.gameObject.tag == "Actor")
{
Actor l_actor = nearActor.gameObject.GetComponent <Actor>();
l_actor.ChangeState(l_actor.m_currentState, S_ActorState.BullyActionGroupal);
if (m_hp == 1)
{
//hacer que el grupo se active y le persiga
foreach (Actor actor in L_actors)
{
actor.ChangeState(actor.m_currentState, S_ActorState.MoveTowards);
m_newDestination = m_waitingPoint.position;
}
}
}
}
break;
}
break;
}
}