using System; using System.Collections; using System.Collections.Generic; using System.Linq.Expressions; using DarkTonic.MasterAudio; using Pathfinding; using PixelCrushers.DialogueSystem; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; // Token: 0x02000025 RID: 37 public class Dialogue : MonoBehaviour { // Token: 0x06000594 RID: 1428 RVA: 0x0007A38F File Offset: 0x0007858F private void Awake() { PersistentDataManager.RegisterPersistentData(base.gameObject); this.dialoguePopupBox.SetActive(false); if (!Records.x.editor) { bool secrets = Records.x.secrets; } } // Token: 0x06000595 RID: 1429 RVA: 0x0007A3C0 File Offset: 0x000785C0 private void Start() { this.allParty = Links.x.party; Transform child = GameObject.Find("Fullscreen Dialogue").transform.GetChild(1); Transform child2 = child.GetChild(3); Transform child3 = child.GetChild(4); this.responseRT = child3.gameObject.GetComponent(); Transform transform = child2.GetChild(0).GetChild(1); this.typewriter = transform.gameObject.GetComponent(); this.name1 = child3.GetChild(2).gameObject.GetComponent(); this.portrait1 = this.name1.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent(); this.name2 = child3.GetChild(3).gameObject.GetComponent(); this.portrait2 = this.name2.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent(); this.name3 = child3.GetChild(4).gameObject.GetComponent(); this.portrait3 = this.name3.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent(); this.name4 = child3.GetChild(5).gameObject.GetComponent(); this.portrait4 = this.name4.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent(); this.response1 = child3.GetChild(0).GetChild(4); this.response2 = child3.GetChild(0).GetChild(5); this.response3 = child3.GetChild(0).GetChild(6); this.response4 = child3.GetChild(0).GetChild(7); this.responsePoints.Add(child3.GetChild(0).GetChild(0)); this.responsePoints.Add(child3.GetChild(0).GetChild(1)); this.responsePoints.Add(child3.GetChild(0).GetChild(2)); this.responsePoints.Add(child3.GetChild(0).GetChild(3)); transform = child2.GetChild(1).GetChild(1); this.typewriter2 = transform.gameObject.GetComponent(); if (!Records.x.editor) { this.system.PreloadResources(); } this.partyList = Links.x.portraitOrder; Lua.RegisterFunction("CharacterNeedsSongbook", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterNeedsSongbook(double)), new Expression[] { Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("CharacterNeedsSpellbook", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterNeedsSpellbook(double)), new Expression[] { Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("EveryoneLearnedSong", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneLearnedSong(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty()))); Lua.RegisterFunction("CharacterCanLearnSong", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterCanLearnSong(string, double)), new Expression[] { Expression.Constant("", typeof(string)), Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("PartyHasItem", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.PartyHasItem(string, double)), new Expression[] { Expression.Constant("", typeof(string)), Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("PartyHasItemWithDurability", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.PartyHasItemWithDurability(string, double)), new Expression[] { Expression.Constant("", typeof(string)), Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("PartyHasItemWithIntercession", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.PartyHasItemWithIntercession(string, double)), new Expression[] { Expression.Constant("", typeof(string)), Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); Lua.RegisterFunction("PartyHasEffect", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.PartyHasEffect(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty()))); Lua.RegisterFunction("EveryoneLearnedSpell", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneLearnedSpell(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty()))); Lua.RegisterFunction("CharacterCanLearnSpell", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterCanLearnSpell(string, double)), new Expression[] { Expression.Constant("", typeof(string)), Expression.Constant(0.0, typeof(double)) }), Array.Empty()))); CharacterInfo.RegisterActorTransform("MainCamera", Links.x.worldCamera.gameObject.transform); Lua.RegisterFunction("EveryoneNear", this, SymbolExtensions.GetMethodInfo(Expression.Lambda(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneNear()), Array.Empty()), Array.Empty()))); } // Token: 0x06000596 RID: 1430 RVA: 0x0007AAD0 File Offset: 0x00078CD0 private void Update() { if (Records.x.dialogue) { if (this.typewriter.isPlaying || this.typewriter2.isPlaying) { this.npcTalking = true; return; } this.npcTalking = false; } } // Token: 0x06000597 RID: 1431 RVA: 0x0007AB07 File Offset: 0x00078D07 public void TurnOffMainCamera() { Links.x.worldCamera.cullingMask = 1; } // Token: 0x06000598 RID: 1432 RVA: 0x0007AB19 File Offset: 0x00078D19 public void TurnOnMainCamera() { Links.x.worldCamera.cullingMask = Links.x.mainCameraMask; } // Token: 0x06000599 RID: 1433 RVA: 0x0007AB39 File Offset: 0x00078D39 public void CancelLine() { } // Token: 0x0600059A RID: 1434 RVA: 0x0007AB3C File Offset: 0x00078D3C public void SetSkipKey(bool state) { if (this.system.displaySettings.inputSettings == null) { Debug.Log("null"); return; } state = false; if (state) { this.system.displaySettings.inputSettings.cancel.key = KeyCode.Return; this.system.displaySettings.inputSettings.cancel.buttonName = ""; return; } this.system.displaySettings.inputSettings.cancel.key = KeyCode.None; this.system.displaySettings.inputSettings.cancel.buttonName = ""; } // Token: 0x0600059B RID: 1435 RVA: 0x0007ABE2 File Offset: 0x00078DE2 public void ToggleTimeScale() { if (Records.x.paused) { this.system.dialogueTimeMode = DialogueTime.TimeMode.Realtime; } else { this.system.dialogueTimeMode = DialogueTime.TimeMode.Gameplay; } this.system.UpdateDialogueTimeMode(); } // Token: 0x0600059C RID: 1436 RVA: 0x0007AC15 File Offset: 0x00078E15 public void NoSkip() { this.SetSkipKey(false); } // Token: 0x0600059D RID: 1437 RVA: 0x0007AC1E File Offset: 0x00078E1E public void SetNoExit() { this.NoExit(false); } // Token: 0x0600059E RID: 1438 RVA: 0x0007AC27 File Offset: 0x00078E27 public void SetExit() { this.NoExit(true); } // Token: 0x0600059F RID: 1439 RVA: 0x0007AC30 File Offset: 0x00078E30 public void SetNoBobbling() { this.noBobbling = true; } // Token: 0x060005A0 RID: 1440 RVA: 0x0007AC39 File Offset: 0x00078E39 public void SetBobbling() { this.noBobbling = false; } // Token: 0x060005A1 RID: 1441 RVA: 0x0007AC44 File Offset: 0x00078E44 public void NoExit(bool state) { if (this.importantConversation) { state = false; } if (state) { this.byeButton.interactable = true; this.byeImage.raycastTarget = true; return; } this.byeButton.interactable = false; this.byeImage.raycastTarget = false; } // Token: 0x060005A2 RID: 1442 RVA: 0x0007AC90 File Offset: 0x00078E90 public void ClickedResponse1() { this.ClickedResponse(1); } // Token: 0x060005A3 RID: 1443 RVA: 0x0007AC99 File Offset: 0x00078E99 public void ClickedResponse2() { this.ClickedResponse(2); } // Token: 0x060005A4 RID: 1444 RVA: 0x0007ACA2 File Offset: 0x00078EA2 public void ClickedResponse3() { this.ClickedResponse(3); } // Token: 0x060005A5 RID: 1445 RVA: 0x0007ACAB File Offset: 0x00078EAB public void ClickedResponse4() { this.ClickedResponse(4); } // Token: 0x060005A6 RID: 1446 RVA: 0x0007ACB4 File Offset: 0x00078EB4 public void ClickedResponse(int num) { string text = ""; if (num == 1) { text = this.responseCharacter1; } if (num == 2) { text = this.responseCharacter2; } if (num == 3) { text = this.responseCharacter3; } if (num == 4) { text = this.responseCharacter4; } if (text != "") { for (int i = 0; i < this.partyList.Count; i++) { if (text == this.partyList[i].stats.GetName()) { this.respondCharacter = this.partyList[i]; this.party = this.partyList[i]; DialogueLua.SetVariable("SelectedParty", text); DialogueLua.SetVariable("SelectedPartyRace", this.respondCharacter.stats.race); Links.x.renderPortraits.HeadBobble(this.party); this.justResponded = this.respondCharacter; } } } for (int j = 0; j < this.foundParty.Count; j++) { if (!(this.foundParty[j] == this.justResponded)) { if (j == 0) { this.responseBtn1.text = ""; } if (j == 1) { this.responseBtn2.text = ""; } if (j == 2) { this.responseBtn3.text = ""; } if (j == 3) { this.responseBtn4.text = ""; } } } this.responseCharacter1 = ""; this.responseCharacter2 = ""; this.responseCharacter3 = ""; this.responseCharacter4 = ""; } // Token: 0x060005A7 RID: 1447 RVA: 0x0007AE51 File Offset: 0x00079051 public void SetResponses() { } // Token: 0x060005A8 RID: 1448 RVA: 0x0007AE54 File Offset: 0x00079054 private Character FindRandom() { this.randomParty.Clear(); for (int i = 0; i < this.talkingParty.Count; i++) { if (!this.foundParty.Contains(this.talkingParty[i])) { this.randomParty.Add(this.talkingParty[i]); } } if (this.randomParty.Count > 1) { return this.randomParty[Random.Range(0, this.randomParty.Count)]; } return Links.x.main; } // Token: 0x060005A9 RID: 1449 RVA: 0x0007AEE7 File Offset: 0x000790E7 public void OnResponse() { this.sequence = ""; } // Token: 0x060005AA RID: 1450 RVA: 0x0007AEF4 File Offset: 0x000790F4 public void ResponsesSetup() { this.responsesOn = true; this.pcResponses = this.system.currentConversationState.pcResponses; this.foundAnswers = new bool[4]; string text = ""; string text2 = ""; string text3 = ""; string text4 = ""; for (int i = 0; i < this.pcResponses.Length; i++) { if (i == 0) { text = this.responseBtn1.response.desc; } if (i == 1) { text2 = this.responseBtn2.response.desc; } if (i == 2) { text3 = this.responseBtn3.response.desc; } if (i == 3) { text4 = this.responseBtn4.response.desc; } } this.foundParty.Clear(); this.foundPartyResponses.Clear(); this.responseCharacter1 = ""; this.responseCharacter2 = ""; this.responseCharacter3 = ""; this.responseCharacter4 = ""; bool flag = false; for (int j = 0; j < 4; j++) { string text5 = text; Transform transform = this.response1; StandardUIResponseButton standardUIResponseButton = this.responseBtn1; if (j == 1) { text5 = text2; transform = this.response2; standardUIResponseButton = this.responseBtn2; } if (j == 2) { text5 = text3; transform = this.response3; standardUIResponseButton = this.responseBtn3; } if (j == 3) { text5 = text4; transform = this.response4; standardUIResponseButton = this.responseBtn4; } if (standardUIResponseButton.response != null) { int nodeID = standardUIResponseButton.response.nodeID; for (int k = 0; k < this.savedIDs.Count; k++) { if (nodeID == this.savedIDs[k]) { Character character = this.savedCharacters[k]; if (!this.foundParty.Contains(character)) { int num = this.talkingParty.IndexOf(character); transform.position = this.responsePoints[num].position; bool flag2 = true; bool flag3 = false; bool flag4 = false; this.FindArchetype(text5, out flag2, out flag3, out flag4); this.foundParty.Add(character); this.foundPartyResponses.Add(standardUIResponseButton); if (flag4) { flag = true; } if (flag3) { standardUIResponseButton.response.formattedText = standardUIResponseButton.response.alternativeFormattedText; standardUIResponseButton.SetFormattedText(standardUIResponseButton.response.formattedText); } if (num == 0) { this.responseCharacter1 = character.stats.GetName(); } if (num == 1) { this.responseCharacter2 = character.stats.GetName(); } if (num == 2) { this.responseCharacter3 = character.stats.GetName(); } if (num == 3) { this.responseCharacter4 = character.stats.GetName(); } this.foundAnswers[j] = true; } } } } } for (int l = 0; l < 4; l++) { string text6 = text; Transform transform2 = this.response1; StandardUIResponseButton standardUIResponseButton2 = this.responseBtn1; if (l == 1) { text6 = text2; transform2 = this.response2; standardUIResponseButton2 = this.responseBtn2; } if (l == 2) { text6 = text3; transform2 = this.response3; standardUIResponseButton2 = this.responseBtn3; } if (l == 3) { text6 = text4; transform2 = this.response4; standardUIResponseButton2 = this.responseBtn4; } if (standardUIResponseButton2.response != null && !this.foundAnswers[l]) { int nodeID2 = standardUIResponseButton2.response.nodeID; if (text6 == "") { text6 = "Any"; } if (text6 != "") { bool flag5 = true; bool flag6 = false; bool flag7 = false; Character character2 = this.FindArchetype(text6, out flag5, out flag6, out flag7); if (flag7) { flag = true; } if (character2) { this.foundParty.Add(character2); this.foundPartyResponses.Add(standardUIResponseButton2); } else { if (flag5) { character2 = this.FindRandom(); this.foundParty.Add(character2); this.foundPartyResponses.Add(standardUIResponseButton2); } if (flag6) { standardUIResponseButton2.response.formattedText = standardUIResponseButton2.response.alternativeFormattedText; standardUIResponseButton2.SetFormattedText(standardUIResponseButton2.response.formattedText); } } if (character2) { if (l == 0) { this.responseCharacter1 = character2.stats.GetName(); } if (l == 1) { this.responseCharacter2 = character2.stats.GetName(); } if (l == 2) { this.responseCharacter3 = character2.stats.GetName(); } if (l == 3) { this.responseCharacter4 = character2.stats.GetName(); } int num2 = this.talkingParty.IndexOf(character2); transform2.position = this.responsePoints[num2].position; this.savedIDs.Add(nodeID2); this.savedCharacters.Add(character2); this.foundAnswers[l] = true; } else { transform2.position = new Vector3(10000f, 10000f, 10000f); standardUIResponseButton2.button.interactable = false; standardUIResponseButton2.isClickable = false; standardUIResponseButton2.isVisible = false; } } } } GameObject gameObject = null; Color color = new Color(0.3f, 0.3f, 0.3f, 0.65f); bool flag8 = false; Color color2 = new Color(1f, 1f, 1f, 0.65f); for (int m = 0; m < this.talkingParty.Count; m++) { int num3 = this.foundParty.IndexOf(this.talkingParty[m]); if (num3 == -1) { if (m == 0) { this.portrait1.color = color; } if (m == 1) { this.portrait2.color = color; } if (m == 2) { this.portrait3.color = color; } if (m == 3) { this.portrait4.color = color; } } else { if (m == 0) { this.portrait1.color = color2; if (!flag8) { gameObject = this.foundPartyResponses[num3].gameObject; flag8 = true; } } if (m == 1) { this.portrait2.color = color2; if (!flag8) { gameObject = this.foundPartyResponses[num3].gameObject; flag8 = true; } } if (m == 2) { this.portrait3.color = color2; if (!flag8) { gameObject = this.foundPartyResponses[num3].gameObject; flag8 = true; } } if (m == 3) { this.portrait4.color = color2; if (!flag8) { gameObject = this.foundPartyResponses[num3].gameObject; flag8 = true; } } } } if (this.continueButton2.gameObject.activeSelf) { gameObject = this.continueButton2.gameObject; } if (!flag8) { gameObject = this.byeButton.gameObject; } if (flag) { DialogueLua.SetVariable("ArchetypeFail", true); } else { DialogueLua.SetVariable("ArchetypeFail", false); } this.npcTalking = false; if (Links.x.mk) { EventSystem.current.SetSelectedGameObject(null); return; } base.StartCoroutine(this.SetSelected(gameObject)); } // Token: 0x060005AB RID: 1451 RVA: 0x0007B611 File Offset: 0x00079811 private IEnumerator SetSelected(GameObject startSelected) { yield return new WaitForSeconds(0.1f); this.responsesOn = true; EventSystem.current.SetSelectedGameObject(startSelected); if (startSelected) { startSelected.GetComponent().SetSelected(true); } yield break; } // Token: 0x060005AC RID: 1452 RVA: 0x0007B628 File Offset: 0x00079828 public void SetupConversation(string dialogueFile, Character mainSpeaker, Character mainSpeaker2, Character mainSpeaker3, Character responder) { bool flag = false; if (dialogueFile == "Quip") { bool flag2 = false; if (this.npc1.stats.isHouseGuard && this.npc1.npc && (Links.x.diorama.sceneName.Contains("C6") || Links.x.diorama.sceneName.Contains("D6")) && !Links.x.diorama.sceneName.Contains("Creation") && !dialogueFile.Contains("Bribe") && Records.x.ExilesToTurnIn() > 0) { flag2 = true; } if (!flag2) { flag = !(this.FindQuip(mainSpeaker, dialogueFile) != ""); mainSpeaker.PlayAnimation("Talk_1", 0f); } } if (!flag && mainSpeaker) { string xmlName = mainSpeaker.stats.xmlName; if (xmlName == "RozafirStoreKeep") { if (QuestLog.GetQuestState("D6_Licech") != QuestState.ActivePart2) { flag = true; } if (dialogueFile.Contains("Party/Bribe")) { flag = false; } } if (xmlName == "RenazinInformantFarmer") { if (this.npc1.creatures.isDay) { flag = true; } if (dialogueFile.Contains("Party/Bribe")) { flag = false; } } if (xmlName == "RozafirStoreGuardA" || xmlName == "RozafirStoreGuardB") { if (QuestLog.GetQuestState("D6_Licech") != QuestState.WaitingForExileIsland && QuestLog.GetQuestState("D6_Licech") != QuestState.ExileIsland && QuestLog.GetQuestState("D6_Licech") != QuestState.PerpIsDead && QuestLog.GetQuestState("D6_Licech") != QuestState.Complete) { flag = true; } if (dialogueFile.Contains("Party/Bribe")) { flag = false; } } if (flag) { this.FindQuip(mainSpeaker, dialogueFile); mainSpeaker.PlayAnimation("Talk_1", 0f); } } if (!flag) { this.diaFile = dialogueFile; if (Records.x.paused) { Links.x.gameplay.TogglePause(false); } if (this.startCorout == null) { Records.x.dialogue = true; this.startCorout = this.Starting(dialogueFile, mainSpeaker, mainSpeaker2, mainSpeaker3, responder); base.StartCoroutine(this.startCorout); } } if (Records.x.editor) { Debug.Log(string.Concat(new string[] { "Start a dialogue: ", dialogueFile, " ", (mainSpeaker != null) ? mainSpeaker.ToString() : null, " ", (mainSpeaker2 != null) ? mainSpeaker2.ToString() : null, " ", (mainSpeaker3 != null) ? mainSpeaker3.ToString() : null, " ", (responder != null) ? responder.ToString() : null, " ", this.initiateNum.ToString(), " ", flag.ToString() })); } } // Token: 0x060005AD RID: 1453 RVA: 0x0007B91D File Offset: 0x00079B1D private IEnumerator Starting(string dialogueFile, Character mainSpeaker, Character mainSpeaker2, Character mainSpeaker3, Character responder) { while (Records.x.IsSaving()) { yield return null; } Links.x.cameraEffects.ToggleObscurance(); this.stopDialogue = false; this.setRotation = false; this.training = false; this.trainingSkill = ""; this.skillTraining.SetActive(false); this.buySongs.SetActive(false); this.vignettes.NewDialogue(); this.doNotTurnOnHud = false; this.noBobbling = false; this.responsesOn = false; DialogueManager.displaySettings.subtitleSettings.continueButton = DisplaySettings.SubtitleSettings.ContinueButtonMode.Never; if (Records.x.filming) { this.system.displaySettings.subtitleSettings.subtitleCharsPerSecond = 150f; this.system.displaySettings.subtitleSettings.minSubtitleSeconds = 1.5f; } Transform mainSpeakerTr = null; this.npc1 = mainSpeaker; this.npc2 = mainSpeaker2; this.npc3 = mainSpeaker3; this.npc4 = null; this.npc5 = null; if (mainSpeaker && responder && mainSpeaker.party && responder.party) { this.npc1 = mainSpeaker; this.npc2 = responder; this.npc3 = mainSpeaker2; this.npc4 = mainSpeaker3; this.npc5 = null; } if (Links.x.mk) { this.navigate.text = ""; } if (Links.x.joy) { this.navigate.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); this.str.Clear(); this.str.Append(" Navigate "); this.navigate.text = this.str.ToString(); } DialogueLua.SetVariable("PartyIsSneaking", false); if (dialogueFile == "Party/Boro" && !(this.npc1 == Links.x.gaia.boro)) { if (Records.x.InCombat(false) || this.npc1.hostility == 2) { this.stopDialogue = true; } else { this.boro = this.npc1; Character character = Links.x.diorama.FindCharacterHerder(); if (character) { this.npc1 = character; } if (!character) { if (!Links.x.main.body.sneaking) { this.stopDialogue = true; this.npc1.ignoreRemoveControls = true; Records.x.dialogue = false; this.npc1.Flee(Links.x.main.node, false, Links.x.gameplay.seconds, 100f); yield return new WaitForSeconds(0.5f); Links.x.main.StartQuip("I've startled it"); } else { DialogueLua.SetVariable("PartyIsSneaking", true); } } else { string xmlName = this.boro.stats.xmlName; Vector3 vector; Vector4 vector2; string text; int num; Records.x.BoroStats(xmlName, out vector, out vector2, out text, out num, true); Vector3 vector3; Vector4 vector4; string text2; int num2; Records.x.BoroStats(Records.x.boroID, out vector3, out vector4, out text2, out num2, true); int num3 = num - num2; if (num3 < 0) { num3 = 0; } DialogueLua.SetVariable("Cost", num3); DialogueLua.SetVariable("PartyIsSneaking", false); } } } this.justResponded = null; this.SetPortraitColorGray(); if (Records.x.paused) { Links.x.gameplay.TogglePause(false); } this.importantConversation = false; if (this.npc1 && !this.npc1.party && !Records.x.removeControls && !this.stopDialogue) { this.npc1.HoverOut(false); this.npc1.body.Hover(false, true); if ((this.initiateNum == 15 || this.initiateNum == 16 || this.initiateNum == 5 || this.initiateNum == 6 || this.initiateNum == 12 || this.initiateNum == 2 || this.initiateNum == 17 || this.initiateNum == 7) && Vector3.Distance(this.npc1.tr.position, Links.x.main.tr.position) > 15f && Links.x.diorama.sceneName != "C6_FortenLazure" && Links.x.worldCamera.orthographic) { Links.x.hoverObject = this.npc1.gameObject; Shader.SetGlobalVector("_DoorLightPosition", this.npc1.tr.position + new Vector3(0f, 3f, 0f)); Records.x.hoverLightColor = Color.white * 0.1f; Shader.SetGlobalFloat("_DoorLightRange", 15f); Shader.SetGlobalVector("_CinematicRevealPosition", this.npc1.tr.position); } for (int i = 0; i < this.allParty.Count; i++) { if (this.allParty[i] && this.allParty[i]) { this.allParty[i].ClearNodePath(); this.allParty[i].TargetReached(); } } Links.x.rtsCamera.Follow(this.npc1.tr, this.npc1, false); Links.x.rtsCamera.Zoom(true, "Dialogue"); if (dialogueFile.Contains("Pavura")) { this.importantConversation = true; } if (dialogueFile.Contains("LazureScribe") && QuestLog.GetQuestState("CharacterCreation") != QuestState.Success) { this.importantConversation = true; } if (this.npc1.moving) { this.npc1.ClearNodePath(); this.npc1.TargetReached(); } if (!this.npc1.resting) { this.npc1.SetRotation(Quaternion.LookRotation(Links.x.main.tr.position - this.npc1.tr.position), false, false); } if (Links.x.main.moving) { Links.x.main.TargetReached(); } while (Links.x.main.moving) { yield return null; } Links.x.main.alwaysTurn = true; Links.x.main.SetRotation(Quaternion.LookRotation(this.npc1.tr.position - Links.x.main.tr.position), true, false); float timeToLerp = 1f; float percentage = 0f; float startTime = Time.time; if (this.npc1.body.GetHead()) { Links.x.itemPickupFX.gameObject.SetActive(true); Links.x.itemPickupFX.gameObject.GetComponent().Play("Idle"); } MasterAudio.PlaySoundAndForget("Feedback", Random.Range(0.5f, 0.7f), new float?(1f), 0f, "StartDialogue", null); while (percentage < 1f) { percentage = (Time.time - startTime) / timeToLerp; if (this.npc1.body.GetHead()) { Vector3 position = this.npc1.body.GetHead().position; Vector3 vector5 = Links.x.worldCamera.WorldToScreenPoint(position); vector5.z = 0f; vector5.x = vector5.x * (1920f / (float)Screen.width) - 960f; vector5.y = vector5.y * (Links.x.canvasRT.sizeDelta.y / (float)Screen.height) - Links.x.canvasRT.sizeDelta.y / 2f; Links.x.itemPickupFX.localPosition = vector5; } yield return null; } while (Links.x.main.turning || this.npc1.turning) { yield return null; } Links.x.hoverObject = null; } this.NoExit(true); if (dialogueFile == "Party/Boro" && this.npc1 == Links.x.gaia.boro) { this.stopDialogue = true; this.OpenBags(); yield return new WaitForSeconds(0.5f); } this.savedIDs.Clear(); this.savedCharacters.Clear(); DialogueLua.SetVariable("GiveXP", false); if (DialogueLua.GetVariable("GiveXP").asBool) { DialogueLua.SetVariable("GiveXP", false); } this.message1.SetActive(false); this.message2.SetActive(false); this.message3.SetActive(false); this.message4.SetActive(false); this.messageText1.text = ""; this.messageText2.text = ""; this.messageText3.text = ""; this.messageText4.text = ""; DialogueLua.SetVariable("ShowCinematic", false); if (this.initiateNum == 15 || this.initiateNum == 16 || this.initiateNum == 5 || this.initiateNum == 6 || this.initiateNum == 12 || this.initiateNum == 2 || this.initiateNum == 17 || this.initiateNum == 7) { DialogueLua.SetVariable("ShowCinematic", true); this.CheckCinematicDialogues(dialogueFile); if (this.npc1 && (this.npc1.stats.characterRow._Quest.Contains("GraveRobber") || this.npc1.stats.characterRow._Quest.Contains("Thieves") || this.npc1.stats.characterRow._Quest.Contains("RobberBaron"))) { Links.x.gaia.SetPlaylist("Up To No Good", true, 0f); } if (!this.stopDialogue && (this.initiateNum == 15 || this.initiateNum == 5)) { bool flag = Links.x.sensory.CheckSneaking(this.npc1, true, null, false, false); if (this.npc2 && flag) { flag = Links.x.sensory.CheckSneaking(this.npc2, true, null, false, false); } if (this.npc3 && flag) { flag = Links.x.sensory.CheckSneaking(this.npc3, true, null, false, false); } if (this.npc4 && flag) { flag = Links.x.sensory.CheckSneaking(this.npc4, true, null, false, false); } DialogueLua.SetVariable("PartyIsSneaking", flag); Debug.Log(flag); if (dialogueFile == "D6/RenazinSpy" && flag) { this.stopDialogue = true; this.npc1.stats.initiateDialogue = 5; this.npc1.stats.canTalk = true; } } } else { if (dialogueFile == "FortenLazure/LazureGuardOffDuty") { Character character2 = Links.x.diorama.FindCharacter("LazurePostingMaster"); if (character2 && !character2.sleeping && !character2.dead && character2.IsSentient()) { this.npc2 = character2; } } if (dialogueFile == "FortenLazure/LazureGuardDayGateB") { Character character3 = Links.x.diorama.FindCharacter("LazureGuardDayGateA"); if (character3 && !character3.sleeping && !character3.dead && character3.IsSentient()) { this.npc2 = character3; Character character4 = this.npc2; Debug.Log(((character4 != null) ? character4.ToString() : null) + " found"); } } if (dialogueFile == "Farm/CaravanBlessed") { Character character5 = Links.x.diorama.FindCharacter("DuraCampWoman"); if (character5 && !character5.dead) { this.npc2 = character5; Character character6 = this.npc2; Debug.Log(((character6 != null) ? character6.ToString() : null) + " found"); } } if (dialogueFile == "FortenLazure/LazureChanter") { Character character7 = Links.x.diorama.FindCharacter("LazureGuardSickA"); if (character7 && !character7.dead) { this.npc2 = character7; } character7 = Links.x.diorama.FindCharacter("LazureGuardSickB"); if (character7 && !character7.dead) { this.npc3 = character7; } character7 = Links.x.diorama.FindCharacter("LazureGuardSickC"); if (character7 && !character7.dead) { this.npc4 = character7; } } if (dialogueFile == "WestRuins/Captain" || dialogueFile == "Rozafir/Baths") { this.npc2 = Links.x.GetPortraitID(0); this.npc3 = Links.x.GetPortraitID(1); this.npc4 = Links.x.GetPortraitID(2); this.npc5 = Links.x.GetPortraitID(3); } if (dialogueFile == "LazureFalls/Bandit") { Character character8 = Links.x.diorama.FindCharacter("FallsBanditB"); this.npc3 = character8; character8 = Links.x.diorama.FindCharacter("FallsBanditFriend"); this.npc2 = character8; } } if (this.initiateNum == 2) { this.npc1.stats.initiateDialogue = 0; } if (this.initiateNum == 12) { this.npc1.stats.initiateDialogue = 10; } if ((this.initiateNum == 0 || this.initiateNum == 10) && this.npc1 && this.npc1.stats.isHouseGuard && this.npc1.npc && (Links.x.diorama.sceneName.Contains("C6") || Links.x.diorama.sceneName.Contains("D6")) && !Links.x.diorama.sceneName.Contains("Creation") && !dialogueFile.Contains("Bribe")) { int num4 = Records.x.ExilesToTurnIn(); if (num4 > 0) { dialogueFile = "Party/Banishment"; DialogueLua.SetVariable("StunBadges", num4); if (Records.x.HasSpecialTurnIn("Dolki")) { DialogueLua.SetVariable("SpecialExile", "Dolki"); } else { DialogueLua.SetVariable("SpecialExile", ""); } } } if (dialogueFile.Contains("Bribe")) { int num5 = Records.x.BribeBadgeCount(); DialogueLua.SetVariable("BribeAmount", (float)num5 * 200f); } if (!this.stopDialogue) { Records.x.dialogue = true; Links.x.cameraEffects.ToggleObscurance(); Records.x.StartUIFade(true, false); if (this.quickNoteOpen) { this.quickNoteOpen = false; } Records.x.SetTypingState(true); Links.x.hudControl.ChangeHudVisibility(false, true); Records.x.RemoveControls(true); Links.x.inventory.groundBag.RemoveLabels(); this.startPosition = this.npc1.tr.position; if (!Records.x.partyCamping && this.initiateNum != 5 && this.initiateNum != 15) { if (this.npc1) { this.npc1.EndPath(); } if (this.npc2) { this.npc2.EndPath(); } if (this.npc3) { this.npc3.EndPath(); } if (this.npc4) { this.npc4.EndPath(); } } for (int j = 0; j < this.allParty.Count; j++) { this.allParty[j].ClearNodePath(); this.allParty[j].ClearMoveTargets(); } yield return new WaitForSeconds(0.2f); } else { Records.x.dialogue = false; } this.respondCharacter = responder; this.itemGiveCount = 0; if (!this.stopDialogue) { CharacterInfo.RegisterActorTransform("Player", Links.x.main.tr); CharacterInfo.RegisterActorTransform("PlayerAnimator", Links.x.main.body.transform); CharacterInfo.RegisterActorTransform("NPC 1", this.npc1.tr); CharacterInfo.RegisterActorTransform("NPC1Animator", this.npc1.body.transform); this.npc1.SetMeshState(true); this.npc1.animator.SetBool("Idle", false); if (this.npc2) { CharacterInfo.RegisterActorTransform("NPC 2", this.npc2.tr); CharacterInfo.RegisterActorTransform("NPC2Animator", this.npc2.body.transform); this.npc2.SetMeshState(true); this.npc2.animator.SetBool("Idle", false); } if (this.npc3) { CharacterInfo.RegisterActorTransform("NPC 3", this.npc3.tr); CharacterInfo.RegisterActorTransform("NPC3Animator", this.npc3.body.transform); this.npc3.SetMeshState(true); this.npc3.animator.SetBool("Idle", false); } if (this.npc4) { CharacterInfo.RegisterActorTransform("NPC 4", this.npc4.tr); CharacterInfo.RegisterActorTransform("NPC4Animator", this.npc4.body.transform); this.npc4.SetMeshState(true); this.npc4.animator.SetBool("Idle", false); } if (this.npc5) { CharacterInfo.RegisterActorTransform("NPC 5", this.npc5.tr); } } if (dialogueFile == "Pavura") { yield return new WaitForSecondsRealtime(1.5f); } int num6 = 0; int num7 = 0; int num8 = 0; this.name1.text = ""; this.portrait1.texture = Links.x.emptyTexture; this.name2.text = ""; this.portrait2.texture = Links.x.emptyTexture; this.name3.text = ""; this.portrait3.texture = Links.x.emptyTexture; this.name4.text = ""; this.portrait4.texture = Links.x.emptyTexture; this.talkingParty.Clear(); bool flag2 = false; if (dialogueFile.Contains("RoadAhead") || dialogueFile.Contains("Party/ExileIsland")) { DialogueLua.SetVariable("VignetteAnimController", "Right"); flag2 = true; } if (!flag2) { for (int k = 0; k < this.partyList.Count; k++) { if (this.partyList[k] && !this.partyList[k].isBoro && !this.partyList[k].summoned) { Links.x.renderPortraits.PlayAnimation(this.partyList[k], "dialogue", "Look Around Less"); Links.x.renderPortraits.FreshBlinks(this.partyList[k]); this.talkingParty.Add(this.partyList[k]); if (num8 == 0) { this.name1.text = this.partyList[k].stats.GetName(); this.portrait1.texture = this.partyList[k].characterSheetPortrait.GetTextureIdle(0); } if (num8 == 1) { this.name2.text = this.partyList[k].stats.GetName(); this.portrait2.texture = this.partyList[k].characterSheetPortrait.GetTextureIdle(0); } if (num8 == 2) { this.name3.text = this.partyList[k].stats.GetName(); this.portrait3.texture = this.partyList[k].characterSheetPortrait.GetTextureIdle(0); } if (num8 == 3) { this.name4.text = this.partyList[k].stats.GetName(); this.portrait4.texture = this.partyList[k].characterSheetPortrait.GetTextureIdle(0); } num8++; num7++; num6++; } } } if (!this.stopDialogue) { DialogueLua.SetVariable("PartySize", num7); DialogueLua.SetVariable("PartySizeAll", num6); DialogueLua.SetVariable("SceneName", Links.x.diorama.sceneName); this.TimeOfDay(); if (num7 == 1) { DialogueLua.SetVariable("MyOur", "my"); DialogueLua.SetVariable("WeI", "I"); DialogueLua.SetVariable("MyOurU", "My"); DialogueLua.SetVariable("WeIU", "I"); DialogueLua.SetVariable("MeUs", "me"); } else { DialogueLua.SetVariable("MyOur", "our"); DialogueLua.SetVariable("WeI", "we"); DialogueLua.SetVariable("MyOurU", "Our"); DialogueLua.SetVariable("WeIU", "We"); DialogueLua.SetVariable("MeUs", "us"); } DialogueLua.SetVariable("NPCName", this.npc1.stats.GetDisplayName()); if (this.npc2) { DialogueLua.SetVariable("NPC2Name", this.npc2.stats.GetDisplayName()); } else { DialogueLua.SetVariable("NPC2Name", ""); } if (this.npc3) { DialogueLua.SetVariable("NPC3Name", this.npc3.stats.GetDisplayName()); } else { DialogueLua.SetVariable("NPC3Name", ""); } if (this.npc4) { DialogueLua.SetVariable("NPC4Name", this.npc4.stats.GetDisplayName()); } else { DialogueLua.SetVariable("NPC4Name", ""); } if (this.npc5) { DialogueLua.SetVariable("NPC5Name", this.npc5.stats.GetDisplayName()); } else { DialogueLua.SetVariable("NPC5Name", ""); } DialogueLua.SetVariable("NPCGenericName", this.npc1.stats.GetGenericName()); DialogueLua.SetVariable("Emeralds", Links.x.inventory.emeralds); DialogueLua.SetVariable("Disposition", Links.x.main.stats.Disposition(Links.x.diorama.sceneName)); DialogueLua.SetVariable("PaganPartyMember", ""); DialogueLua.SetVariable("ResponderAlive", true); DialogueLua.SetVariable("NPCAlive", true); DialogueLua.SetVariable("BranchActiveA", false); DialogueLua.SetVariable("BranchActiveB", false); DialogueLua.SetVariable("BranchActiveC", false); DialogueLua.SetVariable("BranchActiveD", false); int num9 = Random.Range(0, 4); DialogueLua.SetVariable("Random4", num9); DialogueLua.SetVariable("GameHours", (int)Mathf.Floor((float)Links.x.gameplay.GetCurrentGameTimeHours())); Links.x.gameplay.GetTimeOfDay(); DialogueLua.SetVariable("TimeOfDay", Links.x.gameplay.timeOfDay); if (this.npc1.stats.initiateDialogue >= 10) { DialogueLua.SetVariable("KnowsName", true); } else { DialogueLua.SetVariable("KnowsName", false); } for (int l = 0; l < this.partyList.Count; l++) { string text3 = "Party1"; if (l == 1) { text3 = "Party2"; } if (l == 2) { text3 = "Party3"; } if (l == 3) { text3 = "Party4"; } if (l < this.partyList.Count) { DialogueLua.SetVariable(text3, this.partyList[l].stats.GetName()); float sqrMagnitude = (this.partyList[l].tr.position - this.npc1.tr.position).sqrMagnitude; DialogueLua.SetVariable(text3 + "Near", true); DialogueLua.SetVariable(text3, this.partyList[l].stats.GetName()); if (this.partyList[l].mainSelected) { DialogueLua.SetVariable("SelectedParty", this.partyList[l].stats.GetName()); DialogueLua.SetVariable("SelectedPartyRace", this.partyList[l].stats.race); } if (this.partyList[l].stats.HasPaganToken()) { DialogueLua.SetVariable("PaganPartyMember", this.partyList[l].stats.GetName()); } } else { DialogueLua.SetVariable(text3, "[None]"); DialogueLua.SetVariable(text3 + "Near", false); } } } if (!this.stopDialogue) { DialogueManager.StartConversation(dialogueFile, mainSpeakerTr, responder.tr); } else { Records.x.SetTypingState(false); Records.x.dialogue = false; Links.x.cameraEffects.ToggleObscurance(); Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true); Links.x.rtsCamera.Zoom(false, "Dialogue"); Records.x.RemoveControls(false); Links.x.hudControl.ChangeHudVisibility(true, true); Shader.SetGlobalVector("_CinematicRevealPosition", new Vector3(-100000f, -100000f, -100000f)); } this.stopDialogue = false; yield return new WaitForSecondsRealtime(0.1f); this.training = DialogueLua.GetVariable("Training").asBool; if (this.training) { this.trainingSkill = DialogueLua.GetVariable("TrainingSkill").asString; bool flag3 = true; if (this.npc1.stats.xmlName.Contains("WestRuinsGemLover") && QuestLog.GetQuestState("D5_Gem") != QuestState.Active && QuestLog.GetQuestState("D5_Gem") != QuestState.Success) { flag3 = false; } if (flag3) { this.skillTraining.SetActive(true); this.SetTrainingIcon(this.trainingSkill); string text4 = Links.x.inventory.emeralds.ToString(); this.emeraldText.text = text4; } } this.startCorout = null; yield break; } // Token: 0x060005AE RID: 1454 RVA: 0x0007B954 File Offset: 0x00079B54 public void StartConversation() { this.SetSkipKey(true); Links.x.hudControl.cinematicQuips.alpha = 0f; int conversationID = DialogueManager.currentConversationState.subtitle.dialogueEntry.conversationID; string text = DialogueManager.currentConversationState.subtitle.dialogueEntry.MenuText; string asString = DialogueLua.GetVariable("VignetteAnimController").asString; this.vignettes.animController = asString; if (text == "" || text == null) { text = "Vignette Example"; } this.vignettes.Setup(this.npc1, text); if (this.vignettes.body) { this.typewriter.headBone = this.vignettes.body.GetHead(); this.typewriter2.headBone = this.vignettes.body.GetHead(); CharacterInfo.RegisterActorTransform("VignetteAnimator", this.vignettes.body.gameObject.transform); } Conversation conversation = DialogueManager.masterDatabase.GetConversation(conversationID); conversation.ActorID = 1; conversation.ConversantID = 2; this.characterFollowAudioSource.volume = Links.x.options.soundVolume * 0.5f; for (int i = 0; i < this.allParty.Count; i++) { this.allParty[i].EndPath(); this.allParty[i].ClearMoveTargets(); } if (this.npc1 && this.npc1.stats.xmlName.Contains("Minstrel")) { this.CheckToBuySongs(); } Links.x.gameplay.hitCharacter = false; Links.x.gameCard.End(); Links.x.itemCard.End(); this.npc1.body.Hover(false, true); DialogueManager.ChangeActorName("NPC 1", this.npc1.stats.GetDialogueName()); DialogueManager.ChangeActorName("Player", this.party.stats.displayName); if (this.npc1) { this.npc1.body.lookAtController.EndLookFast(false); } if (this.npc2) { this.npc2.body.lookAtController.EndLookFast(false); DialogueManager.ChangeActorName("NPC 2", this.npc2.stats.GetDialogueName()); } if (this.npc3) { this.npc1.body.lookAtController.EndLookFast(false); DialogueManager.ChangeActorName("NPC 3", this.npc3.stats.GetDialogueName()); } if (this.npc4) { this.npc4.body.lookAtController.EndLookFast(false); DialogueManager.ChangeActorName("NPC 4", this.npc4.stats.GetDialogueName()); } if (this.npc5) { this.npc5.body.lookAtController.EndLookFast(false); DialogueManager.ChangeActorName("NPC 5", this.npc5.stats.GetDialogueName()); } if (this.party) { this.party.body.lookAtController.EndLookFast(false); } this.SetTypewriter(this.npc1); base.StartCoroutine(this.DialogueDisplays()); } // Token: 0x060005AF RID: 1455 RVA: 0x0007BCC8 File Offset: 0x00079EC8 public void SetTypewriter(Character talkingCharacter) { if (!talkingCharacter) { return; } if (talkingCharacter.body.GetNeck()) { this.indicatorCharacter = talkingCharacter; } else { this.indicatorCharacter = null; } Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); DialogueManager.ChangeActorName("NPC 1", this.npc1.stats.GetDialogueName()); DialogueManager.ChangeActorName("Player", selectedDialogueCharacter.stats.GetName()); if (this.npc2) { DialogueManager.ChangeActorName("NPC 2", this.npc2.stats.GetDialogueName()); } if (this.npc3) { DialogueManager.ChangeActorName("NPC 3", this.npc3.stats.GetDialogueName()); } if (this.npc4) { DialogueManager.ChangeActorName("NPC 4", this.npc4.stats.GetDialogueName()); } if (this.npc5) { DialogueManager.ChangeActorName("NPC 5", this.npc5.stats.GetDialogueName()); } if (!Records.x.partyCamping && !this.setRotation && this.initiateNum != 15) { int num = this.initiateNum; } if (this.typewriter && this.vignettes.body) { this.typewriter.headAnimator = this.vignettes.body.headAnim; this.typewriter.headBone = this.vignettes.body.GetHead(); this.typewriter2.headBone = this.vignettes.body.GetHead(); } this.typewriter.soundVolume = Links.x.options.soundVolume; if (this.npc1.party) { this.typewriter.audioIndex = -1; this.typewriter2.audioIndex = -1; } else { this.typewriter.audioIndex = talkingCharacter.stats.voiceID; this.typewriter2.audioIndex = talkingCharacter.stats.voiceID; } this.typewriter2.headAnimator = this.typewriter.headAnimator; this.typewriter2.soundVolume = Links.x.options.soundVolume; this.currentTalking = talkingCharacter; if (this.puzzleActions) { DialogueManager.ChangeActorName("NPC 1", ""); } } // Token: 0x060005B0 RID: 1456 RVA: 0x0007BF29 File Offset: 0x0007A129 private IEnumerator DialogueDisplays() { yield return new WaitForSeconds(1E-05f); Shader.SetGlobalVector("_CinematicRevealPosition", new Vector3(-100000f, -100000f, -100000f)); this.SetTypewriter(this.npc1); if (!Records.x.partyCamping && !this.setRotation && this.initiateNum != 15 && this.initiateNum != 5) { int num; for (int i = 0; i < 3; i = num + 1) { yield return new WaitForSeconds(0.4f); num = i; } } if (Records.x.dialogue) { this.TurnOffMainCamera(); } this.journalNoteField.text = Links.x.journal.GetDialogueNoteText(); if (this.quickJournalAnimator.gameObject.activeInHierarchy) { this.quickJournalAnimator.Play("QuickNoteClose", 0, 1f); } for (int j = 0; j < this.allParty.Count; j++) { this.allParty[j].PlayIdle(); this.allParty[j].animator.SetBool("Idle", false); } yield break; } // Token: 0x060005B1 RID: 1457 RVA: 0x0007BF38 File Offset: 0x0007A138 public void StartTraining() { this.training = DialogueLua.GetVariable("Training").asBool; if (this.training) { this.trainingSkill = DialogueLua.GetVariable("TrainingSkill").asString; this.skillTraining.SetActive(true); this.SetTrainingIcon(this.trainingSkill); string text = Links.x.inventory.emeralds.ToString(); this.emeraldText.text = text; } } // Token: 0x060005B2 RID: 1458 RVA: 0x0007BFB6 File Offset: 0x0007A1B6 public void SkillTrainingOff() { this.skillTraining.SetActive(false); } // Token: 0x060005B3 RID: 1459 RVA: 0x0007BFC4 File Offset: 0x0007A1C4 public void NodeEnd() { this.typewriter.soundVolume = Links.x.options.soundVolume; if (this.playSmile) { this.playSmile = false; if (this.currentTalking && this.currentTalking.body.headAnim) { this.currentTalking.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Smile); } } if (this.playFrown) { this.playFrown = false; if (this.currentTalking && this.currentTalking.body.headAnim) { this.currentTalking.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Frown); } } if (this.playAngry) { this.playAngry = false; if (this.currentTalking && this.currentTalking.body.headAnim) { this.currentTalking.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Angry); } } if (this.playShock) { this.playShock = false; if (this.currentTalking && this.currentTalking.body.headAnim) { this.currentTalking.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Shock); } } this.npcTalking = false; } // Token: 0x060005B4 RID: 1460 RVA: 0x0007C119 File Offset: 0x0007A319 private IEnumerator ConversationDelay() { yield return new WaitForSeconds(0.01f); if (this.currentTalking && this.currentTalking.body.headAnim) { this.currentTalking.body.headAnim.moveHead = true; } if (Links.x.joy) { while (Links.x.gameplay.actionDown) { yield return null; } Links.x.hudControl.JoyBox(false); EventSystem.current.SetSelectedGameObject(null); } yield break; } // Token: 0x060005B5 RID: 1461 RVA: 0x0007C128 File Offset: 0x0007A328 public void SetPortraitColorGray() { Color color = new Color(0.3f, 0.3f, 0.3f, 1f); int num = this.talkingParty.IndexOf(this.justResponded); for (int i = 0; i < this.talkingParty.Count; i++) { if (num != i) { if (i == 0) { this.portrait1.color = color; } if (i == 1) { this.portrait2.color = color; } if (i == 2) { this.portrait3.color = color; } if (i == 3) { this.portrait4.color = color; } } } } // Token: 0x060005B6 RID: 1462 RVA: 0x0007C1BB File Offset: 0x0007A3BB public void Exclamation() { this.vignettes.SetFont(this.npc1.stats.race, true); } // Token: 0x060005B7 RID: 1463 RVA: 0x0007C1DC File Offset: 0x0007A3DC public void OnConversationLine(Subtitle subtitle) { this.vignettes.newLineAnimation = false; this.prevHash = this.vignettes.AnimatorHash(); this.skippingSequence = false; this.sequence = subtitle.sequence; this.npcTalking = true; this.responsesOn = false; Links.x.hudControl.JoyBox(false); EventSystem.current.SetSelectedGameObject(null); this.SetPortraitColorGray(); if (this.messagedOn == 2) { this.message1.SetActive(false); this.message2.SetActive(false); this.message3.SetActive(false); this.message4.SetActive(false); this.messageText1.text = ""; this.messageText2.text = ""; this.messageText3.text = ""; this.messageText4.text = ""; } this.messagedOn = 0; if (this.npc1) { this.vignettes.SetFont(this.npc1.stats.race, false); } if (this.npc1) { if (this.npc1.dead || this.npc1.stunned || !this.npc1.IsSentient()) { DialogueLua.SetVariable("NPCAlive", false); } this.npc1.animator.SetBool("Idle", false); base.StartCoroutine(this.ConversationDelay()); } if (this.respondCharacter && (this.respondCharacter.dead || this.respondCharacter.stunned || !this.respondCharacter.IsSentient())) { DialogueLua.SetVariable("ResponderAlive", false); } if (!this.updatedDialogueActor) { CharacterInfo.RegisterActorTransform("Dialogue", base.transform); this.updatedDialogueActor = true; } if (Time.realtimeSinceStartup > 3f + this.lastZoomChange) { this.lastZoomChange = Time.realtimeSinceStartup; } } // Token: 0x060005B8 RID: 1464 RVA: 0x0007C3DC File Offset: 0x0007A5DC public void DialogueEndVariables(bool doNotTurnOnHud) { Records.x.dialogue = false; if (!Links.x.spellcrafting.open && !Links.x.characterSheet.open) { this.TurnOnMainCamera(); } if (!doNotTurnOnHud) { Records.x.RemoveControls(false); } for (int i = 0; i < this.allParty.Count; i++) { this.allParty[i].animator.SetBool("Idle", true); } if (this.npc1) { this.npc1.PlayIdle(); if (this.npc2) { this.npc2.PlayIdle(); } if (this.npc3) { this.npc3.PlayIdle(); } if (this.npc4) { this.npc4.PlayIdle(); } if (this.npc1.stats.xmlName != "LazureScribeCC" && this.npc1.stats.xmlName != "Pavura") { Records.x.StartUIFade(false, false); } Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true); Links.x.rtsCamera.Zoom(false, "Dialogue"); if (this.npc1.stats.xmlName == "Pavura") { Debug.Log("End Pavura"); Links.x.combat.gameObject.AddComponent().EndPavura(); } } for (int j = 0; j < this.partyList.Count; j++) { if (this.partyList[j] && !this.partyList[j].isBoro && !this.partyList[j].summoned) { Links.x.renderPortraits.PlayAnimation(this.partyList[j], "", "Look Around Less"); } } Links.x.hudControl.cinematicQuips.alpha = 1f; } // Token: 0x060005B9 RID: 1465 RVA: 0x0007C60D File Offset: 0x0007A80D public void EndConversation() { base.StartCoroutine(this.End()); } // Token: 0x060005BA RID: 1466 RVA: 0x0007C61C File Offset: 0x0007A81C private IEnumerator End() { if (Links.x.joy) { yield return new WaitForSecondsRealtime(0.15f); } this.typewriter.headAnimator = null; DialogueLua.SetVariable("Training", false); this.talkingIndicator.gameObject.SetActive(false); this.indicatorCharacter = null; Character character = this.npc1; if (!Links.x.forfeits.on && !Records.x.inMenus) { Links.x.hudControl.JoyBox(false); } if (this.npc1) { this.currentTalking = this.npc1; this.SetNone(); } if (this.npc2) { this.currentTalking = this.npc2; this.SetNone(); } if (this.npc3) { this.currentTalking = this.npc3; this.SetNone(); } if (this.npc4) { this.currentTalking = this.npc4; this.SetNone(); } if (this.npc5) { this.currentTalking = this.npc5; this.SetNone(); } DialogueLua.SetVariable("VignetteAnimController", ""); this.vignettes.animController = ""; if (this.npc1.stats.xmlName.Contains("LazureScribe") && QuestLog.GetQuestState("CharacterCreation") == QuestState.Active) { QuestLog.SetQuestState("CharacterCreation", QuestState.Success); } if (this.npc1.stats.xmlName == "Pavura") { this.doNotTurnOnHud = true; } if (Links.x.creation || this.openingCreation) { this.doNotTurnOnHud = true; } this.openingCreation = false; Links.x.journal.UpdateDialogueNote(); if (this.startCombat) { this.SetHostileInstant(character); } this.startCombat = false; this.typewriter.lookAt = null; if (this.quickJournalAnimator.gameObject.activeInHierarchy) { this.quickJournalAnimator.Play("QuickNoteClose", 0, 1f); } this.DialogueEndVariables(this.doNotTurnOnHud); for (int i = 0; i < this.allParty.Count; i++) { this.currentTalking = this.allParty[i]; this.SetNone(); } this.initiateNum = 0; Records.x.SetTypingState(false); if (!this.doNotTurnOnHud && !Links.x.characterSheet.open && !Links.x.forfeits.on) { Links.x.hudControl.ChangeHudVisibility(true, true); } if (this.fx.gameObject.activeSelf) { this.fx.gameObject.SetActive(false); } bool partyCamping = Records.x.partyCamping; this.giveXP = DialogueLua.GetVariable("GiveXP").asBool; if (this.giveXP) { Links.x.questEnd.QuestEnded(DialogueLua.GetVariable("QuestXP").asString); this.giveXP = false; DialogueLua.SetVariable("GiveXP", false); } this.puzzleActions = null; Links.x.cameraEffects.ToggleObscurance(); this.vignettes.End(); this.doNotTurnOnHud = false; if (!Links.x.spellcrafting.open && !Links.x.characterSheet.open) { this.TurnOnMainCamera(); } yield break; } // Token: 0x060005BB RID: 1467 RVA: 0x0007C62C File Offset: 0x0007A82C public bool GiveXP() { return DialogueLua.GetVariable("GiveXP").asBool; } // Token: 0x060005BC RID: 1468 RVA: 0x0007C64C File Offset: 0x0007A84C public void SwitchNPC() { string text = DialogueLua.GetVariable("Vignette").asString; int asInt = DialogueLua.GetVariable("CurrentNPC").asInt; Character character = this.npc1; if (asInt == 1) { character = this.npc1; } if (asInt == 2) { character = this.npc2; } if (asInt == 3) { character = this.npc3; } if (asInt == 4) { character = this.npc4; } if (asInt == 5) { character = this.npc5; } if (asInt == -1) { character = this.party; } if (character) { this.vignettes.End(); if (text == "") { text = "Vignette Example"; } string asString = DialogueLua.GetVariable("VignetteAnimController").asString; this.vignettes.animController = asString; this.vignettes.Setup(character, text); if (this.vignettes.body) { CharacterInfo.RegisterActorTransform("VignetteAnimator", this.vignettes.body.gameObject.transform); if (this.typewriter) { this.typewriter.headAnimator = this.vignettes.body.headAnim; this.typewriter.headBone = this.vignettes.body.GetHead(); this.typewriter2.headBone = this.vignettes.body.GetHead(); } } if (this.npc1.party) { this.typewriter.audioIndex = -1; this.typewriter2.audioIndex = -1; return; } this.typewriter.audioIndex = character.stats.voiceID; this.typewriter2.audioIndex = character.stats.voiceID; } } // Token: 0x060005BD RID: 1469 RVA: 0x0007C7FC File Offset: 0x0007A9FC public void SheepBackToBeach() { Links.x.gaia.boroControls.BackToBeach(); } // Token: 0x060005BE RID: 1470 RVA: 0x0007C812 File Offset: 0x0007AA12 private IEnumerator Camp() { Links.x.gaia.boro.stats.model = "Boro_orange_packed_M_Generic"; Links.x.gaia.boro.SetupBody(); Links.x.gaia.boro.SetMeshState(true); Links.x.gaia.boro.PlayAnimation("Idle", 0f); Links.x.gaia.boro.tr.position = Links.x.gaia.restingBoat.transform.position; Links.x.gaia.boro.SetRotation(Links.x.gaia.restingBoat.transform.rotation, false, true); Links.x.gaia.restingBoat.transform.position = Links.x.gaia.boro.tr.position; Links.x.gaia.restingBoat.SetActive(false); List previousNodes = Links.x.rest.previousNodes; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && this.partyList[i].node != null) { this.partyList[i].tr.position = (Vector3)previousNodes[i].position; this.partyList[i].FirstPosition(previousNodes[i]); this.partyList[i].PlayIdle(); } } Records.x.StartUIFade(false, true); yield return new WaitForSeconds(0.2f); Links.x.diorama.EnemiesInCampAlert(); Records.x.partyCamping = false; yield break; } // Token: 0x060005BF RID: 1471 RVA: 0x0007C821 File Offset: 0x0007AA21 public void UpdateToFace(Character faceThisCharacter) { if (!faceThisCharacter) { return; } this.SetTypewriter(faceThisCharacter); this.setRotation = true; } // Token: 0x060005C0 RID: 1472 RVA: 0x0007C83C File Offset: 0x0007AA3C public Character GetSelectedDialogueCharacter() { string asString = DialogueLua.GetVariable("SelectedParty").asString; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i].stats.GetName() == asString) { return this.partyList[i]; } } return Links.x.main; } // Token: 0x060005C1 RID: 1473 RVA: 0x0007C8A8 File Offset: 0x0007AAA8 public void SetRaces() { string asString = DialogueLua.GetVariable("Race").asString; int num = 0; string text = ""; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned) { float sqrMagnitude = (this.partyList[i].tr.position - this.npc1.tr.position).sqrMagnitude; if (this.partyList[i].stats.race == asString) { if (num == 0) { text = this.partyList[i].stats.GetName(); } else { text += " and "; text += this.partyList[i].stats.GetName(); } } } } DialogueLua.SetVariable("RaceNames", text); } // Token: 0x060005C2 RID: 1474 RVA: 0x0007C9DC File Offset: 0x0007ABDC public void GetRaceSingle() { string asString = DialogueLua.GetVariable("Race").asString; string text = ""; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned && this.partyList[i].stats.race == asString) { text = this.partyList[i].stats.GetName(); break; } } DialogueLua.SetVariable("RaceNames", text); } // Token: 0x060005C3 RID: 1475 RVA: 0x0007CA98 File Offset: 0x0007AC98 public void GetMusicalParty() { float num = 0f; Character character = null; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned) { float num2 = this.partyList[i].stats.HighestMusicSkill(); if (num2 > num && num2 >= 40f) { character = this.partyList[i]; } } } if (character) { DialogueLua.SetVariable("MusicPartyList", character.stats.GetName()); return; } DialogueLua.SetVariable("MusicPartyList", ""); } // Token: 0x060005C4 RID: 1476 RVA: 0x0007CB5C File Offset: 0x0007AD5C public void GetAllSneaking() { bool flag = true; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned && this.partyList[i].mainSelected && !this.partyList[i].body.sneaking) { flag = false; } } DialogueLua.SetVariable("AllSneaking", flag); } // Token: 0x060005C5 RID: 1477 RVA: 0x0007CBF8 File Offset: 0x0007ADF8 public void GetHighSkill() { int asInt = DialogueLua.GetVariable("SkillToCheck").asInt; float num = 0f; Character character = null; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned) { float skill = this.partyList[i].stats.GetSkill(asInt); if (skill > num && skill >= 40f) { character = this.partyList[i]; } } } if (character) { DialogueLua.SetVariable("HighSkillParty", character.stats.GetName()); return; } DialogueLua.SetVariable("HighSkillParty", ""); } // Token: 0x060005C6 RID: 1478 RVA: 0x0007CCDC File Offset: 0x0007AEDC public void GetGlam() { float num = 0f; Character character = null; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned) { float num2 = (float)this.partyList[i].GetGlam(); if (num2 > num && num2 >= 4f) { character = this.partyList[i]; } } } if (character) { DialogueLua.SetVariable("HighSkillParty", character.stats.GetName()); return; } DialogueLua.SetVariable("HighSkillParty", ""); } // Token: 0x060005C7 RID: 1479 RVA: 0x0007CD9C File Offset: 0x0007AF9C public void SwitchSelectedToHighStat() { string asString = DialogueLua.GetVariable("Stat").asString; string asString2 = DialogueLua.GetVariable("High" + asString + "Party").asString; Debug.Log(asString2); if (asString2 != "") { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i].stats.GetName() == asString2) { Character character = this.partyList[i]; Debug.Log(character); this.party = character; DialogueLua.SetVariable("SelectedParty", character.stats.GetName()); DialogueLua.SetVariable("SelectedPartyRace", character.stats.race); CharacterInfo.RegisterActorTransform("Player", this.party.tr); CharacterInfo.RegisterActorTransform("PlayerAnimator", this.party.body.transform); } } } } // Token: 0x060005C8 RID: 1480 RVA: 0x0007CEA8 File Offset: 0x0007B0A8 public void SwitchSelectedToHighSkill() { string asString = DialogueLua.GetVariable("HighSkillParty").asString; this.SwitchToParty(asString); } // Token: 0x060005C9 RID: 1481 RVA: 0x0007CED0 File Offset: 0x0007B0D0 public void SwitchSelectedToHighMusic() { string asString = DialogueLua.GetVariable("MusicPartyList").asString; this.SwitchToParty(asString); } // Token: 0x060005CA RID: 1482 RVA: 0x0007CEF8 File Offset: 0x0007B0F8 public void SwitchToTraitCharacter() { string asString = DialogueLua.GetVariable("TraitParty").asString; this.SwitchToParty(asString); } // Token: 0x060005CB RID: 1483 RVA: 0x0007CF20 File Offset: 0x0007B120 public void SwitchToPaganCharacter() { string asString = DialogueLua.GetVariable("PaganPartyMember").asString; this.SwitchToParty(asString); } // Token: 0x060005CC RID: 1484 RVA: 0x0007CF48 File Offset: 0x0007B148 public void SwitchToParty(string partyName) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i].stats.GetName() == partyName) { Character character = this.partyList[i]; this.party = character; DialogueLua.SetVariable("SelectedParty", character.stats.GetName()); DialogueLua.SetVariable("SelectedPartyRace", character.stats.race); CharacterInfo.RegisterActorTransform("Player", this.party.tr); CharacterInfo.RegisterActorTransform("PlayerAnimator", this.party.body.transform); } } } // Token: 0x060005CD RID: 1485 RVA: 0x0007D000 File Offset: 0x0007B200 public void UpdateSelectedParty() { this.party = this.GetSelectedDialogueCharacter(); string text = "setting selected: "; Character character = this.party; Debug.Log(text + ((character != null) ? character.ToString() : null)); CharacterInfo.RegisterActorTransform("Player", this.party.tr); CharacterInfo.RegisterActorTransform("PlayerAnimator", this.party.body.transform); DialogueManager.ChangeActorName("Player", this.party.stats.displayName); } // Token: 0x060005CE RID: 1486 RVA: 0x0007D084 File Offset: 0x0007B284 public void CheckForItemDurability() { string asString = DialogueLua.GetVariable("HasItemInBagName").asString; int asInt = DialogueLua.GetVariable("HasItemInBagDurability").asInt; int id = Links.x.library.GetInvRowFromName(asString)._ID; int num = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro) { int num2 = this.partyList[i].HasItem(id); if (this.partyList[i].GetDurabilityNum(num2 / 2).x >= (float)asInt && num2 != -1) { num++; } } } } if (num >= 1) { DialogueLua.SetVariable("HasItemInBagWithDurability", true); return; } DialogueLua.SetVariable("HasItemInBagWithDurability", false); } // Token: 0x060005CF RID: 1487 RVA: 0x0007D194 File Offset: 0x0007B394 public void CheckForNPCItemSpecial(string questName) { if (questName == "D5_Dura") { bool flag = false; if (this.npc1.HowManyItemsInBag(Links.x.library.GetInvRowFromName("Ax1")._ID, 0) > 0) { flag = true; } if (this.npc1.HowManyItemsInBag(Links.x.library.GetInvRowFromName("Sword1")._ID, 0) > 0) { flag = true; } if (this.npc1.HowManyItemsInBag(Links.x.library.GetInvRowFromName("Blowgun1")._ID, 0) > 0) { flag = true; } DialogueLua.SetVariable("NPCHasItemInBag", flag); } } // Token: 0x060005D0 RID: 1488 RVA: 0x0007D244 File Offset: 0x0007B444 public void CheckForNPCItem() { string asString = DialogueLua.GetVariable("NPCHasItemInBagName").asString; int asInt = DialogueLua.GetVariable("NPCHasItemInBagAmount").asInt; int id = Links.x.library.GetInvRowFromName(asString)._ID; int num = 0; if (id > -1) { int num2 = this.npc1.HowManyItemsInBag(id, 0); num += num2; } if (num >= asInt) { DialogueLua.SetVariable("NPCHasItemInBag", true); return; } DialogueLua.SetVariable("NPCHasItemInBag", false); } // Token: 0x060005D1 RID: 1489 RVA: 0x0007D2D0 File Offset: 0x0007B4D0 public void CheckForItem() { string asString = DialogueLua.GetVariable("HasItemInBagName").asString; int asInt = DialogueLua.GetVariable("HasItemInBagAmount").asInt; int id = Links.x.library.GetInvRowFromName(asString)._ID; int num = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro) { int num2 = this.partyList[i].HowManyItemsInBag(id, 0); num += num2; } } } if (num >= asInt) { DialogueLua.SetVariable("HasItemInBag", true); return; } DialogueLua.SetVariable("HasItemInBag", false); } // Token: 0x060005D2 RID: 1490 RVA: 0x0007D3B8 File Offset: 0x0007B5B8 public void CheckForItemThree() { string asString = DialogueLua.GetVariable("HasItemInBagName").asString; string asString2 = DialogueLua.GetVariable("HasItemInBagNameB").asString; string asString3 = DialogueLua.GetVariable("HasItemInBagNameC").asString; int id = Links.x.library.GetInvRowFromName(asString)._ID; int id2 = Links.x.library.GetInvRowFromName(asString2)._ID; int id3 = Links.x.library.GetInvRowFromName(asString3)._ID; int num = 0; int num2 = 0; int num3 = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro && this.partyList[i].HowManyItemsInBag(id, 0) >= 1) { num++; } } } if (id2 > -1) { for (int j = 0; j < this.partyList.Count; j++) { if (this.partyList[j] && !this.partyList[j].summoned && !this.partyList[j].isBoro && this.partyList[j].HowManyItemsInBag(id2, 0) >= 1) { num2++; } } } if (id3 > -1) { for (int k = 0; k < this.partyList.Count; k++) { if (this.partyList[k] && !this.partyList[k].summoned && !this.partyList[k].isBoro && this.partyList[k].HowManyItemsInBag(id3, 0) >= 1) { num3++; } } } if (num >= 1 && num2 >= 1 && num3 >= 1) { DialogueLua.SetVariable("HasItemInBag", true); return; } DialogueLua.SetVariable("HasItemInBag", false); } // Token: 0x060005D3 RID: 1491 RVA: 0x0007D5E8 File Offset: 0x0007B7E8 public void CheckHasEffect() { bool flag = false; string asString = DialogueLua.GetVariable("HasEffectName").asString; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && this.partyList[i].stats.HasEffect(asString)) { flag = true; } } if (flag) { DialogueLua.SetVariable("HasEffect", true); return; } DialogueLua.SetVariable("HasEffect", false); } // Token: 0x060005D4 RID: 1492 RVA: 0x0007D688 File Offset: 0x0007B888 public void CheckForItemIntercession() { string asString = DialogueLua.GetVariable("HasItemInBagName").asString; int asInt = DialogueLua.GetVariable("HasItemInBagAmount").asInt; int asInt2 = DialogueLua.GetVariable("HasItemInBagIntercessionA").asInt; int asInt3 = DialogueLua.GetVariable("HasItemInBagIntercessionB").asInt; int num = asInt; int id = Links.x.library.GetInvRowFromName(asString)._ID; int num2 = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro && this.partyList[i].HowManyItemsInBag(id, 0) > 0) { int num3 = this.partyList[i].HasItem(id); float x = this.partyList[i].GetSocketNum(num3).x; if (x == (float)asInt2 || (x == (float)asInt3 && asInt3 != 0)) { num2++; Debug.Log(num2); } } } } if (num2 >= num) { DialogueLua.SetVariable("HasItemInBag", true); return; } DialogueLua.SetVariable("HasItemInBag", false); } // Token: 0x060005D5 RID: 1493 RVA: 0x0007D7F8 File Offset: 0x0007B9F8 public bool PartyHasItem(string itemName, double itemAmount) { int num = (int)itemAmount; int id = Links.x.library.GetInvRowFromName(itemName)._ID; int num2 = 0; int num3 = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro) { int num4 = this.partyList[i].HowManyItemsInBag(id, num3); num2 += num4; } } } return num2 >= num; } // Token: 0x060005D6 RID: 1494 RVA: 0x0007D8A0 File Offset: 0x0007BAA0 public bool PartyHasItemWithIntercession(string itemName, double intercessionNeeded) { int id = Links.x.library.GetInvRowFromName(itemName)._ID; int num = 0; int num2 = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && num == 0 && !this.partyList[i].summoned && !this.partyList[i].isBoro && this.partyList[i].HowManyItemsInBag(id, num2) > 0) { int num3 = this.partyList[i].HasItem(id); if ((double)this.partyList[i].GetSocketNum(num3).x != intercessionNeeded) { num = 0; } else { num = 1; } } } } return num > 0; } // Token: 0x060005D7 RID: 1495 RVA: 0x0007D97C File Offset: 0x0007BB7C public bool PartyHasItemWithDurability(string itemName, double durabilityNeeded) { int id = Links.x.library.GetInvRowFromName(itemName)._ID; int num = 0; int num2 = 0; if (id > -1) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && num == 0 && !this.partyList[i].summoned && !this.partyList[i].isBoro && this.partyList[i].HowManyItemsInBag(id, num2) > 0) { int num3 = this.partyList[i].HasItem(id); float x = this.partyList[i].GetDurabilityNum(num3 / 2).x; Debug.Log(num3.ToString() + " " + x.ToString()); if ((double)x < durabilityNeeded) { num = 0; } else { num = 1; } } } } return num > 0; } // Token: 0x060005D8 RID: 1496 RVA: 0x0007DA84 File Offset: 0x0007BC84 public bool PartyHasEffect(string effectName) { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].summoned && !this.partyList[i].isBoro && this.partyList[i].stats.HasEffect(effectName)) { return true; } } return false; } // Token: 0x060005D9 RID: 1497 RVA: 0x0007DAFC File Offset: 0x0007BCFC public bool EveryoneLearnedSong(string songName) { bool flag = true; for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].stats.HasAbility(songName)) { return false; } } return flag; } // Token: 0x060005DA RID: 1498 RVA: 0x0007DB40 File Offset: 0x0007BD40 public void CheckSongBooks() { for (int i = 0; i < this.talkingParty.Count; i++) { if (this.talkingParty[i]) { if (this.talkingParty[i].stats.HasSongbook()) { if (i == 0) { DialogueLua.SetVariable("Party1NeedsBook", false); } if (i == 1) { DialogueLua.SetVariable("Party2NeedsBook", false); } if (i == 2) { DialogueLua.SetVariable("Party3NeedsBook", false); } if (i == 3) { DialogueLua.SetVariable("Party4NeedsBook", false); } } else { if (i == 0) { DialogueLua.SetVariable("Party1NeedsBook", true); } if (i == 1) { DialogueLua.SetVariable("Party2NeedsBook", true); } if (i == 2) { DialogueLua.SetVariable("Party3NeedsBook", true); } if (i == 3) { DialogueLua.SetVariable("Party4NeedsBook", true); } } } } } // Token: 0x060005DB RID: 1499 RVA: 0x0007DC38 File Offset: 0x0007BE38 public void CheckSpellBooks() { for (int i = 0; i < this.talkingParty.Count; i++) { if (this.talkingParty[i]) { if (this.talkingParty[i].stats.HasSpellbook()) { if (i == 0) { DialogueLua.SetVariable("Party1NeedsBook", false); } if (i == 1) { DialogueLua.SetVariable("Party2NeedsBook", false); } if (i == 2) { DialogueLua.SetVariable("Party3NeedsBook", false); } if (i == 3) { DialogueLua.SetVariable("Party4NeedsBook", false); } } else { if (i == 0) { DialogueLua.SetVariable("Party1NeedsBook", true); } if (i == 1) { DialogueLua.SetVariable("Party2NeedsBook", true); } if (i == 2) { DialogueLua.SetVariable("Party3NeedsBook", true); } if (i == 3) { DialogueLua.SetVariable("Party4NeedsBook", true); } } } } } // Token: 0x060005DC RID: 1500 RVA: 0x0007DD30 File Offset: 0x0007BF30 public bool CharacterNeedsSongbook(double index) { int num = (int)index; for (int i = 0; i < this.talkingParty.Count; i++) { if (this.talkingParty[i] && num == i + 1) { return !this.talkingParty[i].stats.HasSongbook(); } } return false; } // Token: 0x060005DD RID: 1501 RVA: 0x0007DD8C File Offset: 0x0007BF8C public bool CharacterNeedsSpellbook(double index) { int num = (int)index; bool flag = false; for (int i = 0; i < this.talkingParty.Count; i++) { if (this.talkingParty[i] && num == i + 1) { return !this.talkingParty[i].stats.HasSpellbook(); } } return flag; } // Token: 0x060005DE RID: 1502 RVA: 0x0007DDEC File Offset: 0x0007BFEC public bool CharacterCanLearnSong(string songName, double index) { int num = (int)index; bool flag = false; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && num == i + 1 && !this.partyList[i].stats.HasAbility(songName)) { return true; } } return flag; } // Token: 0x060005DF RID: 1503 RVA: 0x0007DE4C File Offset: 0x0007C04C public bool EveryoneLearnedSpell(string spellName) { bool flag = true; for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].stats.HasPaganKnowledge(spellName)) { return false; } } return flag; } // Token: 0x060005E0 RID: 1504 RVA: 0x0007DE90 File Offset: 0x0007C090 public bool CharacterCanLearnSpell(string spellName, double index) { int num = (int)index; bool flag = false; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && num == i + 1 && !this.partyList[i].stats.HasPaganKnowledge(spellName)) { return true; } } return flag; } // Token: 0x060005E1 RID: 1505 RVA: 0x0007DEEF File Offset: 0x0007C0EF public bool EveryoneNear() { return true; } // Token: 0x060005E2 RID: 1506 RVA: 0x0007DEF2 File Offset: 0x0007C0F2 public void AddToParty(string xmlName) { Debug.Log(xmlName + " is joining"); this.npc1.AddToParty(); base.StartCoroutine(this.Add()); } // Token: 0x060005E3 RID: 1507 RVA: 0x0007DF1C File Offset: 0x0007C11C private IEnumerator Add() { yield return new WaitForSecondsRealtime(0.1f); if (this.npc2) { this.npc2.AddToParty(); } yield break; } // Token: 0x060005E4 RID: 1508 RVA: 0x0007DF2C File Offset: 0x0007C12C public void OpenMerchantScreen() { Links.x.characterSheet.merchant = true; Links.x.characterSheet.blacksmith = false; Links.x.characterSheet.pagan = false; Links.x.merchant.isBoat = false; Links.x.merchant.merchantCharacter = this.npc1; Links.x.characterSheet.peddler = this.npc1.stats.xmlName; Links.x.merchant.SetUpItems(); Links.x.characterSheet.StartMenu(false); } // Token: 0x060005E5 RID: 1509 RVA: 0x0007DFCC File Offset: 0x0007C1CC public void OpenMerchantScreen(Character peddler) { } // Token: 0x060005E6 RID: 1510 RVA: 0x0007DFD0 File Offset: 0x0007C1D0 public void OpenBlacksmithScreen() { Links.x.characterSheet.merchant = false; Links.x.characterSheet.blacksmith = true; Links.x.characterSheet.pagan = false; Links.x.characterSheet.repairCharacter = this.npc1; Links.x.characterSheet.StartMenu(false); } // Token: 0x060005E7 RID: 1511 RVA: 0x0007E034 File Offset: 0x0007C234 public void OpenPaganScreen() { Links.x.characterSheet.merchant = false; Links.x.characterSheet.blacksmith = false; Links.x.characterSheet.pagan = true; Links.x.characterSheet.repairCharacter = this.npc1; Links.x.characterSheet.StartMenu(false); } // Token: 0x060005E8 RID: 1512 RVA: 0x0007E096 File Offset: 0x0007C296 public void OpenSpellcrafting() { Links.x.spellcrafting.StartMenu(false, Links.x.main); } // Token: 0x060005E9 RID: 1513 RVA: 0x0007E0B2 File Offset: 0x0007C2B2 public void Rest() { base.StartCoroutine(this.RestWait()); } // Token: 0x060005EA RID: 1514 RVA: 0x0007E0C1 File Offset: 0x0007C2C1 private IEnumerator RestWait() { while (Records.x.dialogue) { yield return null; } Links.x.rest.StartMenu(false); yield break; } // Token: 0x060005EB RID: 1515 RVA: 0x0007E0C9 File Offset: 0x0007C2C9 public void SetSail() { Links.x.gaia.boat.GetOnWater(); } // Token: 0x060005EC RID: 1516 RVA: 0x0007E0E0 File Offset: 0x0007C2E0 public void OpenBags() { Links.x.characterSheet.merchant = true; Links.x.characterSheet.blacksmith = false; Links.x.characterSheet.pagan = false; Links.x.merchant.isBoat = false; Links.x.merchant.merchantCharacter = this.npc1; Links.x.characterSheet.peddler = this.npc1.stats.xmlName; Links.x.merchant.SetUpItems(); Links.x.characterSheet.StartMenu(false); } // Token: 0x060005ED RID: 1517 RVA: 0x0007E180 File Offset: 0x0007C380 public void AddQuestToTimer() { string asString = DialogueLua.GetVariable("Quest").asString; string asString2 = DialogueLua.GetVariable("QuestFrom").asString; string asString3 = DialogueLua.GetVariable("QuestTo").asString; int asInt = DialogueLua.GetVariable("HourDelay").asInt; bool flag = false; if (asInt == -1) { flag = true; } Records.x.AddQuestToTimer(asString, (float)asInt, asString2, asString3, flag); } // Token: 0x060005EE RID: 1518 RVA: 0x0007E1F8 File Offset: 0x0007C3F8 public void AddQuestToTimerConstant() { string asString = DialogueLua.GetVariable("Quest").asString; string asString2 = DialogueLua.GetVariable("QuestFrom").asString; string asString3 = DialogueLua.GetVariable("QuestTo").asString; int asInt = DialogueLua.GetVariable("HourDelay").asInt; Records.x.AddQuestToTimer(asString, (float)asInt, asString2, asString3, true); } // Token: 0x060005EF RID: 1519 RVA: 0x0007E265 File Offset: 0x0007C465 public void CheckQuestSwaps() { Links.x.diorama.CheckQuestChange(); } // Token: 0x060005F0 RID: 1520 RVA: 0x0007E276 File Offset: 0x0007C476 public void StatPass() { this.ShowStatCheck(true); } // Token: 0x060005F1 RID: 1521 RVA: 0x0007E27F File Offset: 0x0007C47F public void StatFail() { this.ShowStatCheck(false); } // Token: 0x060005F2 RID: 1522 RVA: 0x0007E288 File Offset: 0x0007C488 public void ShowStatCheck(bool pass) { string asString = DialogueLua.GetVariable("StatCheckName").asString; string asString2 = DialogueLua.GetVariable("StatCheckCharacterName").asString; Debug.Log("Stat check show: " + asString2 + " " + asString); Character character = Links.x.main; if (asString2 != "") { for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i].stats.GetName() == asString2) { character = this.partyList[i]; if (asString2 != DialogueLua.GetVariable("SelectedParty").asString) { this.SwitchToParty(asString2); } } } } this.StatCheckVisuals(asString, character, pass, 0f); } // Token: 0x060005F3 RID: 1523 RVA: 0x0007E35F File Offset: 0x0007C55F public void StatCheckVisualsOutsideDialogue(string statCheckName, Character statCheckCharacter, bool pass, float heightoffset) { base.StartCoroutine(this.StatCheckVisualsDelay(statCheckName, statCheckCharacter, pass, heightoffset)); } // Token: 0x060005F4 RID: 1524 RVA: 0x0007E373 File Offset: 0x0007C573 private IEnumerator StatCheckVisualsDelay(string statCheckName, Character statCheckCharacter, bool pass, float heightoffset) { this.StatCheckVisuals(statCheckName, statCheckCharacter, pass, heightoffset); yield return new WaitForSecondsRealtime(0.2f); yield break; } // Token: 0x060005F5 RID: 1525 RVA: 0x0007E3A0 File Offset: 0x0007C5A0 public void StatCheckVisuals(string statCheckName, Character statCheckCharacter, bool pass, float heightoffset) { if (pass && Records.x.dialogue) { MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, "DialogueStatPass", null); } } // Token: 0x060005F6 RID: 1526 RVA: 0x0007E3EC File Offset: 0x0007C5EC public void PlayStatPassSound() { MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, "DialogueStatPass", null); Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); this.giveXPAmt = DialogueLua.GetVariable("XP").asInt; if (this.giveXPAmt == 0) { this.giveXPAmt = 15; } selectedDialogueCharacter.stats.AddXP(this.giveXPAmt, selectedDialogueCharacter, false); this.str.Clear(); this.str.Append("+"); this.str.Append(this.giveXPAmt); this.str.Append(" XP"); Debug.Log(selectedDialogueCharacter); int num = this.talkingParty.IndexOf(selectedDialogueCharacter); if (num == 0) { this.message1.SetActive(true); this.messageImg1.enabled = false; this.messageText1.text = this.str.ToString(); } if (num == 1) { this.message2.SetActive(true); this.messageImg2.enabled = false; this.messageText2.text = this.str.ToString(); } if (num == 2) { this.message3.SetActive(true); this.messageImg3.enabled = false; this.messageText3.text = this.str.ToString(); } if (num == 3) { this.message4.SetActive(true); this.messageImg4.enabled = false; this.messageText4.text = this.str.ToString(); } this.messagedOn = 0; this.str.Clear(); this.str.Append(selectedDialogueCharacter.stats.GetName()); this.str.Append(" gained "); this.str.Append(this.giveXPAmt); this.str.Append(" XP"); Links.x.gameFeed.AddFeed(this.str.ToString()); } // Token: 0x060005F7 RID: 1527 RVA: 0x0007E5F8 File Offset: 0x0007C7F8 private IEnumerator Fade() { int hourCount = DialogueLua.GetVariable("HourDelay").asInt; Links.x.gaia.PlayFade("Out", "Scaled"); yield return new WaitForSeconds(1.5f); Links.x.cameraEffects.immediateTransition = true; Links.x.sensory.SetMagicaClothState(false); int v = hourCount; int num; for (int i = 0; i < v; i = num + 1) { Links.x.gameplay.AddHours(); yield return new WaitForSecondsRealtime(0.05f); num = i; } Links.x.sensory.SetMagicaClothState(true); this.waited = true; yield return new WaitForSeconds(1.4f); Links.x.gaia.PlayFade("In", "Scaled"); this.SetSkipKey(true); yield break; } // Token: 0x060005F8 RID: 1528 RVA: 0x0007E608 File Offset: 0x0007C808 public void PayEmeralds() { this.SetSkipKey(false); int asInt = DialogueLua.GetVariable("Cost").asInt; if (asInt > 0) { Links.x.inventory.emeralds -= asInt; MasterAudio.PlaySoundAndForget("Inventory", 0.6f, new float?(1f), 1f, "Jewelry drop", null); } this.SetSkipKey(true); } // Token: 0x060005F9 RID: 1529 RVA: 0x0007E680 File Offset: 0x0007C880 public void Cafera() { this.QuestEffectParty("Cafera", true); MasterAudio.PlaySoundAndForget("Cafera", 1f, new float?(1f), 0f, "", null); } // Token: 0x060005FA RID: 1530 RVA: 0x0007E6C8 File Offset: 0x0007C8C8 public void PlaySong(string num) { int num2; int.TryParse(num, out num2); num2--; Character character = this.talkingParty[num2]; bool flag = false; string[] array = new string[5]; array[0] = num; array[1] = " "; int num3 = 2; Character character2 = character; array[num3] = ((character2 != null) ? character2.ToString() : null); array[3] = " "; array[4] = character.HasInstrument().ToString(); Debug.Log(string.Concat(array)); string text = "ChoraSinging"; if (character.HasInstrument()) { bool flag2 = false; bool flag3 = false; bool flag4 = false; if (character.HasInstrumentType("Flute")) { flag2 = true; } if (character.HasInstrumentType("Horn")) { flag3 = true; } if (character.HasInstrumentType("Pipe")) { flag4 = true; } float num4 = character.stats.PlayingSkill("Flute") * 20f; if (!flag2) { num4 = 0f; } float num5 = character.stats.PlayingSkill("Horn") * 20f; if (!flag3) { num5 = 0f; } float num6 = character.stats.PlayingSkill("Pipe") * 20f; if (!flag4) { num6 = 0f; } float num7 = 0f; if (num4 > 0f && num4 > num7) { num7 = num4; } if (num5 > 0f && num5 > num7) { num7 = num5; } if (num6 > 0f && num6 > num7) { num7 = num6; } if (num7 == num4) { text = "ChoraFlute"; } if (num7 == num5) { text = "ChoraHorn"; } if (num7 == num6) { text = "ChoraPipes"; } if (num7 >= 50f) { flag = true; } } MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, text, null); DialogueLua.SetVariable("PassedSkillCheck", flag); } // Token: 0x060005FB RID: 1531 RVA: 0x0007E894 File Offset: 0x0007CA94 public void Baths() { Links.x.gameplay.AddHours(); this.QuestEffectParty("Baths", true); MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Song Learned", null); this.str.Clear(); this.str.Append("Relaxed"); this.message1.SetActive(true); this.messageImg1.enabled = false; this.messageText1.text = this.str.ToString(); this.message2.SetActive(true); this.messageImg2.enabled = false; this.messageText2.text = this.str.ToString(); this.message3.SetActive(true); this.messageImg3.enabled = false; this.messageText3.text = this.str.ToString(); this.message4.SetActive(true); this.messageImg4.enabled = false; this.messageText4.text = this.str.ToString(); this.messagedOn = 0; } // Token: 0x060005FC RID: 1532 RVA: 0x0007E9C5 File Offset: 0x0007CBC5 public void OpenForfeitsBoard() { Links.x.forfeits.StartMenu(); } // Token: 0x060005FD RID: 1533 RVA: 0x0007E9D8 File Offset: 0x0007CBD8 public void WaitThroughFadeGeneric() { this.SetSkipKey(false); int asInt = DialogueLua.GetVariable("HourDelay").asInt; base.StartCoroutine(this.ExileFades(asInt)); } // Token: 0x060005FE RID: 1534 RVA: 0x0007EA0D File Offset: 0x0007CC0D public void WaitThroughFade() { this.SetSkipKey(false); base.StartCoroutine(this.ExileFades(12)); } // Token: 0x060005FF RID: 1535 RVA: 0x0007EA28 File Offset: 0x0007CC28 public void WaitAndTurnInExiles() { this.SetSkipKey(false); int num = 12; base.StartCoroutine(this.ExileFades(num)); } // Token: 0x06000600 RID: 1536 RVA: 0x0007EA50 File Offset: 0x0007CC50 public void WaitAndTurnInExilesShort() { this.SetSkipKey(false); int num = 3; base.StartCoroutine(this.ExileFades(num)); } // Token: 0x06000601 RID: 1537 RVA: 0x0007EA74 File Offset: 0x0007CC74 private IEnumerator ExileFades(int hours) { Links.x.gaia.PlayFade("Out", "Scaled"); yield return new WaitForSeconds(1.5f); Links.x.cameraEffects.immediateTransition = true; Links.x.sensory.SetMagicaClothState(false); int num; for (int i = 0; i < hours; i = num + 1) { Links.x.gameplay.AddHours(); yield return new WaitForSecondsRealtime(0.05f); num = i; } Links.x.sensory.SetMagicaClothState(true); this.waited = true; yield return new WaitForSeconds(1.4f); Links.x.gaia.PlayFade("In", "Scaled"); this.SetSkipKey(true); yield break; } // Token: 0x06000602 RID: 1538 RVA: 0x0007EA8C File Offset: 0x0007CC8C public void TurnInExiles() { Records.x.TurnInExiles(this.waited, DialogueLua.GetVariable("SpecialExile").asString); this.waited = false; DialogueLua.SetVariable("StunBadges", 0); if (DialogueLua.GetVariable("SpecialExile").asString == "Dolki") { Links.x.diorama.CheckCreaturesThatMightActivate(); DoorActions doorActions = Links.x.diorama.FindDoor("Door_Use_Wooden_Swingy_Exterior_DolkiFarm"); if (doorActions) { if (doorActions.destroyed) { doorActions.Remake(true); } if (!doorActions.door.locked) { doorActions.door.locked = true; } } } } // Token: 0x06000603 RID: 1539 RVA: 0x0007EB44 File Offset: 0x0007CD44 public void KnowName() { if (this.npc1.stats.initiateDialogue < 10) { this.npc1.stats.initiateDialogue += 10; } if (this.npc2 && this.npc2.stats.initiateDialogue < 10) { this.npc2.stats.initiateDialogue += 10; } if (this.npc3 && this.npc3.stats.initiateDialogue < 10) { this.npc3.stats.initiateDialogue += 10; } if (this.npc4 && this.npc4.stats.initiateDialogue < 10) { this.npc4.stats.initiateDialogue += 10; } DialogueLua.SetVariable("KnowsName", true); this.SetTypewriter(this.npc1); } // Token: 0x06000604 RID: 1540 RVA: 0x0007EC48 File Offset: 0x0007CE48 public void SetVariableBool(string n, bool b) { DialogueLua.SetVariable(n, b); } // Token: 0x06000605 RID: 1541 RVA: 0x0007EC58 File Offset: 0x0007CE58 public bool GetVariableBool(string n) { return DialogueLua.GetVariable(n).asBool; } // Token: 0x06000606 RID: 1542 RVA: 0x0007EC74 File Offset: 0x0007CE74 public void LearnSong(string songName) { this.SetSkipKey(false); songName = DialogueLua.GetVariable("SongToLearn").asString; int asInt = DialogueLua.GetVariable("Cost").asInt; if (asInt > 0) { Links.x.inventory.emeralds -= asInt; MasterAudio.PlaySoundAndForget("Inventory", 0.6f, new float?(1f), 1f, "Jewelry drop", null); } this.SetSkipKey(true); } // Token: 0x06000607 RID: 1543 RVA: 0x0007ED00 File Offset: 0x0007CF00 public void SpellCompleteUI(string spellName) { this.SetSkipKey(false); spellName = DialogueLua.GetVariable("SpellToLearn").asString; Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); Debug.Log(spellName); this.currentSpellName = spellName; Library.Pagan paganRow = Links.x.library.GetPaganRow(spellName); Debug.Log(paganRow); MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Song Learned", null); this.dialoguePopupBox.SetActive(true); this.str.Clear(); this.str.Append(selectedDialogueCharacter.stats.GetName()); string text = "Bold"; this.str.Append(" has learned\n"); this.str.Append(paganRow._DisplayName); this.str.Append(""); this.spellPopupBoxText.text = this.str.ToString(); if (paganRow._School == "Bindings") { this.spellImage.sprite = this.bindingsSprite; } if (paganRow._School == "Fauna") { this.spellImage.sprite = this.faunaSprite; } if (paganRow._School == "Vines") { this.spellImage.sprite = this.vinesSprite; } if (paganRow._School == "Spores") { this.spellImage.sprite = this.scoriaSprite; } selectedDialogueCharacter.stats.AddPaganKnowledge(spellName); this.dialoguePopupBoxAnimator.Play("DialoguePopsSpellOn", -1, 0f); this.str.Append(paganRow._DisplayName); Links.x.gameFeed.AddFeed(this.str.ToString()); if (!this.skippingSequence) { base.StartCoroutine(this.SpellUIWait()); } } // Token: 0x06000608 RID: 1544 RVA: 0x0007EF0D File Offset: 0x0007D10D private IEnumerator SpellUIWait() { this.SetSkipKey(false); float t = 4.15f; float startTime = Time.timeSinceLevelLoad; bool skipping = false; while (Time.timeSinceLevelLoad < startTime + t && !Input.GetMouseButtonUp(0)) { yield return null; } if (Input.GetMouseButtonUp(0)) { Debug.Log("Skipping"); skipping = true; } MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Box Close", null); Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); this.str.Clear(); this.str.Append(Links.x.gameFeed.GetPartyColorText(selectedDialogueCharacter)); this.str.Append(selectedDialogueCharacter.stats.GetName()); this.str.Append(""); this.str.Append(" has learned "); if (!skipping) { yield return new WaitForSeconds(1.5f); } else { this.dialoguePopupBoxAnimator.Play("DialoguePopsSpellOn", -1, 0.9f); this.skippingSequence = true; DialogueManager.Instance.GetComponent().DoAllImmediately(); yield return new WaitForSeconds(0.15f); } this.dialoguePopupBox.SetActive(false); this.spellPopupBoxText.text = ""; this.SetSkipKey(true); yield break; } // Token: 0x06000609 RID: 1545 RVA: 0x0007EF1C File Offset: 0x0007D11C public void FadeInAndOut() { this.SetSkipKey(false); base.StartCoroutine(this.FadeInOut()); } // Token: 0x0600060A RID: 1546 RVA: 0x0007EF32 File Offset: 0x0007D132 private IEnumerator FadeInOut() { this.SetSkipKey(false); Links.x.gaia.PlayFade("Out", "Scaled"); yield return new WaitForSeconds(2f); Links.x.gaia.PlayFade("In", "Scaled"); this.SetSkipKey(true); yield break; } // Token: 0x0600060B RID: 1547 RVA: 0x0007EF41 File Offset: 0x0007D141 public void FadeIn() { Links.x.gaia.PlayFade("In", "Scaled"); } // Token: 0x0600060C RID: 1548 RVA: 0x0007EF5C File Offset: 0x0007D15C public void FadeOut() { Links.x.gaia.PlayFade("Out", "Scaled"); } // Token: 0x0600060D RID: 1549 RVA: 0x0007EF78 File Offset: 0x0007D178 public void LevelUpFromDialogue(string partyID) { this.SetSkipKey(false); int asInt = DialogueLua.GetVariable("SkillIncrease").asInt; Character character = null; string text = ""; string text2 = ""; if (partyID == "1") { text = DialogueLua.GetVariable("Party1Skill").asString; text2 = DialogueLua.GetVariable("Party1").asString; } if (partyID == "2") { text = DialogueLua.GetVariable("Party2Skill").asString; text2 = DialogueLua.GetVariable("Party2").asString; } if (partyID == "3") { text = DialogueLua.GetVariable("Party3Skill").asString; text2 = DialogueLua.GetVariable("Party3").asString; } if (partyID == "4") { text = DialogueLua.GetVariable("Party4Skill").asString; text2 = DialogueLua.GetVariable("Party4").asString; } for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i].stats.GetName() == text2) { character = this.partyList[i]; } } string[] array = new string[7]; array[0] = text; array[1] = " "; array[2] = text2; array[3] = " "; array[4] = partyID; array[5] = " "; int num = 6; Character character2 = character; array[num] = ((character2 != null) ? character2.ToString() : null); Debug.Log(string.Concat(array)); int num2 = character.stats.MatchBestSkillToDialogueName(text); string text3 = "SkillTrained"; string text4 = "_whips"; MasterAudio.PlaySoundAndForget("Feedback", Random.Range(0.8f, 0.9f), new float?(Random.Range(0.9f, 1f)), 0f, text3 + text4, null); this.str.Clear(); this.str.Append("Increased "); this.str.Append(text); this.str.Append(" +"); this.str.Append(asInt); int num3 = this.talkingParty.IndexOf(character); if (num3 == 0) { this.message1.SetActive(true); this.messageImg1.enabled = false; this.messageText1.text = this.str.ToString(); } if (num3 == 1) { this.message2.SetActive(true); this.messageImg2.enabled = false; this.messageText2.text = this.str.ToString(); } if (num3 == 2) { this.message3.SetActive(true); this.messageImg3.enabled = false; this.messageText3.text = this.str.ToString(); } if (num3 == 3) { this.message4.SetActive(true); this.messageImg4.enabled = false; this.messageText4.text = this.str.ToString(); } this.messagedOn = 0; character.stats.IncreaseSkill(num2, asInt); this.str.Clear(); this.str.Append(Links.x.gameFeed.GetPartyColorText(character)); this.str.Append(character.stats.GetName()); this.str.Append(""); this.str.Append(" has improved "); this.str.Append(Links.x.manual.DisplayNameFromIndex(num2, character)); } // Token: 0x0600060E RID: 1550 RVA: 0x0007F320 File Offset: 0x0007D520 public void SongCompleteUI(string songName) { this.SetSkipKey(false); Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); songName = DialogueLua.GetVariable("SongToLearn").asString; this.currentSongName = songName; Library.Abilities abilityRow = Links.x.library.GetAbilityRow(songName); string text = "Song character: "; Character character = selectedDialogueCharacter; Debug.Log(text + ((character != null) ? character.ToString() : null) + " " + songName); MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Song Learned", null); this.dialoguePopupBox.SetActive(true); this.str.Clear(); this.str.Append(selectedDialogueCharacter.stats.GetName()); string text2 = "Bold"; this.str.Append(" has learned\n"); this.str.Append(abilityRow._DisplayName); this.str.Append(""); this.songPopupBoxText.text = this.str.ToString(); string text3 = ""; if (abilityRow._WeaponReq.Contains("Flute")) { text3 = "FluteBasic"; } if (abilityRow._WeaponReq.Contains("Pipe")) { text3 = "PipeBasic"; } if (abilityRow._WeaponReq.Contains("Drum")) { text3 = "DrumBasic"; } if (abilityRow._WeaponReq.Contains("Horn")) { text3 = "HornBasic"; } Library.Inventory invRowFromName = Links.x.library.GetInvRowFromName(text3); this.trinketItemImage.sprite = Links.x.archives.GetItem(invRowFromName._UIModel); this.dialoguePopupBoxAnimator.Play("DialoguePopsSongOn", -1, 0f); } // Token: 0x0600060F RID: 1551 RVA: 0x0007F504 File Offset: 0x0007D704 public void SongCompleteUIPart2() { this.SetSkipKey(false); this.songCorout = this.SongComplete(); base.StartCoroutine(this.songCorout); } // Token: 0x06000610 RID: 1552 RVA: 0x0007F526 File Offset: 0x0007D726 private IEnumerator SongComplete() { Character selectedParty = this.GetSelectedDialogueCharacter(); float t = 2f; float startTime = Time.timeSinceLevelLoad; while (Time.timeSinceLevelLoad < startTime + t && !Input.GetMouseButtonUp(0)) { yield return null; } selectedParty.stats.AddSong(this.currentSongName, this.currentSongName, new Vector3(1f, 1f, 1f)); Library.Abilities abilityRow = Links.x.library.GetAbilityRow(this.currentSongName); int invNum = selectedParty.GetInvNum(14); if (invNum > 1 && Links.x.library.GetInvRow(invNum)._Name.Contains(abilityRow._WeaponReq)) { MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Highlight Window", null); this.fx.gameObject.transform.position = selectedParty.portrait.skillBag.trinketPortrait.gameObject.transform.position; this.fx.gameObject.SetActive(true); if (selectedParty.portrait.skillBag.trinketWindow.minimized) { selectedParty.portrait.skillBag.trinketWindow.ToggleMinimize(); } } this.str.Clear(); this.str.Append(Links.x.gameFeed.GetPartyColorText(selectedParty)); this.str.Append(selectedParty.stats.GetName()); this.str.Append(""); this.str.Append(" has learned "); this.str.Append(abilityRow._DisplayName); Links.x.gameFeed.AddFeed(this.str.ToString()); yield return new WaitForSeconds(2f); this.dialoguePopupBox.SetActive(false); this.songPopupBoxText.text = ""; this.songCorout = null; this.SetSkipKey(true); yield break; } // Token: 0x06000611 RID: 1553 RVA: 0x0007F538 File Offset: 0x0007D738 public void SwitchBoro() { string xmlName = this.boro.stats.xmlName; Vector3 vector; Vector4 vector2; string text; int num; Records.x.BoroStats(xmlName, out vector, out vector2, out text, out num, true); Vector3 vector3; Vector4 vector4; string text2; int num2; Records.x.BoroStats(Records.x.boroID, out vector3, out vector4, out text2, out num2, true); int num3 = num - num2; if (num3 < 0) { num3 = 0; } Links.x.inventory.emeralds -= num3; if (num3 > 0) { MasterAudio.PlaySoundAndForget("Inventory", 0.6f, new float?(1f), 0.25f, "Coins", null); } MasterAudio.PlaySoundAndForget("Feedback", 0.3f, new float?(1f), 0f, "Song Learned", null); Records.x.boroID = this.boro.stats.xmlName; Records.x.CreateBoro(true); this.boro = null; } // Token: 0x06000612 RID: 1554 RVA: 0x0007F63C File Offset: 0x0007D83C public void CheckToBuySongs() { if (this.npc1.stats.xmlName == "MinstrelLazure") { this.buySongs.SetActive(true); } if (this.npc1.stats.xmlName == "WestRuinsMinstrel" && QuestLog.GetQuestState("D5_Minstrel") == QuestState.Success) { this.buySongs.SetActive(true); } } // Token: 0x06000613 RID: 1555 RVA: 0x0007F6A8 File Offset: 0x0007D8A8 public void RespecParty() { Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); DialogueLua.SetVariable("RemovedParty", selectedDialogueCharacter.stats.GetName()); } // Token: 0x06000614 RID: 1556 RVA: 0x0007F6D1 File Offset: 0x0007D8D1 public void RespecPartyDelayed() { this.SetNoExit(); this.SetSkipKey(false); } // Token: 0x06000615 RID: 1557 RVA: 0x0007F6E0 File Offset: 0x0007D8E0 public void StartRespec() { Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); this.openingCreation = true; Links.x.gaia.OpenCharacterCreation(false, null, selectedDialogueCharacter); } // Token: 0x06000616 RID: 1558 RVA: 0x0007F710 File Offset: 0x0007D910 public void RemoveParty() { Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); DialogueLua.SetVariable("RemovedParty", selectedDialogueCharacter.stats.GetName()); } // Token: 0x06000617 RID: 1559 RVA: 0x0007F739 File Offset: 0x0007D939 public void RemovePartyDelayed() { this.SetNoExit(); this.SetSkipKey(false); Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); selectedDialogueCharacter.DropEverything(); selectedDialogueCharacter.SetMeshState(false); base.StartCoroutine(this.EndPartyRemoval()); } // Token: 0x06000618 RID: 1560 RVA: 0x0007F767 File Offset: 0x0007D967 private IEnumerator EndPartyRemoval() { Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); selectedDialogueCharacter.Dead(false, false, true); Character character = selectedDialogueCharacter; Debug.Log(((character != null) ? character.ToString() : null) + " gone"); Character nearestParty = Links.x.GetNearestParty(selectedDialogueCharacter.tr.position); nearestParty.protagonist = true; nearestParty.SetAsLeader(); Links.x.fellowship.SingleSelected(nearestParty); nearestParty.AddToSelected(false, true); nearestParty.SetAsLeader(); Links.x.rtsCamera.Follow(nearestParty.tr, nearestParty, false); this.SetSkipKey(true); yield return new WaitForSeconds(2f); yield break; } // Token: 0x06000619 RID: 1561 RVA: 0x0007F776 File Offset: 0x0007D976 public void AddParty() { this.openingCreation = true; Links.x.gaia.OpenCharacterCreation(false, null, null); } // Token: 0x0600061A RID: 1562 RVA: 0x0007F794 File Offset: 0x0007D994 public void Bribe() { Records.x.StartBribe(); Character character = this.respondCharacter; character.ClearLKP(); if (character.actions) { character.actions.EndActions(); } character.hostility = 1; character.CircleAnimation(""); Links.x.combat.RemoveFromPartyLists(character); Links.x.combat.BribeToReduceHostilities(); } // Token: 0x0600061B RID: 1563 RVA: 0x0007F801 File Offset: 0x0007DA01 public void BribeFail() { } // Token: 0x0600061C RID: 1564 RVA: 0x0007F804 File Offset: 0x0007DA04 public void ToggleQuickNote() { if (Links.x.mk) { EventSystem.current.SetSelectedGameObject(null); } if (!this.quickNoteOpen) { this.lastBtn = Links.x.gameplay.currentEventObject; this.journalNoteField.transform.parent.gameObject.SetActive(true); this.quickJournalAnimator.Play("QuickNoteOpen"); this.quickNoteOpen = true; this.canUseKeys = false; if (Links.x.joy) { this.canvasGroup.interactable = false; Links.x.keyboardScript.StartMenu(this.journalNoteField, null, base.gameObject, "QuickNote"); return; } } else { this.quickJournalAnimator.Play("QuickNoteClose"); this.quickNoteOpen = false; this.canvasGroup.interactable = true; if (Links.x.joy) { if (this.lastBtn == null) { this.lastBtn = this.byeButton.gameObject; } Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.lastBtn); } } } // Token: 0x0600061D RID: 1565 RVA: 0x0007F926 File Offset: 0x0007DB26 public void EndJournalNote() { Links.x.journal.UpdateDialogueNote(); } // Token: 0x0600061E RID: 1566 RVA: 0x0007F937 File Offset: 0x0007DB37 public void ClickAwayFromNote() { this.canUseKeys = true; } // Token: 0x0600061F RID: 1567 RVA: 0x0007F940 File Offset: 0x0007DB40 public void EndCharacterCreation() { } // Token: 0x06000620 RID: 1568 RVA: 0x0007F942 File Offset: 0x0007DB42 public void ChangeToStun() { if (Records.x.kill) { Links.x.hudControl.ToggleLethalityJoystick(); } } // Token: 0x06000621 RID: 1569 RVA: 0x0007F95F File Offset: 0x0007DB5F public void ChangeToKill() { if (!Records.x.kill) { Links.x.hudControl.ToggleLethalityJoystick(); } } // Token: 0x06000622 RID: 1570 RVA: 0x0007F97C File Offset: 0x0007DB7C public void SetHostile() { if (DialogueLua.GetVariable("SetJustice").asBool) { Links.x.combat.isJustice = true; DialogueLua.SetVariable("SetJustice", false); } bool asBool = DialogueLua.GetVariable("PartyIsSneaking").asBool; Debug.Log("Sneaking while setting hostile: " + asBool.ToString()); if (!asBool) { this.startCombat = true; } else { this.npc1.hostility = 2; if (this.npc2) { this.npc2.hostility = 2; } if (this.npc3) { this.npc3.hostility = 2; } if (this.npc4) { this.npc4.hostility = 2; } } DialogueLua.SetVariable("PartyIsSneaking", false); } // Token: 0x06000623 RID: 1571 RVA: 0x0007FA5C File Offset: 0x0007DC5C public void SetHostileInstant(Character npcToSetHostile) { Character nearestParty = Links.x.GetNearestParty(npcToSetHostile.tr.position); string[] array = new string[10]; array[0] = "Setting hostile: "; int num = 1; Character character = nearestParty; array[num] = ((character != null) ? character.ToString() : null); array[2] = " "; array[3] = ((npcToSetHostile != null) ? npcToSetHostile.ToString() : null); array[4] = " "; int num2 = 5; Character character2 = this.npc2; array[num2] = ((character2 != null) ? character2.ToString() : null); array[6] = " "; int num3 = 7; Character character3 = this.npc3; array[num3] = ((character3 != null) ? character3.ToString() : null); array[8] = " "; int num4 = 9; Character character4 = this.npc4; array[num4] = ((character4 != null) ? character4.ToString() : null); Debug.Log(string.Concat(array)); npcToSetHostile.hostility = 2; npcToSetHostile.UpdateLKP(nearestParty, nearestParty.node, "Seen", true); Links.x.sensory.AddPlayerToCombat(npcToSetHostile, nearestParty, true, false, false); if (this.npc2) { this.npc2.hostility = 2; this.npc2.UpdateLKP(nearestParty, nearestParty.node, "Seen", true); Links.x.sensory.AddPlayerToCombat(this.npc2, nearestParty, true, false, false); } if (this.npc3) { this.npc3.hostility = 2; this.npc3.UpdateLKP(nearestParty, nearestParty.node, "Seen", true); Links.x.sensory.AddPlayerToCombat(this.npc3, nearestParty, true, false, false); } if (this.npc4) { this.npc4.hostility = 2; this.npc4.UpdateLKP(nearestParty, nearestParty.node, "Seen", true); Links.x.sensory.AddPlayerToCombat(this.npc4, nearestParty, true, false, false); } if (!Records.x.combat) { Links.x.combat.StartCombat(nearestParty, npcToSetHostile, false, true); } } // Token: 0x06000624 RID: 1572 RVA: 0x0007FC43 File Offset: 0x0007DE43 public void CheckQuestActivations() { Links.x.diorama.CheckQuestActivations(); } // Token: 0x06000625 RID: 1573 RVA: 0x0007FC54 File Offset: 0x0007DE54 public void UpdateQuestPoints() { if (this.npc1 && this.npc1.creatures) { this.npc1.creatures.CheckQuestSwap(); } if (this.npc2 && this.npc2.creatures) { this.npc2.creatures.CheckQuestSwap(); } if (this.npc3 && this.npc3.creatures) { this.npc3.creatures.CheckQuestSwap(); } if (this.npc4 && this.npc4.creatures) { this.npc4.creatures.CheckQuestSwap(); } } // Token: 0x06000626 RID: 1574 RVA: 0x0007FD20 File Offset: 0x0007DF20 private void TimeOfDay() { Links.x.gameplay.GetTimeOfDay(); string timeOfDay = Links.x.gameplay.timeOfDay; if (timeOfDay == "Morning") { int num = Random.Range(0, 4); if (num == 0) { DialogueLua.SetVariable("TimeGreeting", "A bright morning to you"); } if (num == 1) { DialogueLua.SetVariable("TimeGreeting", "Good morning"); } if (num == 2) { DialogueLua.SetVariable("TimeGreeting", "Sela's blessings this morning"); } if (num == 3) { DialogueLua.SetVariable("TimeGreeting", "Topa-din"); } } if (timeOfDay == "Afternoon") { int num2 = Random.Range(0, 4); if (num2 == 0) { DialogueLua.SetVariable("TimeGreeting", "Good afternoon"); } if (num2 == 1) { DialogueLua.SetVariable("TimeGreeting", "Afternoon's greetings"); } if (num2 == 2) { DialogueLua.SetVariable("TimeGreeting", "A good afternoon to you"); } if (num2 == 3) { DialogueLua.SetVariable("TimeGreeting", "Topa-din"); } } if (timeOfDay == "Evening") { int num3 = Random.Range(0, 4); if (num3 == 0) { DialogueLua.SetVariable("TimeGreeting", "Good evening"); } if (num3 == 1) { DialogueLua.SetVariable("TimeGreeting", "A good evening to you"); } if (num3 == 2) { DialogueLua.SetVariable("TimeGreeting", "Evening's greetings"); } if (num3 == 3) { DialogueLua.SetVariable("TimeGreeting", "Topa-din"); } } if (timeOfDay == "Night") { int num4 = Random.Range(0, 4); if (num4 == 0) { DialogueLua.SetVariable("TimeGreeting", "A safe night to you"); } if (num4 == 1) { DialogueLua.SetVariable("TimeGreeting", "Night's greetings"); } if (num4 == 2) { DialogueLua.SetVariable("TimeGreeting", "A blessed night to you"); } if (num4 == 3) { DialogueLua.SetVariable("TimeGreeting", "Topa-din"); } } } // Token: 0x06000627 RID: 1575 RVA: 0x0007FEC4 File Offset: 0x0007E0C4 public void StartVIPQuest() { this.npc1.creatures.CheckVIP(); this.str.Clear(); this.str.Append("You have gained a follower"); Links.x.gameFeed.AddFeed(this.str.ToString()); this.npc1.StartQuip("I will follow you now"); Links.x.diorama.CheckCreaturesThatMightActivate(); } // Token: 0x06000628 RID: 1576 RVA: 0x0007FF38 File Offset: 0x0007E138 public void EndVIPQuest() { this.npc1.creatures.CheckVIP(); this.str.Clear(); this.str.Append("You have lost a follower"); Links.x.gameFeed.AddFeed(this.str.ToString()); this.npc1.ReturnHealthBar(); } // Token: 0x06000629 RID: 1577 RVA: 0x0007FF97 File Offset: 0x0007E197 public void StartPuzzle() { if (this.puzzleActions) { this.puzzleActions.StartPuzzle(); } } // Token: 0x0600062A RID: 1578 RVA: 0x0007FFB4 File Offset: 0x0007E1B4 public void StartMiniGame() { if (this.npc1.stats.xmlName == "DryadFrog") { Character selectedDialogueCharacter = this.GetSelectedDialogueCharacter(); foreach (Puzzle puzzle in Links.x.diorama.puzzles) { if (puzzle.gameObject.name == "FrogMiniGameSpots") { this.doNotTurnOnHud = true; int asInt = DialogueLua.GetVariable("C6_TalkedToFrogDryad").asInt; puzzle.gameObject.GetComponent().MiniGame(selectedDialogueCharacter, this.npc1, asInt); } } } } // Token: 0x0600062B RID: 1579 RVA: 0x0008007C File Offset: 0x0007E27C public void SetMiniGameVariables(int num, PuzzleActions p) { this.puzzleActions = p; bool flag = false; if (num >= p.scoreCap3) { flag = true; } QuestLog.SetQuestState("C6_MiniGame", QuestState.Success); DialogueLua.SetVariable("MiniGameComplete", flag); } // Token: 0x0600062C RID: 1580 RVA: 0x000800B8 File Offset: 0x0007E2B8 public void MiniGameReward() { int asInt = DialogueLua.GetVariable("C6_TalkedToFrogDryad").asInt; int savedScore = this.puzzleActions.savedScore; int scoreCap = this.puzzleActions.scoreCap1; int scoreCap2 = this.puzzleActions.scoreCap2; int scoreCap3 = this.puzzleActions.scoreCap3; int num = this.talkingParty.IndexOf(Links.x.main); int num2 = -1; if (num == 0) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party1").asString); } if (num == 1) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party2").asString); } if (num == 2) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party3").asString); } if (num == 3) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party4").asString); } if (savedScore >= scoreCap && asInt == 1) { DialogueLua.SetVariable("Item", "Berry"); DialogueLua.SetVariable("ItemStack", 10); this.GiveItem(); DialogueLua.SetVariable("C6_TalkedToFrogDryad", 2); } if (savedScore >= scoreCap2 && asInt <= 2) { bool flag = false; if (num != 0) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party1").asString); num2 = 0; flag = true; } if (num != 1 && !flag) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party2").asString); num2 = 1; flag = true; } if (num != 2 && !flag) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party3").asString); num2 = 2; flag = true; } if (num != 3 && !flag) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party4").asString); num2 = 3; } DialogueLua.SetVariable("Item", "GemCitrinePoor"); DialogueLua.SetVariable("ItemStack", 1); this.GiveItem(); DialogueLua.SetVariable("C6_TalkedToFrogDryad", 3); } if (savedScore >= scoreCap3 && asInt <= 3) { bool flag2 = false; if (num != 0 && num2 != 0) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party1").asString); flag2 = true; } if (num != 1 && num2 != 1 && !flag2) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party2").asString); flag2 = true; } if (num != 2 && num2 != 2 && !flag2) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party3").asString); flag2 = true; } if (num != 3 && num2 != 3 && !flag2) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party4").asString); } DialogueLua.SetVariable("Item", "FrogRing"); DialogueLua.SetVariable("ItemStack", 1); this.GiveItem(); DialogueLua.SetVariable("C6_TalkedToFrogDryad", 4); } if (num == 0) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party1").asString); } if (num == 1) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party2").asString); } if (num == 2) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party3").asString); } if (num == 3) { DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party4").asString); } } // Token: 0x0600062D RID: 1581 RVA: 0x00080450 File Offset: 0x0007E650 public void PlayLocationText(string text) { text = string.Concat(new string[] { "", text, "\n", Links.x.diorama.sceneDisplayName, "" }); if (this.corout == null) { this.corout = this.PlayLocation(text); base.StartCoroutine(this.corout); return; } this.locationText.text = text; } // Token: 0x0600062E RID: 1582 RVA: 0x000804C7 File Offset: 0x0007E6C7 private IEnumerator PlayLocation(string text) { this.locationText.text = text; if (!Records.x.filming) { this.dialoguePopupBoxAnimator.updateMode = AnimatorUpdateMode.UnscaledTime; } this.dialoguePopupBox.SetActive(true); MasterAudio.PlaySoundAndForget("Map Entered", 0.8f, new float?(1f), 0f, "", null); this.dialoguePopupBoxAnimator.Play("DialoguePopsLocation", -1, 0f); if (!Records.x.filming) { yield return new WaitForSeconds(10f); } else { yield return new WaitForSecondsRealtime(10f); } this.dialoguePopupBox.SetActive(false); this.dialoguePopupBoxAnimator.updateMode = AnimatorUpdateMode.Normal; this.corout = null; yield break; } // Token: 0x0600062F RID: 1583 RVA: 0x000804DD File Offset: 0x0007E6DD public void GiveItem() { this.SetSkipKey(false); this.Item(true); } // Token: 0x06000630 RID: 1584 RVA: 0x000804F0 File Offset: 0x0007E6F0 public void GiveItemSpecial(string questName) { this.NoExit(true); if (questName == "D5_Dura") { int num = 0; Character character = Links.x.diorama.FindCharacterAnyState("WestRuinsHostage1"); Character character2 = Links.x.diorama.FindCharacterAnyState("WestRuinsHostage2"); Character character3 = Links.x.diorama.FindCharacterAnyState("WestRuinsHostage3"); if (character && !character.dead && !character.stunned && !character.missing) { num++; } if (character2 && !character2.dead && !character2.stunned && !character2.missing) { num++; } if (character3 && !character3.dead && !character3.stunned && !character3.missing) { num++; } Library.Inventory invRowFromName = Links.x.library.GetInvRowFromName("Ax1"); Library.Inventory invRowFromName2 = Links.x.library.GetInvRowFromName("Sword1"); Library.Inventory invRowFromName3 = Links.x.library.GetInvRowFromName("Blowgun1"); if (this.npc1.HowManyItemsInBag(invRowFromName._ID, 0) > 0 && num >= 1) { DialogueLua.SetVariable("Item", invRowFromName._Name); DialogueLua.SetVariable("ItemStack", 1); this.Item(true); } if (this.npc1.HowManyItemsInBag(invRowFromName2._ID, 0) > 0 && num >= 2) { DialogueLua.SetVariable("Item", invRowFromName2._Name); DialogueLua.SetVariable("ItemStack", 1); this.Item(true); } if (this.npc1.HowManyItemsInBag(invRowFromName3._ID, 0) > 0 && num >= 3) { DialogueLua.SetVariable("Item", invRowFromName3._Name); DialogueLua.SetVariable("ItemStack", 1); this.Item(true); } } } // Token: 0x06000631 RID: 1585 RVA: 0x000806C9 File Offset: 0x0007E8C9 public void TakeItem() { this.SetSkipKey(false); this.Item(false); } // Token: 0x06000632 RID: 1586 RVA: 0x000806DC File Offset: 0x0007E8DC public void Item(bool npcGive) { Character character = this.GetSelectedDialogueCharacter(); string text = DialogueLua.GetVariable("Item").asString; int num = DialogueLua.GetVariable("ItemStack").asInt; if (num == 0) { num = 1; } Library.Inventory inventory; if (text == "PartyFood") { if (this.itemGiveCount == 0) { text = DialogueLua.GetVariable("Party1Skill").asString; DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party1").asString); } if (this.itemGiveCount == 1) { text = DialogueLua.GetVariable("Party2Skill").asString; DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party2").asString); } if (this.itemGiveCount == 2) { text = DialogueLua.GetVariable("Party3Skill").asString; DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party3").asString); } if (this.itemGiveCount == 3) { text = DialogueLua.GetVariable("Party4Skill").asString; DialogueLua.SetVariable("SelectedParty", DialogueLua.GetVariable("Party4").asString); } inventory = Links.x.library.GetInvRowFromDisplayName(text); character = this.GetSelectedDialogueCharacter(); this.itemGiveCount++; if (inventory == null) { return; } } else if (text == "Emerald") { if (npcGive) { Links.x.inventory.emeralds += num; } else { Links.x.inventory.emeralds -= num; } inventory = Links.x.library.GetInvRowFromName(text); } else { inventory = Links.x.library.GetInvRowFromName(text); } if (npcGive) { MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, "DialogueItemGiven", null); } else { MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, "DialogueItemReceived", null); } bool flag = false; if (npcGive) { if (text != "Songbook" && text != "Spellbook") { int num2 = this.npc1.HasItem(inventory._ID); Vector3 vector = Vector3.zero; Vector3 vector2 = Vector3.zero; if (num2 > -1) { List bag = this.npc1.bag; List durability = this.npc1.durability; List sockets = this.npc1.sockets; int num3 = num2; bag[num3] = 0; bag[num3 + 1] = 0; durability[num3 / 2] = Vector4.zero; vector = sockets[num3]; vector2 = sockets[num3]; sockets[num3] = Vector3.zero; sockets[num3 + 1] = Vector3.zero; } if (!this.talkingParty.Contains(character) && this.foundParty.Count > 0) { character = this.talkingParty[0]; } if (inventory._Stackable) { global::Item item; ItemEquipped itemEquipped; Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, num, Vector3.zero, Vector3.zero, new Vector4((float)inventory._DurabilityMax, 0f, 0f, 0f), character, true, false, out item, out itemEquipped); } else { for (int i = 0; i < num; i++) { global::Item item2; ItemEquipped itemEquipped2; Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, vector, vector2, new Vector4((float)inventory._DurabilityMax, 0f, 0f, 0f), character, true, false, out item2, out itemEquipped2); } } } if (text == "Songbook") { global::Item item3; ItemEquipped itemEquipped3; Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, new Vector3((float)character.stats.partyID, 0f, 0f), Vector3.zero, new Vector4(0f, 0f, 0f, 0f), character, true, false, out item3, out itemEquipped3); Links.x.inventory.emeralds -= 50; } if (text == "Spellbook") { Character character2 = character; Debug.Log(((character2 != null) ? character2.ToString() : null) + " " + character.stats.partyID.ToString()); global::Item item4; ItemEquipped itemEquipped4; Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, new Vector3((float)character.stats.partyID, 0f, 0f), Vector3.zero, new Vector4(0f, 0f, 0f, 0f), character, true, false, out item4, out itemEquipped4); Links.x.inventory.emeralds -= 150; } flag = true; } else if (text != "Emerald") { if (num < 1) { num = 1; } for (int j = 0; j < num; j++) { Character character3 = null; bool flag2 = false; if (text == "GhostScrollCirclet") { flag2 = false; } int num4 = -1; for (int k = 0; k < this.partyList.Count; k++) { if (this.partyList[k] && !character3 && this.partyList[k]) { if (flag2) { num4 = this.partyList[k].HasItemInBagOnly(inventory._ID); } else { num4 = this.partyList[k].HasItemInBag(inventory._ID); } if (num4 > -1) { character3 = this.partyList[k]; break; } } } if (num4 > -1) { int invNum = character3.GetInvNum(num4 + 1); Vector3 socketNum = character3.GetSocketNum(num4); Vector3 socketNum2 = character3.GetSocketNum(num4 + 1); Vector4 durabilityNum = character3.GetDurabilityNum(num4 / 2); this.npc1.GiveItem(inventory._ID, invNum, socketNum, socketNum2, durabilityNum, false); character3.RemoveItem(inventory._ID, 1); flag = true; } } } this.inventoryItemImage.sprite = Links.x.archives.GetItem(inventory._UIModel); if (flag) { MasterAudio.PlaySoundAndForget("Inventory", 0.6f, new float?(1f), 0f, inventory._Sound, null); } if (npcGive) { if (flag) { this.str.Clear(); this.str.Append("Received "); this.str.Append(inventory._DisplayName); if (num > 1) { this.str.Append(" x"); this.str.Append(num); } this.itemPopupText.text = this.str.ToString(); this.str.Clear(); this.str.Append(character.stats.GetName()); this.str.Append(" received"); this.str.Append(inventory._DisplayName); if (num > 1) { this.str.Append(" x"); this.str.Append(num); } } } else if (flag) { this.str.Clear(); this.str.Append("Gave "); this.str.Append(inventory._DisplayName); if (num > 1) { this.str.Append(" x"); this.str.Append(num); } this.itemPopupText.text = this.str.ToString(); this.str.Clear(); this.str.Append("Item removed: "); this.str.Append(inventory._DisplayName); if (num > 1) { this.str.Append(" x"); this.str.Append(num); } Links.x.gameFeed.AddFeed(this.str.ToString()); } int num5 = this.talkingParty.IndexOf(character); if (!flag) { num5 = -1; } if (num5 == 0) { this.message1.SetActive(true); this.messageImg1.sprite = this.inventoryItemImage.sprite; this.messageImg1.enabled = true; if (this.messageText1.text != "") { TextMeshProUGUI textMeshProUGUI = this.messageText1; textMeshProUGUI.text = textMeshProUGUI.text + ", " + this.itemPopupText.text; } else { this.messageText1.text = this.itemPopupText.text; } } if (num5 == 1) { this.message2.SetActive(true); this.messageImg2.sprite = this.inventoryItemImage.sprite; this.messageImg2.enabled = true; if (this.messageText2.text != "") { TextMeshProUGUI textMeshProUGUI2 = this.messageText2; textMeshProUGUI2.text = textMeshProUGUI2.text + ", " + this.itemPopupText.text; } else { this.messageText2.text = this.itemPopupText.text; } } if (num5 == 2) { this.message3.SetActive(true); this.messageImg3.sprite = this.inventoryItemImage.sprite; this.messageImg3.enabled = true; if (this.messageText3.text != "") { TextMeshProUGUI textMeshProUGUI3 = this.messageText3; textMeshProUGUI3.text = textMeshProUGUI3.text + ", " + this.itemPopupText.text; } else { this.messageText3.text = this.itemPopupText.text; } } if (num5 == 3) { this.message4.SetActive(true); this.messageImg4.sprite = this.inventoryItemImage.sprite; this.messageImg4.enabled = true; if (this.messageText4.text != "") { TextMeshProUGUI textMeshProUGUI4 = this.messageText4; textMeshProUGUI4.text = textMeshProUGUI4.text + ", " + this.itemPopupText.text; } else { this.messageText4.text = this.itemPopupText.text; } } this.messagedOn = 0; if (inventory._Name.Contains("PaduriiChildRingA")) { DialogueLua.SetVariable("Item", "PaduriiChildRingB"); this.TakeItem(); } if (inventory._Name.Contains("PaduriiChildRingB")) { DialogueLua.SetVariable("Item", "PaduriiChildRingC"); this.TakeItem(); } } // Token: 0x06000633 RID: 1587 RVA: 0x000811E2 File Offset: 0x0007F3E2 private IEnumerator ItemWait() { float t = 4.15f; float startTime = Time.timeSinceLevelLoad; bool skipping = false; while (Time.timeSinceLevelLoad < startTime + t && !Input.GetMouseButtonUp(0)) { yield return null; } if (Input.GetMouseButtonUp(0)) { Debug.Log("Skipping"); skipping = true; } MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Box Close", null); if (!skipping) { yield return new WaitForSeconds(0.6f); } else { this.dialoguePopupBoxAnimator.Play("DialoguePopsItemOn", -1, 0.9f); this.skippingSequence = true; DialogueManager.Instance.GetComponent().DoAllImmediately(); yield return new WaitForSeconds(0.15f); } this.dialoguePopupBox.SetActive(false); this.itemPopupText.text = ""; this.SetSkipKey(true); yield break; } // Token: 0x06000634 RID: 1588 RVA: 0x000811F4 File Offset: 0x0007F3F4 public void Message(string type) { MasterAudio.PlaySoundAndForget("Feedback", 0.8f, new float?(1f), 0f, "SkillTrained_whips", null); this.dialoguePopupBox.SetActive(true); this.str.Clear(); if (type == "Demo") { this.str.Append("Demo Quest"); this.str.Append("\n"); this.str.Append("Complete!"); this.str.Append(""); } this.spellPopupBoxText.text = this.str.ToString(); if (!this.skippingSequence) { this.dialoguePopupBoxAnimator.Play("DialoguePopsSpellOn", -1, 0f); base.StartCoroutine(this.MessageWait()); } } // Token: 0x06000635 RID: 1589 RVA: 0x000812D8 File Offset: 0x0007F4D8 private IEnumerator MessageWait() { this.SetSkipKey(false); float t = 4.15f; float startTime = Time.timeSinceLevelLoad; bool skipping = false; while (Time.timeSinceLevelLoad < startTime + t && !Input.GetMouseButtonUp(0)) { yield return null; } if (Input.GetMouseButtonUp(0)) { Debug.Log("Skipping"); skipping = true; } MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Box Close", null); if (!skipping) { yield return new WaitForSeconds(1.5f); } else { this.dialoguePopupBoxAnimator.Play("DialoguePopsSpellOn", -1, 0.9f); this.skippingSequence = true; DialogueManager.Instance.GetComponent().DoAllImmediately(); yield return new WaitForSeconds(0.15f); } this.dialoguePopupBox.SetActive(false); this.spellPopupBoxText.text = ""; this.SetSkipKey(true); yield break; } // Token: 0x06000636 RID: 1590 RVA: 0x000812E8 File Offset: 0x0007F4E8 public void QuestEffectParty(string effectName, bool near) { for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].dead && !this.partyList[i].isBoro && !this.partyList[i].summoned) { this.AddEffect(this.partyList[i], effectName); } } } // Token: 0x06000637 RID: 1591 RVA: 0x00081358 File Offset: 0x0007F558 public void QuestEffect(string effectName) { Character character = this.npc1; if (effectName == "QuestTimerBlessedC5") { character = this.npc2; } this.AddEffect(character, effectName); } // Token: 0x06000638 RID: 1592 RVA: 0x00081388 File Offset: 0x0007F588 private void AddEffect(Character character, string effectName) { Effects existingEffect = character.stats.GetExistingEffect("Cafera"); if (existingEffect && effectName == "Cafera") { existingEffect.IncreaseTimeToFull(); return; } Effects effects = character.gameObject.AddComponent(); Links.x.cellar.AddEffects(effects); effects.gameObject.SetActive(true); effects.source = null; effects.target = character; effects.fromLoad = false; effects.effectName = effectName; effects.sourceLevel = 0f; effects.Inflicted(false); } // Token: 0x06000639 RID: 1593 RVA: 0x0008141C File Offset: 0x0007F61C public void UpdateRainGodEarring(string num) { Library.Inventory invRowFromName = Links.x.library.GetInvRowFromName("RainGodEarring"); Character character = null; int num2 = -1; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !character && this.partyList[i]) { num2 = this.partyList[i].HasItemInBag(invRowFromName._ID); if (num2 > -1) { character = this.partyList[i]; break; } } } string text = "Rain god earring upgrade "; string text2 = num2.ToString(); string text3 = " "; Character character2 = character; Debug.Log(text + text2 + text3 + ((character2 != null) ? character2.ToString() : null)); if (num2 > -1) { float y = character.GetSocketNum(num2).y; character.SetSocketNum(num2, (int)y + 1, 1); character.inventoryBag.SetSocketA(character.GetSocketNum(num2), num2 / 2); } } // Token: 0x0600063A RID: 1594 RVA: 0x00081510 File Offset: 0x0007F710 public void SetTraitsCharacters() { string asString = DialogueLua.GetVariable("Trait").asString; string text = ""; float num = float.PositiveInfinity; for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].dead && !this.partyList[i].isBoro && !this.partyList[i].summoned) { float num2 = 0f; if (this.partyList[i].stats.HasFamilyBackgroundFromName(asString) > 0 && num2 < num) { num = num2; text = this.partyList[i].stats.GetName(); } } } DialogueLua.SetVariable("TraitParty", text); } // Token: 0x0600063B RID: 1595 RVA: 0x000815E8 File Offset: 0x0007F7E8 public void HealRozafirFarmers() { List characters = Links.x.diorama.characters; for (int i = 0; i < characters.Count; i++) { if (characters[i] && !characters[i].stats.animal) { Effects existingEffect = characters[i].stats.GetExistingEffect("Licech"); if (existingEffect) { existingEffect.Healed(false, true); } } } } // Token: 0x0600063C RID: 1596 RVA: 0x0008165E File Offset: 0x0007F85E public void SetBoro() { DialogueLua.SetVariable("Boro", "1"); } // Token: 0x0600063D RID: 1597 RVA: 0x0008166F File Offset: 0x0007F86F public void SetStatsCharacterNear() { this.SetStatCharacters(true); } // Token: 0x0600063E RID: 1598 RVA: 0x00081678 File Offset: 0x0007F878 public void SetStatsCharactersAll() { this.SetStatCharacters(false); } // Token: 0x0600063F RID: 1599 RVA: 0x00081684 File Offset: 0x0007F884 public void SetStatCharacters(bool hasToBeNear) { int num = 0; Character character = null; for (int i = 0; i < this.partyList.Count; i++) { if (this.partyList[i] && !this.partyList[i].isBoro && !this.partyList[i].summoned) { if (!character) { character = this.partyList[i]; } num++; } } hasToBeNear = false; for (int j = 0; j < 12; j++) { string text = "HighAuraParty"; string text2 = "Aura"; if (j == 1) { text = "HighStrengthParty"; text2 = "Strength"; } if (j == 2) { text = "HighAgilityParty"; text2 = "Agility"; } if (j == 3) { text = "HighDexterityParty"; text2 = "Dexterity"; } if (j == 4) { text = "HighPaganParty"; text2 = "Pagan"; } if (j == 5) { text = "HighSensoryParty"; text2 = "Sensory"; } if (j == 6) { text = "LowAuraParty"; text2 = "Aura"; } if (j == 7) { text = "LowStrengthParty"; text2 = "Strength"; } if (j == 8) { text = "LowAgilityParty"; text2 = "Agility"; } if (j == 9) { text = "LowDexterityParty"; text2 = "Dexterity"; } if (j == 10) { text = "LowPaganParty"; text2 = "Pagan"; } if (j == 11) { text = "LowSensoryParty"; text2 = "Sensory"; } Character character2 = null; float num2 = 0f; if (j >= 6) { num2 = 100f; } if (num == 1) { int num4; float num3 = character.stats.Stat(text2, false, out num4); if ((num3 >= 20f && j < 6) || (num3 <= 20f && j >= 6)) { character2 = character; } } else { for (int k = 0; k < this.partyList.Count; k++) { if (!this.partyList[k].isBoro && !this.partyList[k].summoned) { float num5 = 0f; if (hasToBeNear) { num5 = (this.partyList[k].tr.position - this.npc1.tr.position).sqrMagnitude; } if (num5 < this.maxPartyDistance * this.maxPartyDistance) { int num7; float num6 = this.partyList[k].stats.Stat(text2, false, out num7); if ((num6 >= 20f && num6 > num2 && j < 6) || (num6 < 20f && num6 < num2 && j >= 6)) { character2 = this.partyList[k]; num2 = num6; } } } } } if (character2) { DialogueLua.SetVariable(text, character2.stats.GetName()); } else { DialogueLua.SetVariable(text, ""); } } } // Token: 0x06000640 RID: 1600 RVA: 0x0008195E File Offset: 0x0007FB5E public void SetSkillsCharacterNear() { this.SetSkillCharacters(true); } // Token: 0x06000641 RID: 1601 RVA: 0x00081967 File Offset: 0x0007FB67 public void SetSkillsCharactersAll() { this.SetSkillCharacters(true); } // Token: 0x06000642 RID: 1602 RVA: 0x00081970 File Offset: 0x0007FB70 public void SetSkillCharacters(bool hasToBeNear) { hasToBeNear = false; int num = 0; string text = ""; string text2 = ""; string text3 = ""; float num2 = 0f; for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].isBoro && !this.partyList[i].summoned) { float num3 = 0f; if (hasToBeNear) { num3 = (this.partyList[i].tr.position - this.npc1.tr.position).sqrMagnitude; } if (num3 < this.maxPartyDistance * this.maxPartyDistance) { num++; if (num == 1) { text = "Party1Skill"; text2 = "Party1"; } if (num == 2) { text = "Party2Skill"; text2 = "Party2"; } if (num == 3) { text = "Party3Skill"; text2 = "Party3"; } if (num == 4) { text = "Party4Skill"; text2 = "Party4"; } float num4 = 0f; string bestSkill = this.partyList[i].stats.GetBestSkill("Weapon", out num4); if (num4 > num2) { num2 = num4; text3 = this.partyList[i].stats.GetName(); } DialogueLua.SetVariable(text2, this.partyList[i].stats.GetName()); DialogueLua.SetVariable(text, bestSkill); } } } DialogueLua.SetVariable("PartySize", num); DialogueLua.SetVariable("BestFighter", text3); } // Token: 0x06000643 RID: 1603 RVA: 0x00081B0C File Offset: 0x0007FD0C public void SetFoodCharacters() { int num = 0; string text = ""; string text2 = ""; string text3 = ""; string text4 = ""; string text5 = ""; string text6 = ""; string text7 = ""; for (int i = 0; i < this.partyList.Count; i++) { if (!this.partyList[i].isBoro && !this.partyList[i].summoned) { num++; if (num == 1) { text = "Party1Skill"; text2 = "Party1"; } if (num == 2) { text = "Party2Skill"; text2 = "Party2"; } if (num == 3) { text = "Party3Skill"; text2 = "Party3"; } if (num == 4) { text = "Party4Skill"; text2 = "Party4"; } string race = this.partyList[i].stats.race; string text8 = ""; if (race == "Yeti") { text8 = Links.x.library.GetInvRowFromName("FoodBlackBuffsWonderful")._DisplayName; text5 = this.partyList[i].stats.GetName(); text6 = "Yeti"; } if (race == "Taratorith") { text8 = Links.x.library.GetInvRowFromName("FoodHealthWonderful")._DisplayName; text4 = this.partyList[i].stats.GetName(); text6 = "Taratorith"; } if (race == "Varuchov") { text8 = Links.x.library.GetInvRowFromName("FoodSpiritWonderful")._DisplayName; text3 = this.partyList[i].stats.GetName(); } if (race == "Pasaaren") { text8 = Links.x.library.GetInvRowFromName("FoodFatigueWonderful")._DisplayName; text4 = this.partyList[i].stats.GetName(); text6 = "Pasaaren"; } if (race == "Ameythevian") { text8 = Links.x.library.GetInvRowFromName("FoodWhiteBuffsWonderful")._DisplayName; text4 = this.partyList[i].stats.GetName(); text6 = "Ameythevian"; } DialogueLua.SetVariable(text2, this.partyList[i].stats.GetName()); DialogueLua.SetVariable(text, text8); } } DialogueLua.SetVariable("PartySize", num); if (text4 == "" && text5 != "") { text4 = text5; text6 = "Yeti"; } if (text4 == "" && text7 != "") { text4 = text7; text6 = "Varuchov"; } DialogueLua.SetVariable("RaceNames", text3); DialogueLua.SetVariable("RaceNames2", text4); DialogueLua.SetVariable("Race", text6); } // Token: 0x06000644 RID: 1604 RVA: 0x00081E00 File Offset: 0x00080000 public void LevelUpStats() { this.GetSelectedDialogueCharacter().stats.LevelUpStats(); this.puzzleActions.UsedFairy(); MasterAudio.PlaySoundAndForget("Feedback", 0.6f, new float?(1f), 0f, "Song Learned", null); } // Token: 0x06000645 RID: 1605 RVA: 0x00081E58 File Offset: 0x00080058 public void TrainSkill1() { DialogueLua.SetVariable("SelectedParty", this.talkingParty[0].stats.GetName()); this.TrainSkill(DialogueLua.GetVariable("TrainingEmeralds1").asInt); } // Token: 0x06000646 RID: 1606 RVA: 0x00081EA0 File Offset: 0x000800A0 public void TrainSkill2() { DialogueLua.SetVariable("SelectedParty", this.talkingParty[1].stats.GetName()); this.TrainSkill(DialogueLua.GetVariable("TrainingEmeralds2").asInt); } // Token: 0x06000647 RID: 1607 RVA: 0x00081EE8 File Offset: 0x000800E8 public void TrainSkill3() { DialogueLua.SetVariable("SelectedParty", this.talkingParty[2].stats.GetName()); this.TrainSkill(DialogueLua.GetVariable("TrainingEmeralds3").asInt); } // Token: 0x06000648 RID: 1608 RVA: 0x00081F30 File Offset: 0x00080130 public void TrainSkill4() { DialogueLua.SetVariable("SelectedParty", this.talkingParty[3].stats.GetName()); this.TrainSkill(DialogueLua.GetVariable("TrainingEmeralds4").asInt); } // Token: 0x06000649 RID: 1609 RVA: 0x00081F78 File Offset: 0x00080178 public void TrainSkillFree() { this.party = this.GetSelectedDialogueCharacter(); string text = "SkillTrained"; string text2 = "_whips"; if (this.skillNumber == 0) { text2 = "_armor"; } if (this.skillNumber == 1) { text2 = "_armor"; } if (this.skillNumber == 2) { text2 = "_armor"; } if (this.skillNumber == 3) { text2 = "_armor"; } if (this.skillNumber == 4) { text2 = "_swords"; } if (this.skillNumber == 5) { text2 = "_swords"; } if (this.skillNumber == 6) { text2 = "_scepter"; } if (this.skillNumber == 7) { text2 = "_dagers"; } if (this.skillNumber == 8) { text2 = "_spear"; } if (this.skillNumber == 9) { text2 = "_dagers"; } if (this.skillNumber == 10) { text2 = "_blowpipe"; } if (this.skillNumber == 11) { text2 = "_blowpipe"; } if (this.skillNumber == 12) { text2 = "_blowpipe"; } if (this.skillNumber == 13) { text2 = "_axe"; } if (this.skillNumber == 14) { text2 = "_shields"; } if (this.skillNumber == 15) { text2 = "_shields"; } if (this.skillNumber == 16) { text2 = "_divine"; } if (this.skillNumber == 17) { text2 = "_pagan"; } if (this.skillNumber == 18) { text2 = "_pagan"; } if (this.skillNumber == 19) { text2 = "_pagan"; } if (this.skillNumber == 20) { text2 = "_dagers"; } if (this.skillNumber == 21) { text2 = "_dagers"; } if (this.skillNumber == 22) { text2 = "_dagers"; } if (this.skillNumber == 23) { text2 = "_divine"; } if (this.skillNumber == 24) { text2 = "_divine"; } if (this.skillNumber == 25) { text2 = "_divine"; } if (this.skillNumber == 26) { text2 = "_instrument"; } if (this.skillNumber == 27) { text2 = "_instrument"; } if (this.skillNumber == 28) { text2 = "_instrument"; } if (this.skillNumber == 29) { text2 = "_instrument"; } if (this.skillNumber == 30) { text2 = ""; } if (this.skillNumber == 31) { text2 = ""; } if (this.skillNumber == 32) { text2 = ""; } if (this.skillNumber == 33) { text2 = ""; } if (this.skillNumber == 34) { text2 = ""; } if (this.skillNumber == 35) { text2 = "_whips"; } MasterAudio.PlaySoundAndForget("Feedback", Random.Range(0.6f, 0.9f), new float?(Random.Range(0.8f, 1f)), 0f, text + text2, null); this.str.Clear(); this.str.Append("Increased "); this.str.Append(Links.x.manual.DisplayNameFromIndex(this.skillNumber, this.party)); this.str.Append(" +"); this.str.Append(3); int num = this.talkingParty.IndexOf(this.party); if (num == 0) { this.message1.SetActive(true); this.messageImg1.sprite = this.skillTrainingIcon.sprite; this.messageImg1.enabled = true; this.messageText1.text = this.str.ToString(); } if (num == 1) { this.message2.SetActive(true); this.messageImg1.sprite = this.skillTrainingIcon.sprite; this.messageImg1.enabled = true; this.messageText2.text = this.str.ToString(); } if (num == 2) { this.message3.SetActive(true); this.messageImg1.sprite = this.skillTrainingIcon.sprite; this.messageImg1.enabled = true; this.messageText3.text = this.str.ToString(); } if (num == 3) { this.message4.SetActive(true); this.messageImg1.sprite = this.skillTrainingIcon.sprite; this.messageImg1.enabled = true; this.messageText4.text = this.str.ToString(); } this.messagedOn = 0; } // Token: 0x0600064A RID: 1610 RVA: 0x000823B0 File Offset: 0x000805B0 public void TrainSkill(int ems) { Links.x.inventory.emeralds -= ems; string[] array = new string[5]; array[0] = Links.x.inventory.emeralds.ToString(); array[1] = " "; array[2] = ems.ToString(); array[3] = " "; int num = 4; Character character = this.party; array[num] = ((character != null) ? character.ToString() : null); Debug.Log(string.Concat(array)); DialogueLua.SetVariable("Emeralds", Links.x.inventory.emeralds); if (ems > 0) { MasterAudio.PlaySoundAndForget("Inventory", 0.6f, new float?(1f), 0f, "Coins", null); } this.GetSelectedDialogueCharacter().stats.IncreaseSkill(this.skillNumber, 1); this.Train(1); } // Token: 0x0600064B RID: 1611 RVA: 0x00082498 File Offset: 0x00080698 public void Train(int num) { this.SetExit(); this.messagedOn = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; Character character = this.talkingParty[0]; string text = Links.x.inventory.emeralds.ToString(); this.emeraldText.text = text; if (character) { int num6 = (int)character.stats.GetSkill(this.skillNumber); num2 = num6 * 2; this.message1.SetActive(true); this.messageImg1.sprite = this.emeraldsSprite; this.messageImg1.enabled = true; this.messageText1.text = string.Concat(new string[] { this.skillTrainingName, " ", num6.ToString(), "\nCost: ", num2.ToString(), " emeralds" }); } Character character2 = this.talkingParty[1]; if (character2) { int num7 = (int)character2.stats.GetSkill(this.skillNumber); num3 = num7 * 2; this.message2.SetActive(true); this.messageImg2.sprite = this.emeraldsSprite; this.messageImg2.enabled = true; this.messageText2.text = string.Concat(new string[] { this.skillTrainingName, " ", num7.ToString(), "\nCost: ", num3.ToString(), " emeralds" }); } Character character3 = this.talkingParty[2]; if (character3) { int num8 = (int)character3.stats.GetSkill(this.skillNumber); num4 = num8 * 2; this.message3.SetActive(true); this.messageImg3.sprite = this.emeraldsSprite; this.messageImg3.enabled = true; this.messageText3.text = string.Concat(new string[] { this.skillTrainingName, " ", num8.ToString(), "\nCost: ", num4.ToString(), " emeralds" }); } Character character4 = this.talkingParty[3]; if (character4) { int num9 = (int)character4.stats.GetSkill(this.skillNumber); num5 = num9 * 2; this.message4.SetActive(true); this.messageImg4.sprite = this.emeraldsSprite; this.messageImg4.enabled = true; this.messageText4.text = string.Concat(new string[] { this.skillTrainingName, " ", num9.ToString(), "\nCost: ", num5.ToString(), " emeralds" }); } DialogueLua.SetVariable("TrainingEmeralds1", num2); DialogueLua.SetVariable("TrainingEmeralds2", num3); DialogueLua.SetVariable("TrainingEmeralds3", num4); DialogueLua.SetVariable("TrainingEmeralds4", num5); if (num == 0) { int asInt = DialogueLua.GetVariable("TrainingNode").asInt; DialogueEntry dialogueEntry = DialogueManager.masterDatabase.GetDialogueEntry(DialogueManager.lastConversationID, asInt); DialogueManager.conversationController.GotoState(DialogueManager.conversationModel.GetState(dialogueEntry)); } } // Token: 0x0600064C RID: 1612 RVA: 0x00082800 File Offset: 0x00080A00 private void SetTrainingIcon(string n) { if (n == "Robes") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_armorChain_sprite_square"); this.skillNumber = 0; this.skillTrainingName = "Robes"; } if (n == "Pearl") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_armorChain_sprite_square"); this.skillNumber = 1; this.skillTrainingName = "Pearl"; } if (n == "Crimscale") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_armorChain_sprite_square"); this.skillNumber = 2; this.skillTrainingName = "Crimscale"; } if (n == "Stonewood") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_armorChain_sprite_square"); this.skillNumber = 3; this.skillTrainingName = "Stonewood"; } if (n == "ShortSword") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_shortSword_X_minorevReserve_square"); this.skillNumber = 4; this.skillTrainingName = "Short Sword"; } if (n == "LongSword") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_giantSword_X_minorevReserve_square"); this.skillNumber = 5; this.skillTrainingName = "Long Sword"; } if (n == "Scepter") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_scepterSingle_X_minorevReserve_square"); this.skillNumber = 6; this.skillTrainingName = "Scepter"; } if (n == "Ax") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_ax_X_MinorevReserve_square"); this.skillNumber = 7; this.skillTrainingName = "Ax"; } if (n == "Pole") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_spear_X_minorevReserve_square"); this.skillNumber = 8; this.skillTrainingName = "Pole"; } if (n == "Multi-Hand") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("fist"); this.skillNumber = 9; this.skillTrainingName = "Multi-Hand"; } if (n == "Bow") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_bow_X_minorevReserve_square"); this.skillNumber = 10; this.skillTrainingName = "Bow"; } if (n == "Sling") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_sling_X_MinorevReserve_square"); this.skillNumber = 11; this.skillTrainingName = "Slings"; } if (n == "Elixir") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_elyxerbaglesser_sqaure"); this.skillNumber = 12; this.skillTrainingName = "Elyxir"; } if (n == "Hand-to-Hand") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("fist"); this.skillNumber = 13; this.skillTrainingName = "Unarmed"; } if (n == "LargeShield") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_shield_AME_sprite_square"); this.skillNumber = 14; this.skillTrainingName = "Large Shield"; } if (n == "SmallShield") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_shield_AME_sprite_square"); this.skillNumber = 15; this.skillTrainingName = "Small Shield"; } if (n == "Bindings") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_resource_gem_Moonstone_square"); this.skillNumber = 16; this.skillTrainingName = "Intercessions"; } if (n == "Fauna") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_resource_gemAmeythystPiece_poor_square"); this.skillNumber = 17; this.skillTrainingName = "Fauna"; } if (n == "Vines") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_resource_gemCitrinePiece_poor_square"); this.skillNumber = 18; this.skillTrainingName = "Vines"; } if (n == "Spores") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_resource_gemGarnetPiece_poor_square"); this.skillNumber = 19; this.skillTrainingName = "Spores"; } if (n == "Lockpick") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_puzzle_key_garrison_1_square"); this.skillNumber = 20; this.skillTrainingName = "Lockpicking"; } if (n == "Sneaking") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_Action_Sneak_square"); this.skillNumber = 21; this.skillTrainingName = "Sneaking"; } if (n == "Bartering") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_resource_EmeraldPile_mid_square"); this.skillNumber = 22; this.skillTrainingName = "Bartering"; } if (n == "Fish") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_puzzle_scrolls_empty_square"); this.skillNumber = 23; this.skillTrainingName = "Charm Fish"; } if (n == "Forest") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_puzzle_scrolls_empty_square"); this.skillNumber = 24; this.skillTrainingName = "Charm Forest"; } if (n == "Shroom") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_puzzle_scrolls_empty_square"); this.skillNumber = 25; this.skillTrainingName = "Charm Shroom"; } if (n == "Flute") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_use_flute_wood_square"); this.skillNumber = 26; this.skillTrainingName = "Flute"; } if (n == "Horn") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_use_horn_clay_square"); this.skillNumber = 27; this.skillTrainingName = "Horn"; } if (n == "Pipe") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_use_shephpipes_wood_square"); this.skillNumber = 29; this.skillTrainingName = "Shepard Pipes"; } if (n == "Whip") { this.skillTrainingIcon.sprite = Links.x.archives.GetItem("item_weapon_FlailWhip_X_minorevReserve_square"); this.skillNumber = 35; this.skillTrainingName = "Whip"; } } // Token: 0x0600064D RID: 1613 RVA: 0x00082F66 File Offset: 0x00081166 public void Animate(string animName) { this.vignettes.PlayAnimation(animName, true); } // Token: 0x0600064E RID: 1614 RVA: 0x00082F75 File Offset: 0x00081175 public void SetFaceAnimation(string animName) { DialogueLua.SetVariable("FaceAnimation", animName); } // Token: 0x0600064F RID: 1615 RVA: 0x00082F84 File Offset: 0x00081184 public void PlayFaceAnimation(string zoomActor) { Character character = null; if (zoomActor == "Party") { character = this.party; } else if (zoomActor == "NPC") { character = this.npc1; } else if (zoomActor == "NPC2") { character = this.npc2; } else if (zoomActor == "NPC3") { character = this.npc3; } else if (zoomActor == "NPC4") { character = this.npc4; } else if (zoomActor == "NPC5") { character = this.npc5; } else if (zoomActor == "Responder") { character = this.respondCharacter; } if (character && character.body.headAnim) { character.body.headAnim.PlayAnimation(DialogueLua.GetVariable("FaceAnimation").asString); } } // Token: 0x06000650 RID: 1616 RVA: 0x0008306A File Offset: 0x0008126A public void PlaySmile() { this.playSmile = true; } // Token: 0x06000651 RID: 1617 RVA: 0x00083074 File Offset: 0x00081274 public void PlayAngry() { if (this.vignettes.body && this.vignettes.body.headAnim) { this.vignettes.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.LookUp); } } // Token: 0x06000652 RID: 1618 RVA: 0x000830C0 File Offset: 0x000812C0 public void PlayShock() { this.playShock = true; } // Token: 0x06000653 RID: 1619 RVA: 0x000830CC File Offset: 0x000812CC public void PlaySad() { if (this.vignettes.body && this.vignettes.body.headAnim) { this.vignettes.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.LookDown); } } // Token: 0x06000654 RID: 1620 RVA: 0x00083118 File Offset: 0x00081318 public void PlayShifty() { if (this.vignettes.body && this.vignettes.body.headAnim) { this.vignettes.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Shifty); } } // Token: 0x06000655 RID: 1621 RVA: 0x00083165 File Offset: 0x00081365 public void PlayEyeRoll() { if (this.vignettes && this.vignettes.body.headAnim) { this.vignettes.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.EyeRoll); } } // Token: 0x06000656 RID: 1622 RVA: 0x000831A2 File Offset: 0x000813A2 public void SetSmile() { } // Token: 0x06000657 RID: 1623 RVA: 0x000831A4 File Offset: 0x000813A4 public void SetNone() { if (this.vignettes.body && this.vignettes.body.headAnim) { this.vignettes.body.headAnim.PlayAnimation(FaceAnimations.AnimationNames.Blink); } } // Token: 0x06000658 RID: 1624 RVA: 0x000831F0 File Offset: 0x000813F0 public void SetFrown() { } // Token: 0x06000659 RID: 1625 RVA: 0x000831F2 File Offset: 0x000813F2 public void SetAngry() { } // Token: 0x0600065A RID: 1626 RVA: 0x000831F4 File Offset: 0x000813F4 public void SetPlaylist(string x) { Debug.Log(x); Links.x.gaia.SetPlaylist(x, true, 0f); } // Token: 0x0600065B RID: 1627 RVA: 0x00083212 File Offset: 0x00081412 public void EndOpeningPavura() { this.SetSkipKey(false); } // Token: 0x0600065C RID: 1628 RVA: 0x0008321B File Offset: 0x0008141B public void EndScribe() { this.SetSkipKey(false); base.StartCoroutine(this.EndScribeTimed()); } // Token: 0x0600065D RID: 1629 RVA: 0x00083231 File Offset: 0x00081431 private IEnumerator EndScribeTimed() { QuestLog.SetQuestState("CharacterCreation", QuestState.Success); Links.x.inventory.emeralds = 250; Library.Inventory inventory = Links.x.library.GetInvRowFromName("ScribeBoatOrder"); global::Item item; ItemEquipped itemEquipped; Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, Vector3.zero, Vector3.zero, new Vector4((float)inventory._DurabilityMax, 0f, 0f, 0f), Links.x.main, false, false, out item, out itemEquipped); yield return new WaitForSeconds(0.01f); inventory = Links.x.library.GetInvRowFromName("ScribeMapInvimona"); Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, Vector3.zero, Vector3.zero, new Vector4((float)inventory._DurabilityMax, 0f, 0f, 0f), Links.x.main, false, false, out item, out itemEquipped); yield return new WaitForSeconds(0.01f); inventory = Links.x.library.GetInvRowFromName("ScribeMapLighthouse"); Links.x.inventory.AddFromGround(null, null, 0, false, 0f, inventory._ID, 1, Vector3.zero, Vector3.zero, new Vector4((float)inventory._DurabilityMax, 0f, 0f, 0f), Links.x.main, false, false, out item, out itemEquipped); this.SetSkipKey(true); yield break; } // Token: 0x0600065E RID: 1630 RVA: 0x00083240 File Offset: 0x00081440 public void CheckCinematicDialogues(string dialogueFile) { if (dialogueFile == "FortenLazure/InnFighter") { bool flag = Links.x.sensory.CheckSneaking(this.npc1, true, null, false, false); Character character = Links.x.diorama.FindCharacter("LazureInnFightPatronB"); bool flag2 = false; bool flag3 = false; bool flag4 = false; this.npc1 = null; if (character) { if (!character.dead && !character.downed && !character.stunned) { this.npc2 = character; } if (character.hostility == 2 || character.attackingUntilBribe || character.fleeing) { this.npc2 = null; this.stopDialogue = true; } character.stats.initiateDialogue = 0; flag2 = true; } if (QuestLog.GetQuestState("C6_GobletGuildThievesB") == QuestState.Unassigned && !flag2) { flag2 = true; } character = Links.x.diorama.FindCharacter("LazureInnFightPatronC"); if (character) { if (!character.dead && !character.downed && !character.stunned) { this.npc3 = character; } if (character.hostility == 2 || character.attackingUntilBribe || character.fleeing) { this.npc3 = null; this.stopDialogue = true; } character.stats.initiateDialogue = 0; } if (QuestLog.GetQuestState("C6_GobletGuildThievesC") == QuestState.Unassigned && !flag3) { flag3 = true; } character = Links.x.diorama.FindCharacter("LazureInnFightPatronA"); if (character) { if (!character.dead && !character.downed && !character.stunned) { this.npc1 = character; } if (character.hostility == 2 || character.attackingUntilBribe || character.fleeing) { this.npc1 = null; this.stopDialogue = true; } character.stats.initiateDialogue = 0; } if (QuestLog.GetQuestState("C6_GobletGuildThievesA") == QuestState.Unassigned && !flag4) { flag4 = true; } if (Records.x.editor) { string[] array = new string[16]; array[0] = "Inn fighter dialogue quest: "; array[1] = flag.ToString(); array[2] = " "; int num = 3; Character character2 = this.npc1; array[num] = ((character2 != null) ? character2.ToString() : null); array[4] = " "; int num2 = 5; Character character3 = this.npc2; array[num2] = ((character3 != null) ? character3.ToString() : null); array[6] = " "; int num3 = 7; Character character4 = this.npc3; array[num3] = ((character4 != null) ? character4.ToString() : null); array[8] = " "; array[9] = flag4.ToString(); array[10] = " "; array[11] = flag2.ToString(); array[12] = " "; array[13] = flag3.ToString(); array[14] = " "; array[15] = Records.x.combat.ToString(); Debug.Log(string.Concat(array)); } if (!this.npc3 || !this.npc2 || !this.npc1) { this.initiateNum = 0; if (!this.npc1) { if (Links.x.gameplay.character) { this.npc1 = Links.x.gameplay.character; } if (!this.npc1 && this.npc2) { this.npc1 = this.npc2; } if (!this.npc1 && !this.npc2) { this.npc1 = this.npc3; } this.npc2 = null; this.npc3 = null; } if (flag) { this.stopDialogue = true; } } else { DialogueLua.SetVariable("VignetteAnimController", "Left"); } } if (dialogueFile == "WestRuins/Captain") { this.npc2 = Links.x.GetPortraitID(0); this.npc3 = Links.x.GetPortraitID(1); this.npc4 = Links.x.GetPortraitID(2); this.npc5 = Links.x.GetPortraitID(3); } } // Token: 0x0600065F RID: 1631 RVA: 0x0008361E File Offset: 0x0008181E public void BanquetIsleCompanion() { this.vignettes.BanquetIsleCompanion(); } // Token: 0x06000660 RID: 1632 RVA: 0x0008362B File Offset: 0x0008182B public void SetVariableInt(string n, int set) { DialogueLua.SetVariable(n, set); } // Token: 0x06000661 RID: 1633 RVA: 0x00083639 File Offset: 0x00081839 public bool CheckToSwitchCamera(string n) { return false; } // Token: 0x06000662 RID: 1634 RVA: 0x0008363C File Offset: 0x0008183C public void Peddler(Character quipNPC) { base.StartCoroutine(this.PeddlerScreen(quipNPC)); } // Token: 0x06000663 RID: 1635 RVA: 0x0008364C File Offset: 0x0008184C private IEnumerator PeddlerScreen(Character quipNPC) { yield return new WaitForSecondsRealtime(0.1f); while (quipNPC.turning) { yield return null; } Links.x.characterSheet.merchant = true; Links.x.characterSheet.blacksmith = false; Links.x.characterSheet.pagan = false; Links.x.merchant.isBoat = false; Links.x.merchant.merchantCharacter = quipNPC; Links.x.characterSheet.peddler = quipNPC.stats.xmlName; Links.x.merchant.SetUpItems(); yield return new WaitForSecondsRealtime(0.1f); Links.x.characterSheet.StartMenu(false); yield break; } // Token: 0x06000664 RID: 1636 RVA: 0x0008365C File Offset: 0x0008185C public void OpenSongStore() { Links.x.characterSheet.merchant = false; Links.x.characterSheet.blacksmith = false; Links.x.characterSheet.pagan = false; Links.x.characterSheet.minstrel = true; Links.x.merchant.isBoat = false; Links.x.merchant.merchantCharacter = this.npc1; Links.x.characterSheet.peddler = this.npc1.stats.xmlName; Links.x.characterSheet.StartMenu(false); this.system.StopConversation(); } // Token: 0x06000665 RID: 1637 RVA: 0x00083708 File Offset: 0x00081908 public string FindQuip(Character quipNPC, string filename) { this.quipping = true; string text = ""; string text2 = ""; string sceneName = Links.x.diorama.sceneName; string xmlName = quipNPC.stats.xmlName; if (sceneName.Contains("C6")) { if (xmlName == "LazurePatronDuraMessenger") { text = "I'll not return to Aven Dura without news of the fight, be it victory or defeat."; } if (xmlName == "LazureBarPatronC") { text = "It's a long road back to Porta Dun, I should fortify myself."; } if (xmlName == "LazureBarPatronD") { text = "Do you think Florina knows my name yet? Best to order another round."; } if (xmlName == "LazureBarPatronE") { text = "Did you see the mercenary army? From the Staglands, I hear. The Pavura will surely prevail with such a force."; } if (xmlName == "LazurePeddler") { text = ""; base.StartCoroutine(this.PeddlerScreen(quipNPC)); } if (xmlName == "LazureShipwright") { text = "Speak with Mihal Scrith-sil if you desire a boat. I've none to give."; } if (xmlName == "LazureMushroomFarmerB") { text = "Think you that Renazin sappers might reach this cavern? My ears strain to hear scrapes and shovels."; } if (xmlName == "LazureBoroHerder") { text = "You can pet the boro if you wish."; } if (xmlName == "LazureWeaponMerchant") { text = "A strong guard needs a strong weapon! Minorev's standard issue bronze."; } if (xmlName == "LazureElixirMerchant") { text = "You'll not find a better-crafted globe than these, not from here to Porta Dun."; } if (xmlName == "LazureMusicMerchant") { text = "The finest instruments, straight from the amethyst halls of Stran Sura!"; } if (xmlName == "LazureArmorMerchant") { text = "Topa-din! My customers always return in one piece!"; } if (xmlName == "LazureCharmMerchant") { text = "Charm bells here, hand crafted for a smooth bond!"; } if (xmlName == "LazureFletcher") { text = "Get your suplies for the road! New arrows in stock!"; } if (xmlName == "LazureGuardDayGateA") { text = "The forest encroaches and the beasts grow bold. We will look for your return."; } if (xmlName == "LazureGuardNightGateB") { text = "Dark this hour, dark this cursed frontier."; } if (xmlName == "LazureMihalson") { text = "Topa-din! I watch for ships on the horizon."; } if (xmlName == "LazureChildB") { text = "I'm not to return without a bag of shells."; } if (xmlName == "DryadD") { text = "Vol grows stronger."; } if (xmlName == "DryadE") { text = "This is not your home."; } if (xmlName == "DryadF") { text = "You frighten the little ones."; } if (xmlName == "DryadG") { text = "Your body wrappings are soft."; } if (xmlName == "DryadH") { text = "Vol waits for her."; } if (xmlName == "DryadJ") { text = "The others beyond the mountain, can you feel it?"; } } if (sceneName.Contains("F4") && xmlName == "LachoPriestStart") { text = "I cannot resist him!"; } if (sceneName.Contains("C5")) { if (xmlName == "DuraCampGuardA") { text = "We are glad to have your strength among us."; } if (xmlName == "DuraCampGuardC") { text = "Together we will keep this camp safe."; } if (xmlName == "DuraCampGuardD") { text = "How now, friend? We will look for your return."; } if (xmlName == "DuraCampGuardB") { text = "Green everywhere I look. The Pavura is lucky to have a rain spirit so near."; } if (xmlName == "DuraCampGeneralMerchant") { text = "Your business is a brightness in this ill-made venture."; } if (xmlName == "DuraCampWoman") { text = "I wish we would linger no more."; } if (xmlName == "DuraCampPeddler") { text = "Unburden yourself of unwanted goods, and I'll fill your purse fresh and full!"; base.StartCoroutine(this.PeddlerScreen(quipNPC)); } } if (sceneName.Contains("D5")) { if (xmlName == "WestRuinsDura1") { text = "At least that Grave Keeper was slain ere we arrived, I'd not wish to meet one in battle."; } if (xmlName == "WestRuinsDura2") { text = "This venture has been ill-fated, but I am relieved to have a respite from wolf patrols."; } if (xmlName == "WestRuinsHostage1") { text = "To have been captured is a shame, I beg you to tell none that need not know."; } if (xmlName == "WestRuinsHostage2") { text = "May Vol twist the legs and arms of all robbers like his tangled Bittersweet vines 'til they beg for death!"; } if (xmlName == "WestRuinsHostage3") { text = "This slight to House Dura will not go unavenged!"; } } if (sceneName.Contains("D6")) { if (xmlName == "RenazinInformantFarmer") { text = "All quiet in Rozafir."; } if (xmlName == "RozafirDolkiA") { text = "Hisssss!"; } if (xmlName == "RozafirDolkiB") { text = "Hissssssss"; } if (xmlName == "RozafirDolkiC") { text = "Hisssss"; } if (xmlName == "RozafirDolkiD") { text = "Hiss!"; } if (xmlName == "RozafirDolkiE") { text = "Hisssssssssss"; } if (xmlName == "RozafirDolkiF") { text = "Hisss!"; } if (xmlName == "RozafirPatrolDay") { text = "Good to have you at Rozafir, we could use your strength."; } if (xmlName == "RozafirPatrolNight") { text = "So many wandering around at night, hard to keep track of everyone."; } if (xmlName == "RozafirNewStorekeep") { text = "Only the best for the guards of Lazure."; } if (xmlName == "RozafirAboveMerchantA") { text = "My wares are yours, but for an emerald or three."; } if (xmlName == "RozafirAboveMerchantB") { text = "Hands to yourself, please you."; } if (xmlName == "RozafirBarkeep") { text = "My mulled mead is your best friend on a patrol."; } if (xmlName == "RozafirBoroHerder") { text = "I would be willing to trade boro if your needs a rest."; } if (xmlName == "RozafirUndergroundMerchant") { if (QuestLog.GetQuestState("D6_Fence") == QuestState.Unassigned) { text = "I'll suffer no thieves."; } else { text = "Let's do business"; base.StartCoroutine(this.PeddlerScreen(quipNPC)); } } if (xmlName == "RozafirPeddler") { text = ""; base.StartCoroutine(this.PeddlerScreen(quipNPC)); } if (xmlName == "RozafirCook") { text = "The guard is always welcome to share our food."; } if (xmlName == "RozafirCookDownstairs") { text = "We are grateful for your protection."; } if (xmlName == "RozafirCookApprentice") { text = "I do not wish to be in your way."; } if (xmlName == "RozafirFarmerA") { text = "Please step lightly about the crops."; } if (xmlName == "RozafirFarmerB") { text = "The Pavura will be pleased with the harvest this year."; } if (xmlName == "RozafirFarmerJ") { text = "I would wish for more dew, but the peppura is hardy."; } if (xmlName == "RozafirFarmerC") { text = "Too much sunlight up above. Better to stay down here if you ask me."; } if (xmlName == "RozafirFarmerD") { text = "Not much longer 'til harvest."; } if (xmlName == "RozafirFarmerE") { text = "The reeve is in her quarters, if you seek her."; } if (xmlName == "RozafirFarmerF") { text = "Topa-din, guard."; } if (xmlName == "RozafirFarmerG") { text = "Step lightly 'round the peppura."; } if (xmlName == "RozafirFarmerH") { text = "Good to see another guard about, too few as it is."; } if (xmlName == "RozafirFarmerI") { text = "Step lightly 'round the peppura."; } if (xmlName == "RozafirFarmerK") { text = "More tillers would be welcome, if the Pavura asks."; } if (xmlName == "RozafirFarmerL") { text = "Good looking crop this year."; } if (xmlName == "RozafirFarmerM") { text = "Glad to see another guard patrolling. I fear to leave the hold."; } if (xmlName == "RozafirChildA") { text = "Topa-din!"; } if (xmlName == "RozafirChildB") { text = "Don't step on the peppura!"; } if (xmlName == "RozafirChildC") { text = "Wish we could have a holiday."; } if (xmlName == "RozafirStoreKeep") { text = "Welcome to Cristian's Fine Goods!"; } if (xmlName == "RozafirStoreGuardA") { text = "Hands to yourself."; } if (xmlName == "RozafirStoreGuardB") { text = "Touch only what you mean to buy."; } if (xmlName == "RozafirFarmerN") { text = "Music is good today."; } if (xmlName == "RozafirFarmerO") { text = "Nothing like Vali's gin after tending the peppura."; } if (xmlName == "RozafirFarmerP") { text = "Topa-din, guard."; } if (xmlName == "RozafirFarmerQ") { text = "Mayhap you should visit the baths?"; } if (xmlName == "RozafirFarmerB") { text = "Sela's glow is too harsh, I fear. I will return to Minorev after the harvest."; } if (xmlName == "RozafirFarmerS") { text = "We are grateful for your protection."; } if (xmlName == "RozafirFarmerT") { text = "Glad to see more guards about."; } if (xmlName == "RozafirFarmerU") { text = "Do you hear music, faintly?"; } if (xmlName == "RozafirFarmerV") { text = "Regards to the Forten."; } if (xmlName == "RozafirWorkerD") { text = "Aven Dura might have more trappings of luxury, but the Rozafir underkeep is truly a hidden gem."; } if (xmlName == "RozafirWorkerE") { text = "I pray the great mushroom keeps the shroomers away, that the dancers might never stop."; } if (xmlName == "RozafirWorkerC") { text = "Thirsty work, tending peppura."; } if (xmlName == "RozafirWorkerB") { text = "What ho, guard?"; } if (xmlName == "RozafirFarmerR") { text = "The cook is wroth with me, for I have eaten every last velvet browncap."; } if (xmlName == "RozafirWorkerA") { text = "This will be a great harvest, for Sela has blessed us with a gentle summer."; } if (xmlName == "RozafirWorkerF") { text = "A long soak followed by gin and good company is all I need."; } if (xmlName == "RozafirChildD") { text = "I fear the crop goblins."; } if (xmlName == "RozafirChildF") { text = "I wish to be a guard like you."; } if (xmlName == "RozafirChildE") { text = "Don't stand on the vegetables!"; } } if (sceneName.Contains("E6")) { if (xmlName == "FallsBanditB") { text = "I fear the crop goblins and their pet shroomers!"; } if (xmlName == "FallsFarmerB") { text = "What ho, guards! Safe travels to you."; } if (xmlName == "FallsGuard") { text = "Beware the sand foxes, for I killed their pack leader and they've gone mad."; } if (xmlName.Contains("Dolki")) { int num = Random.Range(0, 6); if (num == 0) { text = "Hisssss!"; } if (num == 1) { text = "Hissssssss"; } if (num == 2) { text = "Hisssss"; } if (num == 3) { text = "Hiss!"; } if (num == 4) { text = "Hisssssssssss"; } if (num == 5) { text = "Hisss!"; } } } if (filename.Contains("Party/ExileIsland")) { text = "We should report this criminal, and quickly, before they awaken."; } if (filename.Contains("Party/Camping Attack")) { text = "Beasts in the camp! Wake up, make haste!"; } if (filename.Contains("Party/ChalkRubbing")) { if (this.PartyHasItem("ChalkRubbingKit", 1.0)) { text = "I'll need a chalk rubbing kit to record this."; } else { this.StartPuzzle(); } } if (text != "" && text2 == "") { if (this.quipCoroutine != null) { base.StopCoroutine(this.quipCoroutine); this.quipCoroutine = null; } this.quipCoroutine = this.Quipping(quipNPC, text); base.StartCoroutine(this.quipCoroutine); return ""; } this.quipping = false; return text2; } // Token: 0x06000666 RID: 1638 RVA: 0x0008401F File Offset: 0x0008221F private IEnumerator Quipping(Character quipNPC, string x) { Links.x.itemPickupFX.gameObject.SetActive(true); Links.x.itemPickupFX.gameObject.GetComponent().Play("Idle"); Vector3 position = quipNPC.body.GetHead().position; Vector3 vector = Links.x.worldCamera.WorldToScreenPoint(position); vector.z = 0f; vector.x = vector.x * (1920f / (float)Screen.width) - 960f; vector.y = vector.y * (Links.x.canvasRT.sizeDelta.y / (float)Screen.height) - Links.x.canvasRT.sizeDelta.y / 2f; Links.x.itemPickupFX.localPosition = vector; MasterAudio.PlaySoundAndForget("Feedback", Random.Range(0.5f, 0.7f), new float?(1f), 0f, "StartDialogue", null); if (!quipNPC.resting) { quipNPC.SetRotation(Quaternion.LookRotation(Links.x.main.tr.position - quipNPC.tr.position), false, false); } Links.x.main.TargetReached(); while (Links.x.main.moving) { yield return null; } Links.x.fellowship.SetPartyRotation(quipNPC.tr.position); Links.x.main.alwaysTurn = true; Links.x.main.SetRotation(Quaternion.LookRotation(quipNPC.tr.position - Links.x.main.tr.position), false, false); yield return new WaitForSeconds(0.02f); while (Links.x.main.turning || quipNPC.turning) { yield return null; } if (!quipNPC.resting) { quipNPC.PlayAnimation("Talk_1", 0f); } Links.x.hudControl.AddRemoveInteraction(false, quipNPC, null, null, null, null, null, null); quipNPC.StartQuip(x); this.quipCoroutine = null; this.quipping = false; yield break; } // Token: 0x06000667 RID: 1639 RVA: 0x0008403C File Offset: 0x0008223C private Character FindArchetype(string type, out bool canFindRandom, out bool useBackUpText, out bool setArchetypeFail) { if (type == "") { type = "Any"; } if (type == null) { type = "Any"; } canFindRandom = true; useBackUpText = false; setArchetypeFail = false; if (type == "Fighter") { Character character = null; float num = -1f; for (int i = 0; i < this.talkingParty.Count; i++) { if (!this.foundParty.Contains(this.talkingParty[i])) { int num3; float num2 = this.talkingParty[i].stats.Stat("Strength", true, out num3); if (num2 > num) { character = this.talkingParty[i]; num = num2; } } } return character; } if (type == "LowArmor") { Character character2 = null; float num4 = 100000f; for (int j = 0; j < this.talkingParty.Count; j++) { if (!this.foundParty.Contains(this.talkingParty[j])) { float skill = this.talkingParty[j].stats.GetSkill(0); float skill2 = this.talkingParty[j].stats.GetSkill(1); float skill3 = this.talkingParty[j].stats.GetSkill(2); float skill4 = this.talkingParty[j].stats.GetSkill(3); float num5 = skill; if (skill2 > num5) { num5 = skill2; } if (skill3 > num5) { num5 = skill3; } if (skill4 > num5) { num5 = skill4; } string[] array = new string[13]; int num6 = 0; Character character3 = this.talkingParty[j]; array[num6] = ((character3 != null) ? character3.ToString() : null); array[1] = " "; array[2] = skill.ToString(); array[3] = " "; array[4] = skill2.ToString(); array[5] = " "; array[6] = skill3.ToString(); array[7] = " "; array[8] = skill4.ToString(); array[9] = " "; array[10] = num5.ToString(); array[11] = " "; array[12] = num4.ToString(); Debug.Log(string.Concat(array)); if (num5 < num4) { character2 = this.talkingParty[j]; num4 = num5; } } } return character2; } if (type == "LowArmorCap") { Character character4 = null; float num7 = 50f; for (int k = 0; k < this.talkingParty.Count; k++) { if (!this.foundParty.Contains(this.talkingParty[k])) { float skill5 = this.talkingParty[k].stats.GetSkill(0); float skill6 = this.talkingParty[k].stats.GetSkill(1); float skill7 = this.talkingParty[k].stats.GetSkill(2); float skill8 = this.talkingParty[k].stats.GetSkill(3); float num8 = skill5; if (skill6 > num8) { num8 = skill6; } if (skill7 > num8) { num8 = skill7; } if (skill8 > num8) { num8 = skill8; } if (num8 < num7) { character4 = this.talkingParty[k]; num7 = num8; } } } if (!character4) { setArchetypeFail = true; } return character4; } if (type == "HighArmor") { Character character5 = null; float num9 = 0f; for (int l = 0; l < this.talkingParty.Count; l++) { if (!this.foundParty.Contains(this.talkingParty[l])) { float skill9 = this.talkingParty[l].stats.GetSkill(0); float skill10 = this.talkingParty[l].stats.GetSkill(1); float skill11 = this.talkingParty[l].stats.GetSkill(2); float skill12 = this.talkingParty[l].stats.GetSkill(3); float num10 = skill9; if (skill10 > num10) { num10 = skill10; } if (skill11 > num10) { num10 = skill11; } if (skill12 > num10) { num10 = skill12; } if (num10 > num9) { character5 = this.talkingParty[l]; num9 = num10; } } } return character5; } if (type == "Musician") { Character character6 = null; float num11 = 0f; for (int m = 0; m < this.talkingParty.Count; m++) { if (!this.foundParty.Contains(this.talkingParty[m])) { float skill13 = this.talkingParty[m].stats.GetSkill(26); float skill14 = this.talkingParty[m].stats.GetSkill(27); float skill15 = this.talkingParty[m].stats.GetSkill(28); float skill16 = this.talkingParty[m].stats.GetSkill(29); float num12 = skill13; if (skill14 > num12) { num12 = skill14; } if (skill15 > num12) { num12 = skill15; } if (skill16 > num12) { num12 = skill16; } if (num12 > num11) { character6 = this.talkingParty[m]; num11 = num12; } } } return character6; } if (type == "LowMusic") { Character character7 = null; float num13 = 10000f; for (int n = 0; n < this.talkingParty.Count; n++) { if (!this.foundParty.Contains(this.talkingParty[n])) { float skill17 = this.talkingParty[n].stats.GetSkill(26); float skill18 = this.talkingParty[n].stats.GetSkill(27); float skill19 = this.talkingParty[n].stats.GetSkill(28); float skill20 = this.talkingParty[n].stats.GetSkill(29); float num14 = skill17; if (skill18 > num14) { num14 = skill18; } if (skill19 > num14) { num14 = skill19; } if (skill20 > num14) { num14 = skill20; } if (num14 < num13) { character7 = this.talkingParty[n]; num13 = num14; } } } return character7; } if (type == "Divine") { Character character8 = null; float num15 = 0f; for (int num16 = 0; num16 < this.talkingParty.Count; num16++) { if (!this.foundParty.Contains(this.talkingParty[num16])) { float skill21 = this.talkingParty[num16].stats.GetSkill(16); if (skill21 > num15) { character8 = this.talkingParty[num16]; num15 = skill21; } } } return character8; } if (type == "Pagan" || type == "Aura" || type == "Sensory" || type == "Dexterity" || type == "Agility" || type == "Strength") { Character character9 = null; float num17 = -1f; for (int num18 = 0; num18 < this.talkingParty.Count; num18++) { if (!this.foundParty.Contains(this.talkingParty[num18])) { int num20; float num19 = this.talkingParty[num18].stats.Stat(type, true, out num20); if (num19 > num17) { character9 = this.talkingParty[num18]; num17 = num19; } } } return character9; } if (type == "SensoryCheck") { canFindRandom = false; Character character10 = null; float num21 = 25f; for (int num22 = 0; num22 < this.talkingParty.Count; num22++) { if (!this.foundParty.Contains(this.talkingParty[num22])) { int num24; float num23 = this.talkingParty[num22].stats.Stat("Sensory", true, out num24); if (num23 > num21) { character10 = this.talkingParty[num22]; num21 = num23; } } } return character10; } if (type == "AuraCap") { useBackUpText = true; Character character11 = null; float num25 = 25f; for (int num26 = 0; num26 < this.talkingParty.Count; num26++) { if (!this.foundParty.Contains(this.talkingParty[num26])) { int num28; float num27 = this.talkingParty[num26].stats.Stat("Aura", true, out num28); if (num27 > num25) { character11 = this.talkingParty[num26]; num25 = num27; } } } return character11; } if (type == "Cautious") { Character character12 = null; float num29 = -1f; for (int num30 = 0; num30 < this.talkingParty.Count; num30++) { if (!this.foundParty.Contains(this.talkingParty[num30])) { int num32; float num31 = this.talkingParty[num30].stats.Stat("Aura", true, out num32); if (num31 > num29) { character12 = this.talkingParty[num30]; num29 = num31; } } } return character12; } if (type == "LowAura") { Character character13 = null; float num33 = 100f; for (int num34 = 0; num34 < this.talkingParty.Count; num34++) { if (!this.foundParty.Contains(this.talkingParty[num34])) { int num36; float num35 = this.talkingParty[num34].stats.Stat("Aura", true, out num36); if (num35 < num33) { character13 = this.talkingParty[num34]; num33 = num35; } } } return character13; } if (type == "Rogue") { Character character14 = null; float num37 = 0f; for (int num38 = 0; num38 < this.talkingParty.Count; num38++) { if (!this.foundParty.Contains(this.talkingParty[num38])) { float skill22 = this.talkingParty[num38].stats.GetSkill(20); float skill23 = this.talkingParty[num38].stats.GetSkill(21); float skill24 = this.talkingParty[num38].stats.GetSkill(22); float num39 = skill22; if (skill23 > num39) { num39 = skill23; } if (skill24 > num39) { num39 = skill24; } if (num39 > num37) { character14 = this.talkingParty[num38]; num37 = num39; } } } return character14; } if (type == "NoCharm") { Character character15 = null; float num40 = 200f; for (int num41 = 0; num41 < this.talkingParty.Count; num41++) { if (!this.foundParty.Contains(this.talkingParty[num41])) { int num43; int num44; float num42 = this.talkingParty[num41].stats.Stat("Sensory", true, out num43) + this.talkingParty[num41].stats.Stat("Agility", true, out num44); if (num42 < num40) { character15 = this.talkingParty[num41]; num40 = num42; } } } return character15; } if (type == "LowDivine") { Character character16 = null; float num45 = 400f; for (int num46 = 0; num46 < this.talkingParty.Count; num46++) { if (!this.foundParty.Contains(this.talkingParty[num46])) { float skill25 = this.talkingParty[num46].stats.GetSkill(16); if (skill25 < num45) { character16 = this.talkingParty[num46]; num45 = skill25; } } } return character16; } if (type == "FluteCheck") { canFindRandom = false; Character character17 = null; float num47 = 55f; for (int num48 = 0; num48 < this.talkingParty.Count; num48++) { if (!this.foundParty.Contains(this.talkingParty[num48])) { float skill26 = this.talkingParty[num48].stats.GetSkill(26); if (skill26 > num47) { character17 = this.talkingParty[num48]; num47 = skill26; } } } return character17; } if (type == "MusicCheck") { canFindRandom = false; Character character18 = null; float num49 = 50f; for (int num50 = 0; num50 < this.talkingParty.Count; num50++) { if (!this.foundParty.Contains(this.talkingParty[num50])) { float skill27 = this.talkingParty[num50].stats.GetSkill(26); float skill28 = this.talkingParty[num50].stats.GetSkill(27); float skill29 = this.talkingParty[num50].stats.GetSkill(29); if (skill27 > num49 || skill28 > num49 || skill29 > num49) { character18 = this.talkingParty[num50]; num49 = skill27; if (skill28 > num49) { num49 = skill28; } if (skill29 > num49) { num49 = skill29; } } } } return character18; } if (type == "Repulsive") { canFindRandom = false; Character character19 = null; float num51 = 12f; for (int num52 = 0; num52 < this.talkingParty.Count; num52++) { if (!this.foundParty.Contains(this.talkingParty[num52])) { int num54; float num53 = this.talkingParty[num52].stats.Stat("Sensory", true, out num54); if (num53 < num51) { character19 = this.talkingParty[num52]; num51 = num53; } } } return character19; } if (type == "DivineCheck") { canFindRandom = false; Character character20 = null; float num55 = 55f; for (int num56 = 0; num56 < this.talkingParty.Count; num56++) { if (!this.foundParty.Contains(this.talkingParty[num56])) { float skill30 = this.talkingParty[num56].stats.GetSkill(16); if (skill30 > num55) { character20 = this.talkingParty[num56]; num55 = skill30; } } } return character20; } if (type == "HighDivine") { canFindRandom = false; Character character21 = null; float num57 = 0f; for (int num58 = 0; num58 < this.talkingParty.Count; num58++) { if (!this.foundParty.Contains(this.talkingParty[num58])) { float skill31 = this.talkingParty[num58].stats.GetSkill(16); if (skill31 > num57) { character21 = this.talkingParty[num58]; num57 = skill31; } } } return character21; } if (type == "HighDivineCheckIfAllSame") { canFindRandom = false; bool flag = true; float skill32 = this.talkingParty[0].stats.GetSkill(16); for (int num59 = 1; num59 < this.talkingParty.Count; num59++) { if (!this.foundParty.Contains(this.talkingParty[num59]) && this.talkingParty[num59].stats.GetSkill(16) != skill32) { flag = false; } } Character character22 = null; float num60 = 0f; for (int num61 = 0; num61 < this.talkingParty.Count; num61++) { if (!this.foundParty.Contains(this.talkingParty[num61])) { float skill33 = this.talkingParty[num61].stats.GetSkill(16); if (skill33 > num60 && (!flag || num61 != 0)) { character22 = this.talkingParty[num61]; num60 = skill33; } } } return character22; } if (type == "Dealmaker") { canFindRandom = false; Character character23 = null; float num62 = 55f; for (int num63 = 0; num63 < this.talkingParty.Count; num63++) { if (!this.foundParty.Contains(this.talkingParty[num63])) { float skill34 = this.talkingParty[num63].stats.GetSkill(22); if (skill34 > num62) { character23 = this.talkingParty[num63]; num62 = skill34; } } } return character23; } if (type == "Honorable") { Character character24 = null; float num64 = 0f; for (int num65 = 0; num65 < this.talkingParty.Count; num65++) { if (!this.foundParty.Contains(this.talkingParty[num65])) { int num67; int num68; float num66 = this.talkingParty[num65].stats.Stat("Strength", true, out num67) + this.talkingParty[num65].stats.Stat("Aura", true, out num68); if (num66 > num64) { character24 = this.talkingParty[num65]; num64 = num66; } } } return character24; } if (type == "LowFatigue") { Character character25 = null; float num69 = float.PositiveInfinity; for (int num70 = 0; num70 < this.talkingParty.Count; num70++) { if (!this.foundParty.Contains(this.talkingParty[num70])) { float num71 = (float)this.talkingParty[num70].stats.HealthCurrent(); if (num71 < num69) { character25 = this.talkingParty[num70]; num69 = num71; } } } return character25; } if (type == "Bloodthirsty") { Character character26 = null; float num72 = 0f; for (int num73 = 0; num73 < this.talkingParty.Count; num73++) { if (!this.foundParty.Contains(this.talkingParty[num73])) { float num74 = (float)this.talkingParty[num73].stats.killCount; if (num74 > num72) { character26 = this.talkingParty[num73]; num72 = num74; } } } return character26; } if (type == "Pacifist") { Character character27 = null; float num75 = float.PositiveInfinity; for (int num76 = 0; num76 < this.talkingParty.Count; num76++) { if (!this.foundParty.Contains(this.talkingParty[num76])) { float num77 = (float)this.talkingParty[num76].stats.killCount; if (num77 < num75) { character27 = this.talkingParty[num76]; num75 = num77; } } } return character27; } if (type == "Brave") { Character character28 = null; float num78 = 10f; for (int num79 = 0; num79 < this.talkingParty.Count; num79++) { if (!this.foundParty.Contains(this.talkingParty[num79])) { float num80 = (float)this.talkingParty[num79].stats.formationGroup; if (num80 < num78) { character28 = this.talkingParty[num79]; num78 = num80; } } } return character28; } if (type == "Scared") { Character character29 = null; float num81 = 0f; for (int num82 = 0; num82 < this.talkingParty.Count; num82++) { if (!this.foundParty.Contains(this.talkingParty[num82])) { float num83 = (float)this.talkingParty[num82].stats.formationGroup; if (num83 > num81) { character29 = this.talkingParty[num82]; num81 = num83; } } } return character29; } if (type == "Stealth") { Character character30 = null; float num84 = 0f; for (int num85 = 0; num85 < this.talkingParty.Count; num85++) { if (!this.foundParty.Contains(this.talkingParty[num85])) { float skill35 = this.talkingParty[num85].stats.GetSkill(21); if (skill35 > num84) { character30 = this.talkingParty[num85]; num84 = skill35; } } } return character30; } if (type == "Female") { Character character31 = null; float num86 = 1f; for (int num87 = 0; num87 < this.talkingParty.Count; num87++) { if (!this.foundParty.Contains(this.talkingParty[num87])) { float sex = this.talkingParty[num87].stats.sex; if (sex < num86) { character31 = this.talkingParty[num87]; num86 = sex; } } } return character31; } if (type == "Barterer") { Character character32 = null; float num88 = 0f; for (int num89 = 0; num89 < this.talkingParty.Count; num89++) { if (!this.foundParty.Contains(this.talkingParty[num89])) { float skill36 = this.talkingParty[num89].stats.GetSkill(22); if (skill36 > num88) { character32 = this.talkingParty[num89]; num88 = skill36; } } } return character32; } if (type == "Flute") { Character character33 = null; float num90 = 0f; for (int num91 = 0; num91 < this.talkingParty.Count; num91++) { if (!this.foundParty.Contains(this.talkingParty[num91])) { float skill37 = this.talkingParty[num91].stats.GetSkill(26); if (skill37 > num90) { character33 = this.talkingParty[num91]; num90 = skill37; } } } return character33; } if (type == "Divine") { Character character34 = null; float num92 = 0f; for (int num93 = 0; num93 < this.talkingParty.Count; num93++) { if (!this.foundParty.Contains(this.talkingParty[num93])) { float skill38 = this.talkingParty[num93].stats.GetSkill(16); if (skill38 > num92) { character34 = this.talkingParty[num93]; num92 = skill38; } } } return character34; } if (type == "PaganSpellbook") { canFindRandom = false; Character character35 = null; float num94 = 50f; for (int num95 = 0; num95 < this.talkingParty.Count; num95++) { if (!this.foundParty.Contains(this.talkingParty[num95])) { float skill39 = this.talkingParty[num95].stats.GetSkill(17); float skill40 = this.talkingParty[num95].stats.GetSkill(18); float skill41 = this.talkingParty[num95].stats.GetSkill(19); float num96 = skill39; if (skill40 > num96) { num96 = skill40; } if (skill41 > num96) { num96 = skill41; } if (num96 > num94 && !this.CharacterNeedsSpellbook((double)(num95 + 1))) { character35 = this.talkingParty[num95]; num94 = num96; } } } return character35; } if (type == "LowPaganNeedsBook") { canFindRandom = false; Character character36 = null; float num97 = 50f; for (int num98 = 0; num98 < this.talkingParty.Count; num98++) { if (!this.foundParty.Contains(this.talkingParty[num98])) { float skill42 = this.talkingParty[num98].stats.GetSkill(17); float skill43 = this.talkingParty[num98].stats.GetSkill(18); float skill44 = this.talkingParty[num98].stats.GetSkill(19); float num99 = skill42; if (skill43 > num99) { num99 = skill43; } if (skill44 > num99) { num99 = skill44; } if (num99 < num97 && this.CharacterNeedsSpellbook((double)(num98 + 1))) { character36 = this.talkingParty[num98]; num97 = num99; } } } return character36; } if (type == "LowestPagan") { canFindRandom = false; Character character37 = null; float num100 = 1000f; for (int num101 = 0; num101 < this.talkingParty.Count; num101++) { if (!this.foundParty.Contains(this.talkingParty[num101])) { float skill45 = this.talkingParty[num101].stats.GetSkill(17); float skill46 = this.talkingParty[num101].stats.GetSkill(18); float skill47 = this.talkingParty[num101].stats.GetSkill(19); float num102 = skill45; if (skill46 > num102) { num102 = skill46; } if (skill47 > num102) { num102 = skill47; } if (num102 < num100) { character37 = this.talkingParty[num101]; num100 = num102; } } } return character37; } if (type == "Sneaky") { Character character38 = null; float num103 = 0f; for (int num104 = 0; num104 < this.talkingParty.Count; num104++) { if (!this.foundParty.Contains(this.talkingParty[num104])) { float num105 = this.talkingParty[num104].stats.GetSkill(20); float skill48 = this.talkingParty[num104].stats.GetSkill(21); if (skill48 > num105) { num105 = skill48; } if (num105 > num103) { character38 = this.talkingParty[num104]; num103 = num105; } } } return character38; } if (type == "Charmer") { Character character39 = null; float num106 = 0f; for (int num107 = 0; num107 < this.talkingParty.Count; num107++) { if (!this.foundParty.Contains(this.talkingParty[num107])) { float num108 = this.talkingParty[num107].stats.GetSkill(23); float skill49 = this.talkingParty[num107].stats.GetSkill(24); float skill50 = this.talkingParty[num107].stats.GetSkill(25); if (skill49 > num108) { num108 = skill49; } if (skill50 > num108) { num108 = skill50; } if (num108 > num106) { character39 = this.talkingParty[num107]; num106 = num108; } } } return character39; } if (type == "Any") { this.randomParty.Clear(); for (int num109 = 0; num109 < this.talkingParty.Count; num109++) { if (!this.foundParty.Contains(this.talkingParty[num109])) { this.randomParty.Add(this.talkingParty[num109]); } } return this.randomParty[Random.Range(0, this.randomParty.Count)]; } if (type == "Bye") { Character character40 = null; for (int num110 = 0; num110 < this.talkingParty.Count; num110++) { if (!this.foundParty.Contains(this.talkingParty[num110])) { character40 = this.talkingParty[num110]; } } return character40; } if (type == "Party1") { return this.talkingParty[0]; } if (type == "Party2") { return this.talkingParty[1]; } if (type == "Party3") { return this.talkingParty[2]; } if (type == "Party4") { return this.talkingParty[3]; } if (type == "RemovedParty") { string asString = DialogueLua.GetVariable("RemovedParty").asString; for (int num111 = 0; num111 < this.talkingParty.Count; num111++) { if (this.talkingParty[num111].stats.GetName() == asString) { return this.talkingParty[num111]; } } string asString2 = DialogueLua.GetVariable("SelectedParty").asString; for (int num112 = 0; num112 < this.talkingParty.Count; num112++) { if (this.talkingParty[num112].stats.GetName() == asString) { return this.talkingParty[num112]; } } return null; } if (type == "NonMain") { string asString3 = DialogueLua.GetVariable("SelectedParty").asString; for (int num113 = 0; num113 < this.talkingParty.Count; num113++) { if (this.talkingParty[num113].stats.GetName() != asString3) { return this.talkingParty[num113]; } } return null; } if (type == "BestFighter") { string asString4 = DialogueLua.GetVariable("BestFighter").asString; for (int num114 = 0; num114 < this.talkingParty.Count; num114++) { if (this.talkingParty[num114].stats.GetName() == asString4) { return this.talkingParty[num114]; } } string asString5 = DialogueLua.GetVariable("SelectedParty").asString; for (int num115 = 0; num115 < this.talkingParty.Count; num115++) { if (this.talkingParty[num115].stats.GetName() == asString4) { return this.talkingParty[num115]; } } return null; } if (type == "HighSkillParty") { string asString6 = DialogueLua.GetVariable("HighSkillParty").asString; for (int num116 = 0; num116 < this.talkingParty.Count; num116++) { if (this.talkingParty[num116].stats.GetName() == asString6) { return this.talkingParty[num116]; } } string asString7 = DialogueLua.GetVariable("SelectedParty").asString; for (int num117 = 0; num117 < this.talkingParty.Count; num117++) { if (this.talkingParty[num117].stats.GetName() == asString6) { return this.talkingParty[num117]; } } return null; } if (type == "SelectedParty") { string asString8 = DialogueLua.GetVariable("SelectedParty").asString; for (int num118 = 0; num118 < this.talkingParty.Count; num118++) { if (this.talkingParty[num118].stats.GetName() == asString8) { return this.talkingParty[num118]; } } return null; } if (type == "Amey") { for (int num119 = 0; num119 < this.talkingParty.Count; num119++) { if (!this.foundParty.Contains(this.talkingParty[num119]) && this.talkingParty[num119].stats.race.Contains("Amey")) { return this.talkingParty[num119]; } } useBackUpText = true; } if (type == "Pasa") { for (int num120 = 0; num120 < this.talkingParty.Count; num120++) { if (!this.foundParty.Contains(this.talkingParty[num120]) && this.talkingParty[num120].stats.race.Contains("Pasa")) { return this.talkingParty[num120]; } } useBackUpText = true; } if (type == "Varu") { for (int num121 = 0; num121 < this.talkingParty.Count; num121++) { if (!this.foundParty.Contains(this.talkingParty[num121]) && this.talkingParty[num121].stats.race.Contains("Varu")) { return this.talkingParty[num121]; } } useBackUpText = true; } if (type == "Yeti") { for (int num122 = 0; num122 < this.talkingParty.Count; num122++) { if (!this.foundParty.Contains(this.talkingParty[num122]) && this.talkingParty[num122].stats.race.Contains("Yeti")) { return this.talkingParty[num122]; } } useBackUpText = true; } if (type == "Tara") { for (int num123 = 0; num123 < this.talkingParty.Count; num123++) { if (!this.foundParty.Contains(this.talkingParty[num123]) && this.talkingParty[num123].stats.race.Contains("Tara")) { return this.talkingParty[num123]; } } useBackUpText = true; } return null; } // Token: 0x0400089B RID: 2203 public Character npc1; // Token: 0x0400089C RID: 2204 public Character npc2; // Token: 0x0400089D RID: 2205 public Character npc3; // Token: 0x0400089E RID: 2206 public Character npc4; // Token: 0x0400089F RID: 2207 public Character npc5; // Token: 0x040008A0 RID: 2208 public Character party; // Token: 0x040008A1 RID: 2209 public Character respondCharacter; // Token: 0x040008A2 RID: 2210 public Character justResponded; // Token: 0x040008A3 RID: 2211 public Character currentTalking; // Token: 0x040008A4 RID: 2212 private float ortho; // Token: 0x040008A5 RID: 2213 public CanvasGroup canvasGroup; // Token: 0x040008A6 RID: 2214 private List allParty; // Token: 0x040008A7 RID: 2215 public TextMeshProTypewriterEffect typewriter; // Token: 0x040008A8 RID: 2216 public TextMeshProTypewriterEffect typewriter2; // Token: 0x040008A9 RID: 2217 public DialogueSystemController system; // Token: 0x040008AA RID: 2218 private float lastZoomChange; // Token: 0x040008AB RID: 2219 private List partyList; // Token: 0x040008AC RID: 2220 private bool updatedDialogueActor; // Token: 0x040008AD RID: 2221 private StringFast str = new StringFast(64); // Token: 0x040008AE RID: 2222 private IEnumerator songCorout; // Token: 0x040008AF RID: 2223 private IEnumerator startCorout; // Token: 0x040008B0 RID: 2224 public AudioSource characterFollowAudioSource; // Token: 0x040008B1 RID: 2225 private bool openingCreation; // Token: 0x040008B2 RID: 2226 public bool canUseKeys; // Token: 0x040008B3 RID: 2227 public bool responsesOn; // Token: 0x040008B4 RID: 2228 public bool giveXP; // Token: 0x040008B5 RID: 2229 private int giveXPAmt; // Token: 0x040008B6 RID: 2230 public int initiateNum; // Token: 0x040008B7 RID: 2231 private bool setRotation; // Token: 0x040008B8 RID: 2232 private bool waited; // Token: 0x040008B9 RID: 2233 private bool startCombat; // Token: 0x040008BA RID: 2234 private bool stopDialogue; // Token: 0x040008BB RID: 2235 public float maxPartyDistance = 35f; // Token: 0x040008BC RID: 2236 private bool playSmile; // Token: 0x040008BD RID: 2237 private bool playAngry; // Token: 0x040008BE RID: 2238 private bool playFrown; // Token: 0x040008BF RID: 2239 private bool playShock; // Token: 0x040008C0 RID: 2240 public string diaFile; // Token: 0x040008C1 RID: 2241 private bool switchedCameras; // Token: 0x040008C2 RID: 2242 private SceneCamera switchedSceneCamera; // Token: 0x040008C3 RID: 2243 public PuzzleActions puzzleActions; // Token: 0x040008C4 RID: 2244 private Vector3 startPosition; // Token: 0x040008C5 RID: 2245 public GameObject talkingIndicator; // Token: 0x040008C6 RID: 2246 private Response[] pcResponses; // Token: 0x040008C7 RID: 2247 private Character indicatorCharacter; // Token: 0x040008C8 RID: 2248 public bool skippingSequence; // Token: 0x040008C9 RID: 2249 private string sequence = ""; // Token: 0x040008CA RID: 2250 private RectTransform responseRT; // Token: 0x040008CB RID: 2251 public Button continueButton1; // Token: 0x040008CC RID: 2252 public Button continueButton2; // Token: 0x040008CD RID: 2253 public TextMeshProUGUI name1; // Token: 0x040008CE RID: 2254 public TextMeshProUGUI name2; // Token: 0x040008CF RID: 2255 public TextMeshProUGUI name3; // Token: 0x040008D0 RID: 2256 public TextMeshProUGUI name4; // Token: 0x040008D1 RID: 2257 public TextMeshProUGUI navigate; // Token: 0x040008D2 RID: 2258 public RawImage portrait1; // Token: 0x040008D3 RID: 2259 public RawImage portrait2; // Token: 0x040008D4 RID: 2260 public RawImage portrait3; // Token: 0x040008D5 RID: 2261 public RawImage portrait4; // Token: 0x040008D6 RID: 2262 public List talkingParty = new List(); // Token: 0x040008D7 RID: 2263 public List foundParty = new List(); // Token: 0x040008D8 RID: 2264 public List randomParty = new List(); // Token: 0x040008D9 RID: 2265 public List responsePoints = new List(); // Token: 0x040008DA RID: 2266 private List foundPartyResponses = new List(); // Token: 0x040008DB RID: 2267 public List savedIDs = new List(); // Token: 0x040008DC RID: 2268 public List savedCharacters = new List(); // Token: 0x040008DD RID: 2269 public Transform response1; // Token: 0x040008DE RID: 2270 public Transform response2; // Token: 0x040008DF RID: 2271 public Transform response3; // Token: 0x040008E0 RID: 2272 public Transform response4; // Token: 0x040008E1 RID: 2273 public GameObject message1; // Token: 0x040008E2 RID: 2274 public GameObject message2; // Token: 0x040008E3 RID: 2275 public GameObject message3; // Token: 0x040008E4 RID: 2276 public GameObject message4; // Token: 0x040008E5 RID: 2277 public TextMeshProUGUI messageText1; // Token: 0x040008E6 RID: 2278 public TextMeshProUGUI messageText2; // Token: 0x040008E7 RID: 2279 public TextMeshProUGUI messageText3; // Token: 0x040008E8 RID: 2280 public TextMeshProUGUI messageText4; // Token: 0x040008E9 RID: 2281 public Image messageImg1; // Token: 0x040008EA RID: 2282 public Image messageImg2; // Token: 0x040008EB RID: 2283 public Image messageImg3; // Token: 0x040008EC RID: 2284 public Image messageImg4; // Token: 0x040008ED RID: 2285 public string responseCharacter1; // Token: 0x040008EE RID: 2286 public string responseCharacter2; // Token: 0x040008EF RID: 2287 public string responseCharacter3; // Token: 0x040008F0 RID: 2288 public string responseCharacter4; // Token: 0x040008F1 RID: 2289 public Button byeButton; // Token: 0x040008F2 RID: 2290 public Image byeImage; // Token: 0x040008F3 RID: 2291 public StandardUIResponseButton responseBtn1; // Token: 0x040008F4 RID: 2292 public StandardUIResponseButton responseBtn2; // Token: 0x040008F5 RID: 2293 public StandardUIResponseButton responseBtn3; // Token: 0x040008F6 RID: 2294 public StandardUIResponseButton responseBtn4; // Token: 0x040008F7 RID: 2295 public Vignettes vignettes; // Token: 0x040008F8 RID: 2296 public bool npcTalking; // Token: 0x040008F9 RID: 2297 public bool noBobbling; // Token: 0x040008FA RID: 2298 private bool[] foundAnswers = new bool[0]; // Token: 0x040008FB RID: 2299 public GameObject skillTraining; // Token: 0x040008FC RID: 2300 public GameObject buySongs; // Token: 0x040008FD RID: 2301 public Image skillTrainingIcon; // Token: 0x040008FE RID: 2302 public TextMeshProUGUI emeraldText; // Token: 0x040008FF RID: 2303 public bool training; // Token: 0x04000900 RID: 2304 public string trainingSkill; // Token: 0x04000901 RID: 2305 public int skillNumber; // Token: 0x04000902 RID: 2306 public Sprite emeraldsSprite; // Token: 0x04000903 RID: 2307 public string skillTrainingName; // Token: 0x04000904 RID: 2308 private int messagedOn; // Token: 0x04000905 RID: 2309 private bool doNotTurnOnHud; // Token: 0x04000906 RID: 2310 [Header("Dialogue Pops")] public GameObject dialoguePopupBox; // Token: 0x04000907 RID: 2311 public Animator dialoguePopupBoxAnimator; // Token: 0x04000908 RID: 2312 public TextMeshProUGUI songPopupBoxText; // Token: 0x04000909 RID: 2313 public TextMeshProUGUI spellPopupBoxText; // Token: 0x0400090A RID: 2314 public TextMeshProUGUI levelUpPopupBoxText; // Token: 0x0400090B RID: 2315 public TextMeshProUGUI itemPopupText; // Token: 0x0400090C RID: 2316 public TextMeshProUGUI locationText; // Token: 0x0400090D RID: 2317 private string currentSongName; // Token: 0x0400090E RID: 2318 private string currentSpellName; // Token: 0x0400090F RID: 2319 public HannahAnimator fx; // Token: 0x04000910 RID: 2320 public Image trinketItemImage; // Token: 0x04000911 RID: 2321 public Image spellImage; // Token: 0x04000912 RID: 2322 public Image inventoryItemImage; // Token: 0x04000913 RID: 2323 public RawImage levelUpPortraitImage; // Token: 0x04000914 RID: 2324 public Sprite bindingsSprite; // Token: 0x04000915 RID: 2325 public Sprite faunaSprite; // Token: 0x04000916 RID: 2326 public Sprite vinesSprite; // Token: 0x04000917 RID: 2327 public Sprite scoriaSprite; // Token: 0x04000918 RID: 2328 public GameObject quickJournal; // Token: 0x04000919 RID: 2329 public Animator quickJournalAnimator; // Token: 0x0400091A RID: 2330 private bool quickNoteOpen; // Token: 0x0400091B RID: 2331 public TMP_InputField journalNoteField; // Token: 0x0400091C RID: 2332 private IEnumerator corout; // Token: 0x0400091D RID: 2333 private IEnumerator quipCoroutine; // Token: 0x0400091E RID: 2334 private int itemGiveCount; // Token: 0x0400091F RID: 2335 private int prevHash; // Token: 0x04000920 RID: 2336 public bool quipping; // Token: 0x04000921 RID: 2337 public Character boro; // Token: 0x04000922 RID: 2338 [Header("Misc")] private bool importantConversation; // Token: 0x04000923 RID: 2339 private GameObject lastBtn; }