Example #1
0
    private void Update()
    {
        if (Input.GetMouseButtonDown(0) &&
            ObjectMover.hasPlaced &&
            !ObjectScript.roomIsHovered &&
            !isMouseOverObject &&
            !Tutorial.Instance.GetTutorialActive())
        {
            ClosePanel();

            if (tabs.Length > 0 && tabs[0].name == "Room Details")
            {
                detailsMenu.UnHighlight();
                CrewViewManager.Instance?.DisableCrewView();
                detailsMenu.selectedRoom = null;
                detailsMenu.ClearUI();
            }
        }

        if (isOpen && EventSystem.instance.eventActive)
        {
            ClosePanel();
        }

        if (!isOpen)
        {
            Tutorial.Instance.UnHighlightScreenLocation();
        }
    }
Example #2
0
    public IEnumerator Delete(bool removeStats = true, GameObject roomBeingPlaced = null)
    {
        if (isDeleting)
        {
            yield break;
        }
        isDeleting = true;

        yield return(new WaitForSeconds(0.1f));

        if (removeStats)
        {
            gameObject.GetComponent <RoomStats>().SubtractRoomStats();
            gameObject.GetComponent <RoomStats>().ReturnCrewOnRemove();

            if (!gameObject.GetComponent <RoomStats>().usedRoom)
            {
                EndingStats.instance.AddToStat(-1, EndingStatTypes.RoomsBought);
            }

            AudioManager.instance.PlaySFX("Sell");
        }

        Cursor.visible = true;
        clickAgain     = false;

        //buttons.SetActive(false);
        if (ObjectMover.hasPlaced == true)
        {
            SpotChecker.instance.RemoveSpots(gameObject, rotAdjust);
        }
        ObjectMover.hasPlaced = true;
        ObjectScript[] otherRooms = FindObjectsOfType <ObjectScript>();
        foreach (ObjectScript r in otherRooms)
        {
            r.TurnOnClickAgain();

            if (r.nextToRoom == true && CalledFromSpawn == false && gameObject != r.gameObject)
            {
                bool check = SpotChecker.instance.NextToRoomCall(r.gameObject, r.rotAdjust);
                if (check == false)
                {
                    SpotChecker.instance.RemoveSpots(r.gameObject, r.rotAdjust);
                    r.gameObject.GetComponent <RoomStats>().SubtractRoomStats();
                    Destroy(r.gameObject);
                }
            }
        }

        if (nextToRoom == true)
        {
            RoomHighlightSpotsOff();
        }

        if (needsSpecificLocation == true)
        {
            HighlightSpotsOff();
        }

        //Destroy(gameObject);
        roomDetailsMenu.ClearUI();
        RoomPanelToggle[] panels = FindObjectsOfType <RoomPanelToggle>();
        for (int i = 0; i < 1; i++) //closes room details if deleting placed room
        {
            panels[i].ClosePanel(0);
        }

        CrewViewManager.Instance.DisableCrewView();

        Tutorial.Instance.ConditionalContinueDelete();

        // destroy the room being placed otherwise destroy the selected room
        Destroy(roomBeingPlaced
            ? roomBeingPlaced
            : roomDetailsMenu.selectedRoom);
    }