public void Placement() { if (GameManager.instance.currentGameState != InGameStates.ShipBuilding) { return; } //Checks to see if we have enough credits or energy to place the room if ((FindObjectOfType <ShipStats>().Credits >= gameObject.GetComponent <RoomStats>().price[gameObject.GetComponent <RoomStats>().GetRoomLevel() - 1] && FindObjectOfType <ShipStats>().Energy.z >= gameObject.GetComponent <RoomStats>().minPower[gameObject.GetComponent <RoomStats>().GetRoomLevel() - 1]) || os.isEdited == true) { if (os.needsSpecificLocation == false) //Check spots normally { SpotChecker.instance.FillSpots(gameObject, os.rotAdjust); } else //check for specific spots as required by parent room { SpotChecker.instance.SpecificSpotCheck(gameObject, os.rotAdjust); } if (SpotChecker.cannotPlace == false) //Once spots are checked if cannotPlace = false/no room is placed there place room { AudioManager.instance.PlaySFX(Placements[Random.Range(0, Placements.Length)]); if (os.isEdited == false) { gameObject.GetComponent <RoomStats>().AddRoomStats(); } else { os.isEdited = false; } //makes sure the room is on the lower layer so that the new rooms can be on top without flickering foreach (SpriteRenderer spriteRenderer in gameObject.transform.GetChild(0).GetComponentsInChildren <SpriteRenderer>()) { spriteRenderer.sortingOrder -= 3; } //if (os.objectNum == 1) //if hydroponics adjust other sprites sorting order //{ // for (int i = 0; i < gameObject.transform.GetChild(0).gameObject.transform.childCount; i++) // { // gameObject.transform.GetChild(0).gameObject.transform.GetChild(1).gameObject.transform.GetChild(i).gameObject.GetComponent<SpriteRenderer>().sortingOrder -= 3; // } //} hasPlaced = true; if (os.needsSpecificLocation == true) { os.HighlightSpotsOff(); } if (os.nextToRoom == true) { os.RoomHighlightSpotsOff(); } Cursor.visible = true; //HOVER UI does not happen when mouse is hidden //StartCoroutine(os.WaitToClickRoom()); foreach (SpriteRenderer spriteRenderer in gameObject.transform.GetChild(0).GetComponentsInChildren <SpriteRenderer>()) { spriteRenderer.color = ObjectScript.c; gameObject.GetComponent <RoomStats>().levelIconObject.GetComponent <Image>().color = ObjectScript.c; } enabled = false; StartCoroutine(WaitToCallCheck()); } else //If something is placed allow player to keep moving room { hasPlaced = false; TurnOnBeingDragged(); } } else //If not enough credits or energy allow player to keep moving room { TurnOnBeingDragged(); } }