7854 lines
213 KiB
C#
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;
|
|
}
|