using System; using System.Collections; using DarkTonic.MasterAudio; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; // Token: 0x020000DD RID: 221 public class TextParser : MonoBehaviour { // Token: 0x060014A0 RID: 5280 RVA: 0x0018FD94 File Offset: 0x0018DF94 private void Awake() { this.inputField.text = ""; this.rt = base.gameObject.GetComponent(); this.animator = base.gameObject.GetComponent(); this.img = base.gameObject.transform.GetChild(1).gameObject.GetComponent(); this.img2 = base.gameObject.transform.GetChild(0).gameObject.GetComponent(); this.img2.enabled = false; this.img.gameObject.SetActive(true); this.img2.gameObject.SetActive(true); this.contents1.SetActive(false); this.contents2.SetActive(false); this.img.enabled = false; this.animator.enabled = false; } // Token: 0x060014A1 RID: 5281 RVA: 0x0018FE74 File Offset: 0x0018E074 public void StartMenu(Portrait portrait) { if (this.cannotInterrupt) { return; } this.character = portrait.character; if (this.character.stunned || this.character.dead) { return; } if (Links.x.mk) { EventSystem.current.SetSelectedGameObject(this.inputField.gameObject); } if (this.parsing != null) { base.StopCoroutine(this.parsing); this.parsing = null; } this.inputField.text = ""; Records.x.SetTypingState(true); if (!this.character.mainSelected) { this.character.portrait.SelectCharacter(); } base.gameObject.transform.position = portrait.queuedIconBorder.gameObject.transform.position; base.gameObject.transform.SetAsLastSibling(); this.contents1.SetActive(true); this.contents2.SetActive(true); Records.x.shouting = true; this.animator.enabled = true; this.img2.enabled = true; this.animator.Play("TextParserStart"); MasterAudio.PlaySoundAndForget("Paper Open 2", Random.Range(0.2f, 0.3f), new float?(1f), 0f, "", null); this.parsedWord = ""; this.open = true; this.inputField.interactable = true; this.inputField.OnSelect(null); if (Links.x.joy) { Links.x.partyColliderAdventure.ToggleMenu(false); Links.x.keyboardScript.StartMenu(this.inputField, null, base.gameObject, "Shout"); return; } base.StartCoroutine(this.SelectInput()); } // Token: 0x060014A2 RID: 5282 RVA: 0x00190051 File Offset: 0x0018E251 private IEnumerator SelectInput() { yield return new WaitForSeconds(0.1f); this.inputField.OnSelect(null); yield break; } // Token: 0x060014A3 RID: 5283 RVA: 0x00190060 File Offset: 0x0018E260 public void EndFromRaycast() { if (Links.x.mk) { this.EndMenuStart(); } } // Token: 0x060014A4 RID: 5284 RVA: 0x00190074 File Offset: 0x0018E274 public void KeyboardParse() { if (Links.x.mk) { this.Parse(); } } // Token: 0x060014A5 RID: 5285 RVA: 0x00190088 File Offset: 0x0018E288 public void EndMenuStart() { if (this.parsedWord != "") { return; } this.animator.Play("TextParserEnd"); this.inputField.interactable = false; this.img2.enabled = false; if (Links.x.joy) { Links.x.gameplay.endDockNavigation = true; Links.x.hudControl.JoyBox(false); Links.x.partyColliderAdventure.ToggleMenu(true); } } // Token: 0x060014A6 RID: 5286 RVA: 0x0019010C File Offset: 0x0018E30C public void StartEndMenu() { } // Token: 0x060014A7 RID: 5287 RVA: 0x00190110 File Offset: 0x0018E310 public void EndMenu() { this.open = false; Records.x.SetTypingState(false); Records.x.shouting = false; this.contents1.SetActive(false); this.contents2.SetActive(false); this.img.enabled = false; this.animator.enabled = false; this.img2.enabled = false; } // Token: 0x060014A8 RID: 5288 RVA: 0x00190178 File Offset: 0x0018E378 public void Parse() { string text = this.inputField.text; this.originalWord = text; if (Links.x.mk && (text == "" || text == " " || text == " " || text == " ")) { return; } this.parsedWord = text.ToLower(); this.animator.Play("TextParserDone"); Debug.Log("Parse"); } // Token: 0x060014A9 RID: 5289 RVA: 0x001901FF File Offset: 0x0018E3FF public void ParseSuccess() { if (this.parsing != null) { base.StopCoroutine(this.parsing); this.parsing = null; } this.parsing = this.Parsing(); base.StartCoroutine(this.Parsing()); } // Token: 0x060014AA RID: 5290 RVA: 0x00190238 File Offset: 0x0018E438 private void PauseVisual() { string text = this.parsedWord; if (text.Length >= 3) { this.parsedWord.Substring(0, 3); } text += "..."; this.inputField.text = text; this.animator.Play("TextParserWaitingForEnd"); this.img2.enabled = false; Records.x.SetTypingState(false); Records.x.shouting = false; } // Token: 0x060014AB RID: 5291 RVA: 0x001902AD File Offset: 0x0018E4AD private IEnumerator Parsing() { this.inputField.interactable = false; bool changeAnim = false; float currentTime = this.animator.GetCurrentAnimatorStateInfo(0).normalizedTime; string word = this.parsedWord; string abilityName = ""; bool wordOfPower = false; while (Records.x.paused) { if (!changeAnim) { this.PauseVisual(); changeAnim = true; if (wordOfPower && this.character.actions) { while (this.character.inRecovery) { yield return null; } if (this.character.actions) { this.character.actions.ClearSelectedActionRealTime(); } if (this.character.actions) { this.character.actions.Interrupt(); } if (this.character.actions) { this.character.actions.CheckIfRunningAI(); } this.character.actions.hasWaypoint = false; this.character.actions.ClearTargetCharacters(); this.character.actions.RemoveAbility(); this.character.actions.Ability(abilityName, "", false, true); this.character.timelineIcon.WaitForAction(this.character.actions.GetActionSpeed("Word"), true, true); } } yield return null; } if (Records.x.pocketPause) { Links.x.gameplay.PocketPause(false); } this.parsedWord = ""; if (changeAnim) { this.inputField.text = word; this.animator.Play("TextParserDone", 0, currentTime + 0.1f); } this.cannotInterrupt = true; MasterAudio.PlaySoundAndForget("Feedback", 0.2f, new float?(1f), 0f, "Box Close", null); bool doQuip = false; bool flag = false; if (word == "bribe" || word == "sorry" || word == "stop") { if (Records.x.BribeBadgeCount() > 0) { Character character = Links.x.sensory.BribeCharacterNear(this.character, false); this.character.StartQuip(word + "!"); if (character) { Links.x.gameplay.StartDialogue(character, this.character, null, null, "Party/Bribe"); } else { Links.x.gameFeed.ShowNotice("No one heard you"); } } else { Character bribeCharacter = Links.x.sensory.BribeCharacterNear(this.character, false); this.character.StartQuip(word + "!"); Links.x.gameFeed.AddFeed("No need to bribe anyone at this time"); if (bribeCharacter) { yield return new WaitForSeconds(1f); bribeCharacter.StartQuip("No need"); } bribeCharacter = null; } flag = true; } if (word == "topa-din" || word == "topadin" || word == "topa din") { this.character.StartQuip("Topa-din"); Character bribeCharacter = Links.x.sensory.NearestNPC(this.character); if (bribeCharacter) { yield return new WaitForSeconds(0.75f); bribeCharacter.StartQuip("Topa-du"); if (!bribeCharacter.inCombat) { bribeCharacter.SetRotation(Quaternion.LookRotation(this.character.tr.position - bribeCharacter.tr.position), true, false); } } flag = true; bribeCharacter = null; } if (word == "topa du" || word == "topadu" || word == "topa-du") { this.character.StartQuip("Topa-du"); Character bribeCharacter = Links.x.sensory.NearestNPC(this.character); if (bribeCharacter) { yield return new WaitForSeconds(0.75f); bribeCharacter.StartQuip("Topa-din"); if (!bribeCharacter.inCombat) { bribeCharacter.SetRotation(Quaternion.LookRotation(this.character.tr.position - bribeCharacter.tr.position), true, false); } } flag = true; bribeCharacter = null; } if (Links.x.gaia.boroControls && word == Records.x.boroName.ToLower()) { Links.x.gameplay.CallBoro(); } if (doQuip) { this.character.StartQuip(this.originalWord + "!"); } if (word.Contains("deadhands526")) { Records.x.secrets = true; Links.x.inputControls.enabled = true; Links.x.inputControls.Lists(); Links.x.inputControls.NewScene(); Links.x.inputControls.child.SetActive(true); } if (!flag) { this.character.StartQuip(this.originalWord + "!"); } Records.x.SetShout(this.originalWord, Time.timeSinceLevelLoad); this.cannotInterrupt = false; this.parsing = null; if (Links.x.joy || Links.x.mk) { this.EndMenuStart(); } yield break; } // Token: 0x040023B5 RID: 9141 public TMP_InputField inputField; // Token: 0x040023B6 RID: 9142 public bool open; // Token: 0x040023B7 RID: 9143 private Portrait portrait; // Token: 0x040023B8 RID: 9144 private Character character; // Token: 0x040023B9 RID: 9145 private RectTransform rt; // Token: 0x040023BA RID: 9146 private Animator animator; // Token: 0x040023BB RID: 9147 public string parsedWord; // Token: 0x040023BC RID: 9148 public string originalWord; // Token: 0x040023BD RID: 9149 public GameObject contents1; // Token: 0x040023BE RID: 9150 public GameObject contents2; // Token: 0x040023BF RID: 9151 private Image img; // Token: 0x040023C0 RID: 9152 private Image img2; // Token: 0x040023C1 RID: 9153 public bool cannotInterrupt; // Token: 0x040023C2 RID: 9154 private IEnumerator parsing; // Token: 0x040023C3 RID: 9155 private StringFast str = new StringFast(64); }