Beispiel #1
0
    public void ExecuteRoute()
    {
        SoundManager.Instance.Play("ExecuteRoute");
        SwarmManager.Instance.m_CurrentRoute = m_CurrentRoute;

        m_CurrentRoute.Execute();
        Tribe.Instance.Travel(m_CurrentRoute);
        m_CurrentHub = null;

        m_ConsumptionTimer.Reset(m_TravelFoodConsumptionTime);
        m_SelectedRoutePresentation = null;
    }
Beispiel #2
0
    private void implApplyPresentation(RoutePresentation newPresentation)
    {
        if (m_SelectedRoutePresentation != null && m_SelectedRoutePresentation == newPresentation)
        {
            m_CurrentRoute = m_SelectedRoutePresentation.m_Route;
            ExecuteRoute();
            m_SelectedRoutePresentation = null;
            return;
        }

        SoundManager.Instance.Play("SelectDirection");
        m_SelectedRoutePresentation = newPresentation;
    }
Beispiel #3
0
    private void Update()
    {
        if (IsInHub())
        {
            if (Input.GetKeyDown(KeyCode.Space))
            {
                m_SelectedRoutePresentation = null;
            }

            if (Input.GetKeyDown(KeyCode.W))
            {
                var newPresentation = m_CurrentHub.GetRoutePresentation(RoutePresentation.KeyDirection.W);
                implApplyPresentation(newPresentation);
            }
            if (Input.GetKeyDown(KeyCode.S))
            {
                var newPresentation = m_CurrentHub.GetRoutePresentation(RoutePresentation.KeyDirection.S);
                implApplyPresentation(newPresentation);
            }
            if (Input.GetKeyDown(KeyCode.A))
            {
                var newPresentation = m_CurrentHub.GetRoutePresentation(RoutePresentation.KeyDirection.A);
                implApplyPresentation(newPresentation);
            }
            if (Input.GetKeyDown(KeyCode.D))
            {
                var newPresentation = m_CurrentHub.GetRoutePresentation(RoutePresentation.KeyDirection.D);
                implApplyPresentation(newPresentation);
            }

            if (m_CurrentHub != null)
            {
                m_HubLook = m_SelectedRoutePresentation != null ? m_SelectedRoutePresentation.transform.position : m_CurrentHub.transform.position;
            }
        }
        else
        {
            if (Input.GetKey(KeyCode.W))
            {
                SwarmManager.Instance.SpeedScale += m_SpeedScaleStep * Time.deltaTime;
            }
            if (Input.GetKey(KeyCode.S))
            {
                SwarmManager.Instance.SpeedScale -= m_SpeedScaleStep * Time.deltaTime;
            }
            if (Input.GetKeyDown(KeyCode.A))
            {
                SwarmManager.Instance.ElementsInRow--;
            }
            if (Input.GetKeyDown(KeyCode.D))
            {
                SwarmManager.Instance.ElementsInRow++;
            }

            m_ConsumptionTimer.AddTime(Time.deltaTime);
            if (m_ConsumptionTimer.Expired)
            {
                m_ConsumptionTimer.Reset(m_ConsumptionTimer.TimePassed - m_TravelFoodConsumptionTime, m_TravelFoodConsumptionTime);
                ConsumeFood();
            }
        }
    }