public void CloneParameters(SpeechBubbleManager speechBubbleManager) { speechBubbleManager.Candidate = Candidate; speechBubbleManager.Speaker = Speaker; speechBubbleManager.Line = Line; speechBubbleManager.TalkingDelay = TalkingDelay; }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { if (_speechStatus == 2) { yield return(GetNotTimeTravelDialogue(npc, main)); } if (_speechStatus == 3) { yield return(GetFinalDialogue(npc)); } if (_speechStatus == 1 && GetComponentInParent <NpcManager>().IsSaved()) { yield return(GetSavedDialogue(npc)); yield break; } switch (_speechStatus) { case 0: yield return(GetFirstDialogue(npc, main)); break; case 1: yield return(GetSecondDialogue(npc)); break; } }
private IEnumerator GetNotTimeTravelDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(main.Say("What do you think about this magical lantern?", 4f)); yield return(npc.Say("I imagine it could be very useful. Although...", 4f)); yield return(npc.Say("It's unfortunate it is not a time travel magical lantern.", 5f)); yield return(npc.Say("I heard those are good.", 3f)); yield return(main.Say("But this thing has time travel written all over it!", 4f)); yield return(npc.Say("You seem to be very convinced about this.", 4f)); yield return(npc.Say("I trust you will give your best to find out the truth.", 5f)); yield return(npc.Say("Do some research, make some experiments.", 4f)); yield return(npc.Say("In the end you will definitely reach the truth.", 4f)); yield return(new WaitForSeconds(3f)); yield return(npc.Say("(which tells us this is not time travel)", 4f)); _speechStatus = 3; }
private IEnumerator GetFirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Well, well, well.", 3f)); yield return(main.Say("What?", 2f)); yield return(npc.Say("What what?", 2f)); yield return(npc.Say("You did enter my cell, so you must want something.", 4f)); if (GetComponentInParent <NpcManager>().IsSaved()) { yield return(main.Say("I just saved you.", 2f)); yield return(GetSavedDialogue(npc)); _speechStatus = 2; } else { yield return(main.Say("Hm. Do you not want me to save you?", 4f)); yield return(npc.Say("Sure.", 2f)); yield return(npc.Say("The question is... can you?", 4f)); yield return(main.Say("I'll se what I can do.", 3f)); _speechStatus = 1; } }
void Awake() { if (Instance == null) { Instance = this; if (speechBubblePrefab == null) { Debug.LogError("Unable to awaken speech bubble manager: No speech bubble prefab is set."); } if (p1Ghost == null) { Debug.LogError("Unable to awaken speech bubble manager: Player 1 ghost isn't set."); } if (p2Ghost == null) { Debug.LogError("Unable to awaken speech bubble manager: Player 2 ghost isn't set."); } p1GhostSpeechBubble = Instantiate <GameObject>(speechBubblePrefab); p1GhostSpeechBubble.transform.SetParent(canvas, true); DisablePlayer1Bubble(); p2GhostSpeechBubble = Instantiate <GameObject>(speechBubblePrefab); p2GhostSpeechBubble.transform.SetParent(canvas, true); DisablePlayer2Bubble(); } else { Destroy(gameObject); } }
private IEnumerator GetFirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Well, well, well. You found a hidden passage, that you did.", 6f)); yield return(npc.Say("And in it, you found old <color=#FFF02D>Ailouros</color>.", 4f)); yield return(main.Say("Can we talk about this room appearing out of nowhere for a minute?", 6f)); yield return(npc.Say("No.", 2f)); yield return(npc.Say("However...", 1f)); yield return(main.Say("*cough*", 1.5f, 2f)); yield return(npc.Say("Oh-oh, sorry. Dozed off for a minute there.", 3f)); yield return(npc.Say("You found this little here hidden passage, yes, sir.", 5f)); yield return(npc.Say("But there are more, oh yes. I suggest looking for them in every corner.", 6f)); yield return(npc.Say("Sometimes you have to be quick to find them, yes you will.", 5f)); yield return(main.Say("Will do, thanks", 3f)); _speechStatus = 1; }
void Awake() { if (Instance == null) { Instance = this; if (speechBubblePrefab == null) { Debug.LogError("Unable to awaken speech bubble manager: No speech bubble prefab is set."); } if (p1Ghost == null) { Debug.LogError("Unable to awaken speech bubble manager: Player 1 ghost isn't set."); } if (p2Ghost == null) { Debug.LogError("Unable to awaken speech bubble manager: Player 2 ghost isn't set."); } p1GhostSpeechBubble = Instantiate<GameObject>(speechBubblePrefab); p1GhostSpeechBubble.transform.SetParent(canvas, true); DisablePlayer1Bubble(); p2GhostSpeechBubble = Instantiate<GameObject>(speechBubblePrefab); p2GhostSpeechBubble.transform.SetParent(canvas, true); DisablePlayer2Bubble(); } else { Destroy (gameObject); } }
private IEnumerator GetSecondDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("What?", 2f, 0, 0, VoiceTone.Question)); yield return(main.Say("No more hints?", 2f, 0, 0, VoiceTone.Helpless)); yield return(npc.Say("Maybe later.", 2f)); }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { if (!_hasPresented) { yield return(GetFirstDialogue(npc, main)); } yield return(npc.Say("Welcome back to the outside, friend.", 4f)); }
private IEnumerator GetSavedDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Oh, thank you! You have saved me.", 4f)); yield return(npc.Say("I told you there would be a way. And you found it!", 4f)); yield return(GetTip(npc, main)); _speechStatus = 2; }
private IEnumerator GetSecondDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { if (GetComponentInParent <NpcManager>().IsSaved()) { yield return(GetSavedDialogue(npc, main)); yield break; } yield return(npc.Say("Remember that sometimes the right way is not in the place you expect.", 5f)); }
public PlayerBase(Vector2 location, WorldBase world) : base(location, world) { inventory = new Inventory.PlayerInventory(this); speechManager = new SpeechBubbleManager(this); drawUseIndicator = false; detectionLevel = 1; detectionRadiousModifier = 1; keyedItems = new Item[6]; cards = new Card[2]; warmth = 100; }
private IEnumerator GetSavedDialogue(SpeechBubbleManager npc) { yield return(npc.Say("Color me surprised!", 2f)); yield return(npc.Say("You actually did save me.", 3f)); yield return(npc.Say("You should be proud of yourself.", 3f)); yield return(npc.Say("...But not too much.", 3f)); _speechStatus = 2; }
private IEnumerator FirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Hello! You have found <color=#FFF02D>Lancelot</color>, the musician.", 5f)); yield return(main.Say("What instrument do you play?", 3f)); yield return(npc.Say("The harp.", 2f)); yield return(npc.Say("Unfortunately, I can't play while imprisoned.", 4f)); _speechState = 1; }
private void Awake() { if (instance != null && instance != this) { Destroy(this.gameObject); return; } else { instance = this; } speechCanvas = GameObject.Find("SpeechBubbleCanvas"); }
private void Awake() { instance = this; foreach (ColorData c in colors) { colorList.Add(c.colorName, c.color); } foreach (KeyData k in keys) { keyList.Add(k.keyName, k); } }
IEnumerator SP2_HouseFirstSpeak(GameObject house) { #region ShowmanAskHouse string[] showmanAsk = { ConversationManager.Instance.P2_ShowmanQuestion.ShowmanAsk }; //Se cambian las palabras claves de la pregunta inicial a la casa y se guarda el diálogo resultante en la array de strings "showmanAsk" yield return(StartCoroutine(ConversationManager.Instance.ReplaceDialogueKeywords(showmanAsk))); showmanAsk = ConversationManager.Instance.NextCheckedText; TextBoxCanvas.GetComponentInChildren <Text>().text = ""; NpcToFirstPlane(Showman.GetComponent <NpcController>().Identificator, false); StartCoroutine(Interlocutor1.GetComponent <NpcController>().TalkDialogue(showmanAsk)); yield return(StartCoroutine(WaitingInput())); #endregion string[] houseResponse = { ConversationManager.Instance.P2_ShowmanQuestion.HouseReponse.HouseResponse }; for (int i = 0; i < houseResponse.Length; i++) { TalkingDialogue = true; GameObject speechBubble = Instantiate(ComicDialogue) as GameObject; speechBubble.AddComponent <SpeechBubbleManager>(); speechBubble.transform.SetParent(GameObject.Find("Canvas").transform); SpeechBubbleManager speechBubble2 = new SpeechBubbleManager(house, houseResponse[i]); speechBubble2.CloneParameters(speechBubble.GetComponent <SpeechBubbleManager>()); speechBubble.GetComponent <SpeechBubbleManager>().Initialize(); if (i == houseResponse.Length - 1) { yield return(StartCoroutine(WaitingLastBubble(speechBubble))); } yield return(null); } TalkingDialogue = false; string[] showmanPresentCandidates = ConversationManager.Instance.P3_ShowmanPresentCandidates; yield return(StartCoroutine(Interlocutor1.GetComponent <NpcController>().TalkDialogue(showmanPresentCandidates))); StartCoroutine(SP3_CandidatesPresentation()); }
private IEnumerator SavedDialogue(SpeechBubbleManager npc) { yield return(npc.Say("Thank you very much for saving me.", 3f)); yield return(npc.Say("My name is <color=#FFF02D>Elbert</color>.", 3f)); yield return(npc.Say("I'll give you a hint.", 2f)); yield return(npc.Say("There are some things you or your clone can do alone.", 5f)); yield return(npc.Say("But sometimes, it is best to join forces.", 4f)); yield return(npc.Say("Good luck.", 2f)); }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { switch (_speechStatus) { case 0: yield return(GetFirstDialogue(npc, main)); break; case 1: yield return(GetSecondDialogue(npc, main)); break; } }
private IEnumerator FinalDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(main.Say("Where were we on the \"Is it time travel?\" conversation?", 4f)); yield return(npc.Say("You said it was time travel. I answered that it isn't.", 6f)); yield return(main.Say("Hm.", 1f)); yield return(npc.Say("I wouldn't worry about it. I am thankful you saved me.", 5f)); yield return(npc.Say("Does it really matter if it was time travel or not?", 5f)); yield return(main.Say("Maybe you're right.", 3f)); _speechState = 3; }
private IEnumerator GetTip(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Here is a little tip for you.", 3f)); yield return(npc.Say("Up above, near the exit, there is a door that is very hard to open.", 5f)); yield return(npc.Say("...Very hard for whoever does not have your lantern.", 4f)); yield return(npc.Say("Sometimes it seems the hard way is the way to solve a riddle.", 5f)); yield return(npc.Say("Always remember that your power can give you a much easier alternative.", 5f)); yield return(npc.Say("You just need to be creative!", 3f)); yield return(main.Say("Thank you for the tip, I'll keep it in mind.", 4f)); }
private IEnumerator GetFirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Welcome!", 1f)); yield return(npc.Say("Escaping from this dungeon is not easy.", 4f)); yield return(npc.Say("It's already too much dealing with the fact of being kept here.", 5f)); yield return(npc.Say("And on top of that, you need to keep track of a bunch of stuff, too!", 5f)); yield return(npc.Say("But fear not. I am here to help.", 3f)); yield return(npc.Say("Bringing information about your escape, directly to your cell doorstep!", 5f)); yield return(main.Say("Hm.", 1f)); yield return(main.Say("Ok, I guess?", 1f, 0, 0, VoiceTone.Question)); }
private IEnumerator GetNotTimeTravelDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("You look like someone who thinks that's a time traveler lantern.", 5f)); yield return(main.Say("I stand by it!", 2f)); yield return(npc.Say("It obviously has nothing to do with time travel!", 4f)); yield return(npc.Say("Really, I am tempted to just un-save myself.", 4f)); yield return(main.Say("I can just go back in time and stop me from saving you.", 4f)); yield return(main.Say("...You know, using this magical time travel lantern.", 4f)); yield return(npc.Say("*scoff*", 1f, 0, 0, VoiceTone.Angry)); _speechStatus = 3; }
private IEnumerator SavedDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Listen. Getting out of here won't be easy.", 4f)); yield return(npc.Say("Make the best of your magical lantern.", 3f)); yield return(main.Say("About that. Is it me or this is totally time travel?", 3f)); yield return(npc.Say("What?", 1f)); yield return(main.Say("You know, this lantern thing. Time travelling stuff.", 4f)); yield return(npc.Say("Pretty sure it has nothing to do with that.", 3f)); yield return(main.Say("Hm.", 1f)); _speechState = 2; }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { if (!_hasPresented) { _hasPresented = true; yield return(GetFirstDialogue(npc, main)); } IEnumerable <NpcManager> managers = GlobalInstanceManager.GetGameManager() .GetComponentsInChildren <NpcManager>() .Where(manager => manager.needToBeSaved); IEnumerable <NpcManager> npcManagers = managers.ToList(); int total = npcManagers.Count(); int saved = npcManagers.Count(manager => manager.IsSaved()); yield return(npc.Say( $"You have saved <color=#FFF02D>{saved}</color> out of <color=#FFF02D>{total}</color> prisoners.", 5f)); if (saved == 0) { yield return(npc.Say("Better get started on that, what do you think?", 4f)); } if (saved == total) { yield return(npc.Say("Good job on saving everyone!", 3f, 0, 0, VoiceTone.Angry)); } IEnumerable <HiddenPassageManager> passages = GlobalInstanceManager.GetGameManager() .GetComponentsInChildren <HiddenPassageManager>(); const int totalPassages = 7; int foundPassages = totalPassages - passages.Count(); yield return(npc.Say( $"You have found <color=#FFF02D>{foundPassages}</color> out of <color=#FFF02D>{totalPassages}</color> hidden passages.", 5f)); if (totalPassages == foundPassages) { yield return(npc.Say("Good job on finding every hidden passage!", 3f)); } yield return(npc.Say("See you next time!", 2f)); }
private IEnumerator GetFirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { yield return(npc.Say("Oh, hello!", 2f)); yield return(npc.Say("My name is <color=#FFF02D>Valentine</color>.", 4f)); yield return(npc.Say("I see you have a nice power that allows you to go as you please.", 5f)); yield return(npc.Say("Unfortunately, I am stuck here.", 4f)); yield return(main.Say("I see. That doesn't seem to bother you much, though?", 5f)); yield return(npc.Say("Oh, you're right.", 3f)); yield return(npc.Say("I know everyone else here thinks I cannot be saved.", 4f)); yield return(npc.Say("After all, there seems to be no way to bring a box here.", 5f)); if (GetComponentInParent <NpcManager>().IsSaved()) { yield return(npc.Say("But you still found a way!", 3f)); yield return(npc.Say("Thank you so much.", 2f)); yield return(GetTip(npc, main)); _speechStatus = 2; } else { yield return(npc.Say("However, I know there must be a way.", 3f)); yield return(npc.Say("It was just not found yet. But...", 3f)); yield return(npc.Say("I trust it will be.", 3f)); yield return(npc.Say("I wouldn't be surprised if it will be you who saves me.", 4f)); yield return(npc.Say("Remember that sometimes the right way is not in the place you expect.", 5f)); _speechStatus = 1; } }
private void Awake() { //Laziness, replaces old instances because it is not meant to be singleton, it is 1 static per level, not 1 static per entire game if (instance != null) { Destroy(instance); } instance = this; Transform playerCanvas = GameObject.Find("Player Canvas").transform; speechBubbleRef = Instantiate(speechBubblePrefab, playerCanvas); //Get in children, so that you can just keep reference of the parent, background image of speech bubble, dont need to assign 2 things. speechBubbleText = speechBubbleRef.GetComponentInChildren <Text>(); speechBubbleAnim = speechBubbleRef.GetComponentInChildren <Animator>(); speechBubbleRef.SetActive(false); speechBubbleText.text = speechBubbleWords; }
IEnumerator SP3_CandidatePresentationSpeak(string[] dialogue, Person candidate) { for (int i = 0; i < dialogue.Length; i++) { TalkingDialogue = true; GameObject speechBubble = Instantiate(ComicDialogue) as GameObject; speechBubble.AddComponent <SpeechBubbleManager>(); speechBubble.transform.SetParent(GameObject.Find("Canvas").transform); SpeechBubbleManager speechBubble2 = new SpeechBubbleManager(candidate, dialogue[i]); if (HousesOnStage[0].GetComponent <HousePersonality>().HouseType == candidate.HouseType) { speechBubble.gameObject.GetComponent <SpeechBubbleControl>().Protocol = HousesOnStage[0].GetComponent <HousePersonality>().Actitude; speechBubble2.Line = ConversationManager.Instance.P3_BestCandidatePresentation; } if (HousesOnStage[0].GetComponent <HousePersonality>().AntiHouseType == candidate.HouseType) { speechBubble2.Line = ConversationManager.Instance.P3_WorstCandidatePresentation; } else { speechBubble2.Line = ConversationManager.Instance.P3_NeutralCandidatePresentation; } speechBubble2.CloneParameters(speechBubble.GetComponent <SpeechBubbleManager>()); speechBubble.GetComponent <SpeechBubbleManager>().Initialize(); TalkingDialogue = false; yield return(StartCoroutine(WaitingInput())); } }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { switch (_speechState) { case 0: yield return(FirstDialogue(npc, main)); break; case 1: if (GetComponentInParent <NpcManager>().IsSaved()) { yield return(npc.Say("Thanks to you, I am now free! Can't wait to play the harp again.", 5f)); yield return(SavedDialogue(npc, main)); } else { yield return(npc.Say("Hello again. It has been hard without my harp.", 4f, 0, 0, VoiceTone.Helpless)); yield return(npc.Say("If you would save me, it would allow me to play again.", 6f)); } break; case 2: yield return(FinalDialogue(npc, main)); yield break; case 3: yield return(GoodbyeDialogue(npc)); yield break; } }
public IEnumerator GetDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { switch (_speechState) { case 0: yield return(FirstDialogue(npc, main)); break; case 1: if (GetComponentInParent <NpcManager>().IsSaved()) { yield return(SavedDialogue(npc)); } else { yield return(SecondDialogue(npc)); } break; } yield return(null); }
private IEnumerator GetFirstDialogue(SpeechBubbleManager npc, SpeechBubbleManager main) { IEnumerable <NpcManager> managers = GlobalInstanceManager.GetGameManager() .GetComponentsInChildren <NpcManager>() .Where(manager => manager.needToBeSaved); IEnumerable <NpcManager> npcManagers = managers.ToList(); int total = npcManagers.Count(); int saved = npcManagers.Count(manager => manager.IsSaved()); bool hasSavedEveryone = total == saved; yield return(npc.Say("Congratulations, you have almost reached the exit.", 3f)); yield return(npc.Say("Unfortunately, it seems there is no way to open this door.", 5f)); yield return(main.Say("Are you the warden of this prison?", 3f)); yield return(npc.Say("Am I? Well. Yes.", 3f)); yield return(npc.Say("And so are you.", 3f)); yield return(npc.Say("And so is everyone here.", 3f)); yield return(npc.Say("Each prisoner, warden of a prison called <color=#FFF02D>self</color>.", 5f)); yield return(npc.Say("Curious, right?", 2f)); yield return(main.Say("I am not sure I understand.", 3f)); yield return(npc.Say("You might, in time.", 3f)); yield return(npc.Say("Still, in your shoes, I would be very proud of myself.", 5f)); yield return(npc.Say("You managed to exit your cell. Alone.", 4f)); yield return(main.Say("I had help. Someone throw a magical lantern (and a rock) right at me.", 5f)); yield return(npc.Say("I will repeat. You managed to exit your cell... alone.", 5f)); yield return(npc.Say("You managed to bring yourself here.", 4f)); yield return(npc.Say("You maybe didn't realize: that was already the most important step.", 5f)); yield return(npc.Say("While, this exit here? Just well-deserved joy.", 4f)); yield return(main.Say("What about the other prisoners? They were less lucky.", 5f)); if (hasSavedEveryone) { yield return(npc.Say("You <i>did</i> save everyone.", 3f)); yield return(npc.Say("Wouldn't you say, in this case, they were the luckiest ones?", 5f)); } else { yield return(npc.Say("You could have saved everyone. But you didn't.", 4f)); yield return(npc.Say("I expect you'll be thinking about that on your way out.", 5f)); } yield return(main.Say("What about this door, then?", 4f)); yield return(npc.Say("It won't open.", 2f)); yield return(main.Say("I... I don't accept that.", 3f)); yield return(npc.Say("You don't, uh?", 2f)); yield return(npc.Say("In the face of this insurmountable obstacle, you do not budge?", 5f)); yield return(npc.Say("When given all the wrong cards, do you not give up the game?", 5f)); yield return(npc.Say("Do you want to get out, even when everything screams at you, that you cannot?", 6f)); yield return(new WaitForSeconds(2f)); yield return(main.Say("You already know the answer to that.", 4f)); yield return(main.Say("I will chew my way out, if necessary.", 4f)); yield return(npc.Say("I see.", 1f)); yield return(npc.Say("It was not easy. Others had given up.", 4f)); yield return(npc.Say("But you had something in you that made the impossible, possible.", 5f)); yield return(npc.Say("If there is anything you should remember from this journey, let it be this:", 5f)); yield return(npc.Say("That power means nothing, if you only use it for yourself.", 4f)); lastDoor.StartOpening(); yield return(npc.Say("Welcome back to the outside, friend.", 4f)); yield return(main.Say("What about this lantern?", 3f, 1f, 0, VoiceTone.Question)); yield return(npc.Say("I'll take it.", 2f)); GlobalInstanceManager.GetStateManager().HasLantern = false; GlobalInstanceManager.GetStateManager().CanUsePower = false; yield return(npc.Say("This lantern has more to offer.", 4f, 1f)); yield return(npc.Say("I know what to do with it. As for you...", 4f)); yield return(npc.Say("You should go now.", 3f)); _hasPresented = true; }