void Start()
    {
        audio = GetComponent<AudioScript>();

        // initialize start characters here
        currentDayNum = 1;
        nextDeathIn = 5;
        // TODO: replace with Constructor if Journal is no gameobject
        journal = FindObjectOfType<Journal>();
        journal.gameObject.SetActive(false);
        FindObjectOfType<InterfaceController>().HideRoomStats();

        List<string> playerNames = loadPlayerNames();

        selectedRoom = GameObject.Find("Start (2,3)").GetComponent<Room>();
        List<int> usedIndizes = new List<int>();

        for (int i = 0; i < 6; i++)
        {
            int randomInt = UnityEngine.Random.Range(0, playerNames.Count);
            Character testCharacter = Instantiate(character_prefab);
            testCharacter.CharName = playerNames[randomInt];
            playerNames.RemoveAt(randomInt);
            selectedRoom.Characters.Add(testCharacter);
            do
            {
                randomInt = UnityEngine.Random.Range(0, playerHeads.Length);
            } while (usedIndizes.Contains(randomInt));

            usedIndizes.Add(randomInt);
            testCharacter.Portrait = playerHeads[randomInt];
            testCharacter.Face = playerFaces[randomInt];
            characters.Add(testCharacter);
        }

        selectedRoom.drawPeople();

        foreach (Room i in FindObjectsOfType<Room>())
        {
            i.BlackSmog.SetActive(true);
            i.gameObject.SetActive(false);
        }

        selectedRoom.SelectBubble.SetActive(true);
        selectedRoom.discoverNeighbors();

        activeRooms.Add(selectedRoom);

        FindObjectOfType<InterfaceController>().SetRoomMembers(selectedRoom.Characters);
    }
    public void OnMovementToRoomSuccess(Room destination)
    {
        if (destination.name.Equals("Finish"))
        {
            EndingController.playerWon = true;
            SceneManager.LoadScene("EndScene");
        }

        roomsToActivate.Add(destination);

        destination.discoverNeighbors();

        if (destination.Reward != null && destination.Reward.Length > 0)
        {
            // TODO: remove [0] with proper selection mechanism if multiple rewards are possible
            Reward reward = destination.Reward[0];
            if (reward.IsActive && reward.getType() == Reward.Type.human)
            {
                List<string> playerNames = loadPlayerNames();
                string playerName;
                Sprite playerHead;
                Sprite playerFace;
                do
                {
                    playerName = playerNames[UnityEngine.Random.Range(0, playerNames.Count)];

                } while (!playerWithNameDoesNotExist(playerName));
                do
                {
                    int randomInt = UnityEngine.Random.Range(0, playerHeads.Length);
                    playerHead = playerHeads[randomInt];
                    playerFace = playerFaces[randomInt];

                } while (!playerWithHeadDoesNotExist(playerHead));
                Character newCharacter = Instantiate(character_prefab);
                audio.playNewGuy();
                newCharacter.CharName = playerName;
                newCharacter.Portrait = playerHead;
                newCharacter.Face = playerFace;
                characters.Add(newCharacter);
                destination.Characters.Add(newCharacter);
                destination.drawPeople();
                reward.IsActive = false;
                journal.addStory(new Story(currentDayNum, "In the corner of the room you find a lost soul. " + playerName + " joins your party of gourmets. He looks quite tasty."));
            }
        }
    }