Пример #1
0
    public void switchToState(eUnitState newState, int targetID = Utilities.INVALID_ID, Vector3 position = new Vector3())
    {
        m_targetID     = targetID;
        m_currentState = newState;

        switch (newState)
        {
        case eUnitState.AwaitingDecision:
        case eUnitState.AttackingEnemy:
            m_tankMovement.stop();
            break;

        case eUnitState.MovingToNewPosition:
            m_tankMovement.moveTo(position);
            break;

        case eUnitState.SetDestination:
        {
            m_currentState = eUnitState.MovingToNewPosition;
            m_tankMovement.moveTo(position);
        }
        break;

        case eUnitState.SetAttackDestination:
        {
            m_currentState = eUnitState.AttackMovingToNewPosition;
            m_tankMovement.moveTo(position);
        }
        break;

        case eUnitState.SetDestinationToSafePosition:
        {
            m_tankMovement.moveTo(Pathfinder.Instance.getSafePosition(transform.position, (int)m_unit.getFactionName(), m_unit.getScaredValue()));
            m_currentState = eUnitState.MovingToNewPosition;
        }
        break;
        }
    }