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.")); } } }