Files
BepInEx/Projects/BanquetForFools/Source/Assembly-CSharp/Dialogue.cs
2025-05-21 20:40:04 +02:00

7854 lines
213 KiB
C#

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<RectTransform>();
Transform transform = child2.GetChild(0).GetChild(1);
this.typewriter = transform.gameObject.GetComponent<TextMeshProTypewriterEffect>();
this.name1 = child3.GetChild(2).gameObject.GetComponent<TextMeshProUGUI>();
this.portrait1 = this.name1.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent<RawImage>();
this.name2 = child3.GetChild(3).gameObject.GetComponent<TextMeshProUGUI>();
this.portrait2 = this.name2.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent<RawImage>();
this.name3 = child3.GetChild(4).gameObject.GetComponent<TextMeshProUGUI>();
this.portrait3 = this.name3.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent<RawImage>();
this.name4 = child3.GetChild(5).gameObject.GetComponent<TextMeshProUGUI>();
this.portrait4 = this.name4.gameObject.transform.GetChild(0).GetChild(0).gameObject.GetComponent<RawImage>();
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<TextMeshProTypewriterEffect>();
if (!Records.x.editor)
{
this.system.PreloadResources();
}
this.partyList = Links.x.portraitOrder;
Lua.RegisterFunction("CharacterNeedsSongbook", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterNeedsSongbook(double)), new Expression[] { Expression.Constant(0.0, typeof(double)) }), Array.Empty<ParameterExpression>())));
Lua.RegisterFunction("CharacterNeedsSpellbook", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.CharacterNeedsSpellbook(double)), new Expression[] { Expression.Constant(0.0, typeof(double)) }), Array.Empty<ParameterExpression>())));
Lua.RegisterFunction("EveryoneLearnedSong", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneLearnedSong(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty<ParameterExpression>())));
Lua.RegisterFunction("CharacterCanLearnSong", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(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<ParameterExpression>())));
Lua.RegisterFunction("PartyHasItem", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(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<ParameterExpression>())));
Lua.RegisterFunction("PartyHasItemWithDurability", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(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<ParameterExpression>())));
Lua.RegisterFunction("PartyHasItemWithIntercession", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(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<ParameterExpression>())));
Lua.RegisterFunction("PartyHasEffect", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.PartyHasEffect(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty<ParameterExpression>())));
Lua.RegisterFunction("EveryoneLearnedSpell", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneLearnedSpell(string)), new Expression[] { Expression.Constant("", typeof(string)) }), Array.Empty<ParameterExpression>())));
Lua.RegisterFunction("CharacterCanLearnSpell", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(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<ParameterExpression>())));
CharacterInfo.RegisterActorTransform("MainCamera", Links.x.worldCamera.gameObject.transform);
Lua.RegisterFunction("EveryoneNear", this, SymbolExtensions.GetMethodInfo(Expression.Lambda<Action>(Expression.Call(Expression.Constant(this, typeof(Dialogue)), methodof(Dialogue.EveryoneNear()), Array.Empty<Expression>()), Array.Empty<ParameterExpression>())));
}
// 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<UITriggerButton>().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("<voffset=.4em><size=40><sprite=");
int controllerSprite = Links.x.gameplay.GetControllerSprite("Joystick", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset> 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<HannahAnimator>().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<Cinematics>().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<GraphNode> 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<size=1.6em><font=");
this.str.Append(text);
this.str.Append(">");
this.str.Append(paganRow._DisplayName);
this.str.Append("</font></size>");
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("</color>");
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<Sequencer>().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("</color>");
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<size=1.6em><font=");
this.str.Append(text2);
this.str.Append(">");
this.str.Append(abilityRow._DisplayName);
this.str.Append("</font></size>");
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("</color>");
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("<color=#FFFFFF>You have gained a follower</color>");
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("<color=#FFFFFF>You have lost a follower</color>");
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<PuzzleActions>().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[]
{
"<font=Bold>",
text,
"</font>\n<size=70%>",
Links.x.diorama.sceneDisplayName,
"</size>"
});
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<int> bag = this.npc1.bag;
List<Vector4> durability = this.npc1.durability;
List<Vector3> 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<Sequencer>().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<size=1.6em><font=Bold>");
this.str.Append("Complete!");
this.str.Append("</font></size>");
}
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<Sequencer>().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<Effects>();
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<Character> 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<HannahAnimator>().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<Character> 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<Character> 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<Character> talkingParty = new List<Character>();
// Token: 0x040008D7 RID: 2263
public List<Character> foundParty = new List<Character>();
// Token: 0x040008D8 RID: 2264
public List<Character> randomParty = new List<Character>();
// Token: 0x040008D9 RID: 2265
public List<Transform> responsePoints = new List<Transform>();
// Token: 0x040008DA RID: 2266
private List<StandardUIResponseButton> foundPartyResponses = new List<StandardUIResponseButton>();
// Token: 0x040008DB RID: 2267
public List<int> savedIDs = new List<int>();
// Token: 0x040008DC RID: 2268
public List<Character> savedCharacters = new List<Character>();
// 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;
}