Esempio n. 1
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            Physics.Raycast(ray, out hit);
            if (hit.collider != null)
            {
                if (hit.collider.transform.CompareTag("ContractorHQ"))
                {
                }
                else if (hit.collider.transform.CompareTag("BuildingWithIssue"))
                {
                    if (SelectedHQ)
                    {
                        // in tutorial set time back
                        if (issueManager.timerManager.bTutorial)
                        {
                            issueManager.timerManager.StartTime();
                        }
                        SelectedHQ.SpawnContractor(hit.collider.transform.position, null);
                        SelectedHQ.SetSelected(false);
                        SelectedHQ = null;
                    }
                    else
                    {
                        if (SelectedIssue)
                        {
                            SelectedIssue.SetSelected(false);
                        }

                        SetSelectedIssue(hit.collider.GetComponent <TileController>().m_Issue);
                    }
                }
                else if (hit.collider.transform.CompareTag("Issue"))
                {
                    IssueController issueClicked   = hit.collider.GetComponent <IssueController>();
                    Vector3         moveToLocation = issueClicked.myTile.transform.position;

                    NavMeshHit myNavHit;
                    if (NavMesh.SamplePosition(moveToLocation, out myNavHit, 100.0f, -1))
                    {
                        moveToLocation = myNavHit.position;
                    }
                    else
                    {
                        Debug.Log("Contractor did not find nav mesh point near destination");
                    }

                    if (SelectedContractor && SelectedContractor.bIsReturning)
                    {
                        SelectedContractor.SetGoal(issueClicked, moveToLocation);
                        SelectedContractor.MyContractorUI.GetComponentInChildren <Image>().color = Color.white;
                        SelectedContractor = null;
                    }
                    if (SelectedHQ)
                    {
                        // in tutorial set time back
                        if (issueManager.timerManager.bTutorial)
                        {
                            issueManager.timerManager.StartTime();
                        }
                        SelectedHQ.SpawnContractor(moveToLocation, issueClicked);
                        SelectedHQ.SetSelected(false);
                        iconManager.SetAllIconsDeselected();
                        SelectedHQ = null;
                    }
                    else
                    {
                        if (SelectedIssue)
                        {
                            SelectedIssue.SetSelected(false);
                        }
                        SetSelectedIssue(issueClicked);
                    }
                }
                else
                {
                    issueManager.CloseAllIssues();
                    if (SelectedHQ)
                    {
                        SelectedHQ.SetSelected(false);
                        SelectedHQ = null;
                    }
                    if (SelectedContractor)
                    {
                        SelectedContractor.MyContractorUI.GetComponentInChildren <Image>().color = Color.white;
                        SelectedContractor = null;
                    }
                    if (SelectedIssue)
                    {
                        SelectedIssue.SetSelected(false);
                        SelectedIssue = null;
                    }
                }
            }
            else if (!EventSystem.current.currentSelectedGameObject)
            {
                issueManager.CloseAllIssues();
                if (SelectedHQ)
                {
                    SelectedHQ.SetSelected(false);
                    SelectedHQ = null;
                }
                if (SelectedContractor)
                {
                    SelectedContractor.MyContractorUI.GetComponentInChildren <Image>().color = Color.white;
                    SelectedContractor = null;
                }
                if (SelectedIssue)
                {
                    SelectedIssue.SetSelected(false);
                    SelectedIssue = null;
                }
            }
        }
    }
Esempio n. 2
0
 void SetSelectedIssue(IssueController issue)
 {
     SelectedIssue = issue;
     issue.SetSelected(true);
 }