public void SelectTitan(TitanView titan) { if (selectMarker != null) { selectMarker.SelectTitan(titan); } }
public void UpdateTitanStatus() { if (selectedTitan == null || !selectedTitan.Titan.IsAlive) { selectedTitan = null; statusText.text = ""; modulesPanel.SetActive(false); skillPanel.SetActive(false); HideContextMenu(); return; } string status = "Energy: " + selectedTitan.Titan.ResourceUnits; statusText.text = status; // enemy if (selectedTitan.Titan.Faction.ID == 1 || !selectedTitan.Titan.IsAlive) { modulesPanel.SetActive(true); skillPanel.SetActive(false); HideContextMenu(); UpdateModules(); return; } modulesPanel.SetActive(true); UpdateModules(); // var maxRocket = selectedTitan.GetComponentMaxRocketsCount(); // skillPanel.SetActive(maxRocket > 0); // if (maxRocket > 0) { // OnFireRocketButton.gameObject.SetActive(!RocketAimView.IsActive()); // OnCancelRocketButton.gameObject.SetActive(RocketAimView.IsActive()); // var rocketCount = selectedTitan.GetComponentRocketsCount(); // RocketsCount.text = rocketCount + "/" + maxRocket; // OnFireRocketButton.interactable = rocketCount > 0; // } }
public void AddMarker(TitanView titan, PlanetView planet) { var marker = Instantiate(markerControllerPrefab, transform); marker.Init(titan, planet); markers.Add(marker); }
private void Update() { if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject()) { return; } if (Input.GetMouseButtonDown(0)) { prevMousePosition = Input.mousePosition; } const int minAccuracyPixels = 10; if (Input.GetMouseButtonUp(0) && (prevMousePosition - Input.mousePosition).sqrMagnitude < minAccuracyPixels * minAccuracyPixels) { var ray = mainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; TitanView titan = null; if (Physics.Raycast(ray, out hit, 20f)) { titan = hit.collider.GetComponent <TitanView>(); if (titan != null && (selectedTitan != titan)) { SelectTitan(titan); } var planet = hit.collider.GetComponent <PlanetView>(); if (planet != null && selectedTitan != null) { var point = hit.point; ResourcePoint resourcePoint; selectedTitan.Titan.TryRemoveLastMoveTask(); if (planet.Planet.FindNearestResourcePoint(point, out resourcePoint)) { selectedTitan.Titan.AddResourceTask(resourcePoint); } else { selectedTitan.Titan.AddMoveTask(point); } } } } // if (Input.GetMouseButtonUp(1) && SelectedTitan != null && SelectedTitan.IsAlive && !RocketAimView.IsActive()) { // var isCommandsQueue = false; // if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { // isCommandsQueue = true; // } // if (!isCommandsQueue) { // SelectedTitan.ClearTasks(); // } // Vector3 clickPosition; // if (planet.RaycastSurfacePoint(mainCamera.ScreenPointToRay(Input.mousePosition), out clickPosition)) { // ResourcePointViewOld resourcePoint; // if (planet.FindResourcePointClick(clickPosition, out resourcePoint)) { // SelectedTitan.AddResourceTask(resourcePoint); // } else { // SelectedTitan.AddMoveTask(clickPosition); // } // } // } }
private void SelectTitan(TitanView titanView) { // Enemy titan if (titanView.Titan.Faction != faction) { return; } if (selectedTitan != null) { selectedTitan.UpdateTaskList -= UpdateTaskList; selectedTitan.UpdateResources -= UpdateResources; } selectedTitan = null; if (titanView == null || !titanView.Titan.IsAlive) { gameUI.SelectTitan(); moveMarkers.HideSelection(); // RocketAimView.Hide(); return; } selectedTitan = titanView; selectedTitan.UpdateTaskList += UpdateTaskList; selectedTitan.UpdateResources += UpdateResources; selectedTitan.UpdateModules += UpdateModules; moveMarkers.SelectTitan(titanView); //RocketAimView.Hide(); gameUI.SelectTitan(selectedTitan); }
public void RemoveMarker(TitanView titan) { for (int i = 0; i < markers.Count; i++) { if (markers[i].Titan == null || markers[i].Titan == titan) { markers[i].Destroy(); } } }
public void Init(TitanView titan, PlanetView planet) { Titan = titan; controlledPlanet = planet; var image = GetComponentInChildren <Image>(); if (image != null) { image.color = titan.Titan.Faction.ID == 0 ? Color.blue : Color.red; } }
public void SelectTitan(TitanView titan = null) { // if (selectedTitan != null) { // selectedTitan.UnSubscribe(UpdateTitanStatus); // } selectedTitan = titan; // if (selectedTitan != null) { // selectedTitan.Subscribe(UpdateTitanStatus); // } UpdateTitanStatus(); }
public void SelectTitan(TitanView titan) { timer = 0; gameObject.SetActive(true); needShowWeaponRange = true; // titan.Titan.Laser.IsActive; fireRadius = 3; //titan.Titan.Laser.Radius; transform.parent = titan.transform; transform.localRotation = Quaternion.identity; transform.localPosition = Vector3.zero; fireRing.gameObject.SetActive(needShowWeaponRange); UpdateMarker(0); }
public void Destroy() { Titan = null; Destroy(gameObject, destroyTime); scaleAnimator.Show(false); }
public void OnRemoveTitan(TitanView titanView) { gameUI.RemoveMarker(titanView); }
public void OnAddTitan(TitanView titanView, PlanetView planetView) { gameUI.AddMarker(titanView, planetView); }