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; }
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; }
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(); } } }