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

4566 lines
129 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using DarkTonic.MasterAudio;
using PixelCrushers.DialogueSystem;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
// Token: 0x020000D3 RID: 211
public class RoleSheet : MonoBehaviour
{
// Token: 0x06001367 RID: 4967 RVA: 0x00175388 File Offset: 0x00173588
private void Awake()
{
this.targetAlpha = -1f;
this.contents1.SetActive(false);
this.contents2.SetActive(false);
this.contents3.SetActive(false);
this.contents4.SetActive(false);
this.characterCamera.SetActive(false);
this.portraitParent = this.portraits[0].gameObject.transform.parent;
this.CloseRemoveFromParty();
this.anim.enabled = false;
if (this.levelUpMenu)
{
this.levelUpMenu.gameObject.SetActive(false);
}
this.booksMenu.gameObject.SetActive(false);
this.outputHovers.SetActive(false);
for (int i = 0; i < this.skillProgress.Count; i++)
{
this.skillProgressBtns.Add(this.skillProgress[i].gameObject.GetComponent<Button>());
}
this.cb0 = this.skillProgressBtns[0].colors;
this.cb1 = this.skillProgressBtns[0].colors;
Color color = this.cb1.normalColor;
color.a = 0.33f;
this.cb1.normalColor = color;
}
// Token: 0x06001368 RID: 4968 RVA: 0x001754D4 File Offset: 0x001736D4
private void Start()
{
Links.x.characterSheet = this;
this.canvas.enabled = false;
this.anim.enabled = false;
if (!Records.x.windows)
{
this.scrollRect1.scrollSensitivity = 9f;
this.scrollRect2.scrollSensitivity = 9f;
this.scrollRect3.scrollSensitivity = 9f;
}
this.portraitOrder = Links.x.portraitOrder;
}
// Token: 0x06001369 RID: 4969 RVA: 0x00175550 File Offset: 0x00173750
public void SetupTexture()
{
if (QualitySettings.antiAliasing == 0)
{
Links.x.camera3D.targetTexture = this.noAA;
}
else if (QualitySettings.antiAliasing == 2)
{
Links.x.camera3D.targetTexture = this.aa2;
}
else if (QualitySettings.antiAliasing == 4)
{
Links.x.camera3D.targetTexture = this.aa4;
}
else if (QualitySettings.antiAliasing == 8)
{
Links.x.camera3D.targetTexture = this.aa8;
}
this.vignette.texture = Links.x.camera3D.targetTexture;
RenderTexture active = RenderTexture.active;
RenderTexture.active = Links.x.camera3D.targetTexture;
GL.Clear(true, true, Color.black);
RenderTexture.active = active;
}
// Token: 0x0600136A RID: 4970 RVA: 0x0017561C File Offset: 0x0017381C
public void StartMenu(bool fromStart)
{
this.fromGameStart = fromStart;
if (!fromStart)
{
this.anim.enabled = true;
}
else
{
this.anim.enabled = true;
this.anim.Play("Open", 0, 1f);
}
if (!fromStart)
{
this.canvas.enabled = true;
}
else
{
this.canvas.enabled = false;
}
this.openTime = Time.realtimeSinceStartup;
if (!fromStart)
{
Links.x.gameplay.lastMenu = "CharacterSheet";
}
if (!fromStart && this.contents1.activeSelf)
{
return;
}
if (!fromStart)
{
Links.x.gameplay.openingAnotherMenu = true;
}
Links.x.gameplay.CloseAllMenus();
if (!Records.x.inMenus && Links.x.gaia.sceneLoaded && !fromStart)
{
Links.x.gameplay.OpenDock();
}
bool flag = false;
if (Links.x.joy && (Links.x.gameplay.dockStart || Links.x.gameplay.itemsStart))
{
flag = true;
}
if (flag)
{
if (this.anim.gameObject.activeSelf && !fromStart)
{
this.anim.Play("Open", 0, 1f);
}
}
else if (this.anim.gameObject.activeSelf && !fromStart)
{
this.anim.Play("Open");
}
this.startMain = Links.x.main;
if (!this.startMain)
{
this.startMain = Links.x.GetProtagonist();
}
if (!this.startMain.party)
{
this.startMain = Links.x.GetProtagonist();
}
Links.x.inventory.gameObject.SetActive(true);
this.open = true;
this.contents1.SetActive(true);
this.contents2.SetActive(true);
this.contents3.SetActive(true);
this.contents4.SetActive(true);
this.note.SetActive(false);
if (Links.x.joy)
{
Links.x.hudControl.UpdateMenuSwitcher("Character Sheet");
}
if (!this.fromGameStart)
{
Links.x.renderPortraits.ToggleCrossFades(true);
}
this.descriptionText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.statusGrid.gameObject.transform.parent.gameObject.SetActive(true);
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = Links.x.joy;
}
this.colorTarget = this.levelUpColor2;
this.SetSlotButtons(false);
if (!this.merchant)
{
if (this.enchanting)
{
this.characterPeddlerSpawn1.gameObject.SetActive(false);
this.characterPeddlerSpawn2.gameObject.SetActive(false);
this.characterPeddlerSpawn3.gameObject.SetActive(true);
this.spawn = this.characterPeddlerSpawn3.GetChild(0);
}
else
{
this.characterPeddlerSpawn1.gameObject.SetActive(false);
this.characterPeddlerSpawn2.gameObject.SetActive(false);
this.characterPeddlerSpawn3.gameObject.SetActive(false);
this.characterSpawn.gameObject.SetActive(true);
this.spawn = this.characterSpawn.GetChild(0);
}
}
this.characterCreationSpawn.gameObject.SetActive(false);
if (this.currentModel != null)
{
if (this.currentModel.GetComponent<Animator>())
{
this.currentModel.GetComponent<Animator>().updateMode = AnimatorUpdateMode.Normal;
}
this.RecycleModel(Links.x.main.name);
this.currentModel = null;
}
this.ChangeScreenSize();
if (!this.merchant)
{
bool flag2 = this.minstrel;
}
if (!this.fromGameStart)
{
Links.x.camera3D.enabled = true;
}
this.SetupTexture();
if (this.blacksmith)
{
this.blacksmithOverlay.SetActive(true);
this.repairInstructions = this.blacksmithInstructions;
}
else if (this.pagan)
{
this.paganOverlay.SetActive(true);
this.repairInstructions = this.paganInstructions;
}
else
{
this.blacksmithOverlay.SetActive(false);
}
if (this.pagan)
{
this.paganOverlay.SetActive(true);
this.repairInstructions = this.paganInstructions;
}
else
{
this.paganOverlay.SetActive(false);
}
if (!this.minstrel && !this.pagan && !this.blacksmith && !this.merchant)
{
this.CheckLevelUp();
}
for (int j = 0; j < this.extraHovers.Count; j++)
{
if (!this.extraHovers[j].activeSelf)
{
this.extraHovers[j].SetActive(true);
}
}
this.character = this.startMain;
foreach (Portrait portrait in this.portraits)
{
portrait.SetSelection();
}
if (!fromStart)
{
Records.x.AddMenu(base.gameObject);
}
if (this.merchant)
{
for (int k = 0; k < this.merchantOnly.Count; k++)
{
if (!this.merchantOnly[k].activeSelf)
{
this.merchantOnly[k].SetActive(true);
}
}
int count = this.characterSheetOnly.Count;
for (int l = 0; l < count; l++)
{
if (this.characterSheetOnly[l].activeSelf)
{
this.characterSheetOnly[l].SetActive(false);
}
}
}
else
{
for (int m = 0; m < this.merchantOnly.Count; m++)
{
if (this.merchantOnly[m].activeSelf)
{
this.merchantOnly[m].SetActive(false);
}
}
int count2 = this.characterSheetOnly.Count;
for (int n = 0; n < count2; n++)
{
if (!this.characterSheetOnly[n].activeSelf)
{
this.characterSheetOnly[n].SetActive(true);
}
}
}
if (this.enchanting)
{
this.DraggingButtons(true);
}
if (this.minstrel || this.merchant)
{
this.eqiuppedFolder.SetActive(false);
for (int num = 0; num < this.portraits.Count; num++)
{
if (this.portraits[num].character && this.minstrel && this.portraits[num].character.stats.HasSongbook())
{
this.startMain = this.portraits[num].character;
this.character = this.startMain;
break;
}
}
foreach (Portrait portrait2 in this.portraits)
{
portrait2.SetSelection();
}
if (Links.x.joy)
{
for (int num2 = 0; num2 < this.characterSheetButtons.Count; num2++)
{
this.characterSheetButtons[num2].interactable = false;
}
}
}
else
{
this.songSpellShop.SetActive(false);
this.eqiuppedFolder.SetActive(true);
}
this.TurnOnCamera();
if (Links.x.gaia.sceneLoaded && !fromStart)
{
this.SwitchCharacter(this.character, true, true);
}
Links.x.fellowship.FreshBlinks();
if (this.minstrel)
{
this.songSpellShop.SetActive(true);
this.booksMenu.OpenSongs();
this.SetupSongShop();
}
this.SwitchController(Links.x.joy);
}
// Token: 0x0600136B RID: 4971 RVA: 0x00175E38 File Offset: 0x00174038
public void TurnOffMainCamera()
{
if (!this.fromGameStart)
{
Links.x.worldCamera.cullingMask = 1;
Links.x.cameraEffects.ToggleObscurance();
}
}
// Token: 0x0600136C RID: 4972 RVA: 0x00175E61 File Offset: 0x00174061
public void TurnOnMainCamera()
{
Links.x.worldCamera.cullingMask = Links.x.mainCameraMask;
}
// Token: 0x0600136D RID: 4973 RVA: 0x00175E84 File Offset: 0x00174084
public void SetPortraitNav(bool state)
{
if (this.merchant || this.minstrel || this.blacksmith)
{
state = false;
}
for (int i = 0; i < this.portraits.Count; i++)
{
Navigation navigation = this.portraits[i].btn.navigation;
if (state)
{
navigation.mode = Navigation.Mode.Automatic;
}
else
{
navigation.mode = Navigation.Mode.None;
}
this.portraits[i].btn.navigation = navigation;
this.portraits[i].btn.interactable = true;
this.portraits[i].btn.enabled = true;
}
}
// Token: 0x0600136E RID: 4974 RVA: 0x00175F38 File Offset: 0x00174138
public void SwitchController(bool joy)
{
if (joy)
{
for (int i = 0; i < this.portraits.Count; i++)
{
Navigation navigation = this.portraits[i].btn.navigation;
navigation.mode = Navigation.Mode.None;
this.portraits[i].btn.navigation = navigation;
}
this.controllerSwitchL.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.controllerSwitchR.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.controllerSwitchL.text = "<sprite=" + Links.x.gameplay.GetControllerSprite("Synergy", Links.x.gameplay.controllerName).ToString() + ">";
this.controllerSwitchR.text = "<sprite=" + Links.x.gameplay.GetControllerSprite("Dodge", Links.x.gameplay.controllerName).ToString() + ">";
this.controllerSwitchL.enabled = true;
this.controllerSwitchR.enabled = true;
return;
}
for (int j = 0; j < this.portraits.Count; j++)
{
Navigation navigation2 = this.portraits[j].btn.navigation;
navigation2.mode = Navigation.Mode.None;
this.portraits[j].btn.navigation = navigation2;
}
this.controllerSwitchL.enabled = false;
this.controllerSwitchR.enabled = false;
}
// Token: 0x0600136F RID: 4975 RVA: 0x001760E8 File Offset: 0x001742E8
public void ChangeScreenSize()
{
float num = (float)Screen.width / (float)Screen.height / 1.7777778f;
float num2 = (float)Screen.width / (float)Screen.height;
this.screenW = Screen.width;
this.screenH = Screen.height;
}
// Token: 0x06001370 RID: 4976 RVA: 0x00176128 File Offset: 0x00174328
public void ToggleStatusEffects()
{
if (!this.minstrel && !this.pagan && !this.blacksmith && !this.merchant)
{
MasterAudio.PlaySoundAndForget("Paper Open", 0.8f, new float?(1f), 0f, "", null);
this.statusEffectsOpen = true;
if (!this.statusEffectsList.activeSelf)
{
if (this.rulesetOpen)
{
this.CloseOutput();
}
this.statusEffectsList.SetActive(true);
this.statusEffectsAnimator.Play("OpenSubMenu");
this.UpdateStatusEffects();
if (Links.x.joy && !this.fromGameStart)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.statusEffectsListScrollbar.gameObject);
}
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = false;
}
return;
}
this.CloseStatusEffects();
}
}
// Token: 0x06001371 RID: 4977 RVA: 0x00176238 File Offset: 0x00174438
private void UpdateStatusEffects()
{
this.str.Clear();
if (Links.x.joy)
{
this.str.Append("<size=1.3em><font=Bold>Status Effects: </font></size>\n\n");
}
for (int i = 0; i < this.statusDescriptions.Count; i++)
{
this.str.Append(this.statusDescriptions[i]);
this.str.Append("\n\n");
}
this.fullEffectsList.text = this.str.ToString();
}
// Token: 0x06001372 RID: 4978 RVA: 0x001762C4 File Offset: 0x001744C4
public void CloseStatusEffects()
{
MasterAudio.PlaySoundAndForget("Paper Open 2", 0.6f, new float?(1f), 0f, "", null);
this.statusEffectsAnimator.Play("CloseSubMenu");
this.statusEffectsOpen = false;
if (Links.x.joy && !this.fromGameStart)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.rulesetBtn.gameObject);
}
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = true;
}
}
// Token: 0x06001373 RID: 4979 RVA: 0x00176370 File Offset: 0x00174570
public void ToggleOutput()
{
MasterAudio.PlaySoundAndForget("Paper Open", 0.8f, new float?(1f), 0f, "", null);
this.rulesetOpen = true;
if (!this.outputHovers.activeSelf)
{
if (this.statusEffectsOpen)
{
this.CloseStatusEffects();
}
this.outputHovers.SetActive(true);
this.outputAnimator.Play("OpenSubMenu");
if (Links.x.joy && !this.fromGameStart)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.firstRulesetBtn.gameObject);
}
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = false;
}
return;
}
this.CloseOutput();
}
// Token: 0x06001374 RID: 4980 RVA: 0x00176450 File Offset: 0x00174650
public void CloseOutput()
{
MasterAudio.PlaySoundAndForget("Paper Open 2", 0.6f, new float?(1f), 0f, "", null);
this.outputAnimator.Play("CloseSubMenu");
this.rulesetOpen = false;
this.statHovers.SetActive(true);
this.strengthText.gameObject.transform.parent.gameObject.SetActive(true);
this.paganText.gameObject.transform.parent.gameObject.SetActive(true);
this.agilityText.gameObject.transform.parent.gameObject.SetActive(true);
this.sensoryText.gameObject.transform.parent.gameObject.SetActive(true);
this.dexterityText.gameObject.transform.parent.gameObject.SetActive(true);
this.auraText.gameObject.transform.parent.gameObject.SetActive(true);
if (Links.x.joy && !this.fromGameStart)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.rulesetBtn.gameObject);
}
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = true;
}
}
// Token: 0x06001375 RID: 4981 RVA: 0x001765C8 File Offset: 0x001747C8
public void RecycleModel(string n)
{
if (!this.currentModel.GetComponent<Body>())
{
Links.x.archives.RecycleBoat(this.currentModel, Links.x.merchant.boat.model, n);
}
else
{
Links.x.archives.RecycleBody(this.currentModel, this.body.model, n);
}
if (this.currentModel)
{
this.currentModel.SetActive(false);
}
this.currentModel = null;
this.body = null;
this.bodyTime = float.PositiveInfinity;
}
// Token: 0x06001376 RID: 4982 RVA: 0x00176668 File Offset: 0x00174868
public void SetSlotButtons(bool state)
{
if (Links.x.mk)
{
return;
}
if (this.gridState == null)
{
this.gridState = Links.x.inventory.gridState;
}
int num = this.slotButtons.Count;
for (int i = 0; i < num; i++)
{
if (Links.x.joy)
{
this.slotButtons[i].enabled = true;
if (state)
{
this.slotButtons[i].interactable = state;
}
else
{
this.slotButtons[i].interactable = true;
}
}
else
{
this.slotButtons[i].enabled = false;
}
}
if (this.merchant)
{
num = this.peddlerButtons.Count;
for (int j = 0; j < num; j++)
{
this.peddlerButtons[j].interactable = true;
}
}
}
// Token: 0x06001377 RID: 4983 RVA: 0x00176744 File Offset: 0x00174944
public void DraggingButtons(bool isDragging)
{
if (Links.x.mk)
{
return;
}
if (isDragging)
{
for (int i = 0; i < this.characterSheetButtons.Count; i++)
{
this.characterSheetButtons[i].interactable = false;
}
if (Links.x.inventory.dragging)
{
this.character.characterSheetPortrait.button.interactable = false;
}
for (int j = 0; j < this.portraits.Count; j++)
{
Navigation navigation = this.portraits[j].btn.navigation;
navigation.mode = Navigation.Mode.Automatic;
if (this.merchant || this.minstrel || this.blacksmith)
{
navigation.mode = Navigation.Mode.None;
}
this.portraits[j].btn.navigation = navigation;
}
return;
}
if (!this.blacksmith && !this.enchanting && !this.note.activeSelf && !Links.x.arrowKit.open && !this.merchant)
{
for (int k = 0; k < this.characterSheetButtons.Count; k++)
{
this.characterSheetButtons[k].interactable = true;
}
}
this.character.characterSheetPortrait.button.interactable = true;
for (int l = 0; l < this.portraits.Count; l++)
{
Navigation navigation2 = this.portraits[l].btn.navigation;
navigation2.mode = Navigation.Mode.None;
this.portraits[l].btn.navigation = navigation2;
}
}
// Token: 0x06001378 RID: 4984 RVA: 0x001768E8 File Offset: 0x00174AE8
public void TurnOnCamera()
{
if (!this.fromGameStart)
{
this.characterCamera.SetActive(true);
}
this.SwitchCharacter(this.character, true, true);
if (this.merchant || this.minstrel)
{
this.characterSpawn.gameObject.SetActive(false);
this.characterPeddlerSpawn1.gameObject.SetActive(false);
this.characterPeddlerSpawn2.gameObject.SetActive(false);
this.characterPeddlerSpawn3.gameObject.SetActive(false);
this.spawn = null;
if (this.merchant)
{
if (Links.x.merchant.merchantCharacter)
{
if (Links.x.merchant.merchantCharacter.stats.xmlName.Contains("Peddler") || Links.x.merchant.merchantCharacter.stats.xmlName.Contains("Merchant"))
{
this.characterPeddlerSpawn1.gameObject.SetActive(true);
this.spawn = this.characterPeddlerSpawn1.GetChild(0);
}
else
{
this.characterPeddlerSpawn3.gameObject.SetActive(true);
this.spawn = this.characterPeddlerSpawn3.GetChild(0);
}
}
else
{
this.characterPeddlerSpawn3.gameObject.SetActive(true);
this.spawn = this.characterPeddlerSpawn3.GetChild(0);
}
}
else
{
this.characterPeddlerSpawn3.gameObject.SetActive(true);
this.spawn = this.characterPeddlerSpawn3.GetChild(0);
}
this.levelUpButton.SetActive(false);
Character merchantCharacter = Links.x.merchant.merchantCharacter;
if (merchantCharacter)
{
string text = merchantCharacter.stats.model;
if (merchantCharacter.stats.xmlName.Contains("Boro"))
{
text = Records.x.GetBoroModel(Records.x.boroID, false, true);
}
if (this.currentModel != null)
{
string text2 = "";
this.RecycleModel(text2);
}
this.currentModel = Links.x.archives.InstantiateBody(text, this.spawn);
this.currentModel.transform.localPosition = new Vector3(0f, -3.1f, 0f);
this.currentModel.transform.localRotation = Quaternion.Euler(new Vector3(0f, -16f, 0f));
this.body = this.currentModel.GetComponent<Body>();
this.body.Reset();
this.bodyTime = Time.realtimeSinceStartup;
this.bodyCharacter = merchantCharacter;
this.body.model = text;
this.body.name = text;
string text3 = "_Volling_Dialogue_Peddler";
if (!this.merchant || (this.merchant && !Links.x.merchant.merchantCharacter.stats.xmlName.Contains("Peddler") && !Links.x.merchant.merchantCharacter.stats.xmlName.Contains("Merchant")))
{
text3 = "_Volling_Dialogue_Basic";
}
if (this.merchant && Links.x.merchant.isBoro())
{
text3 = "_Boro_Unarmed";
}
AnimatorOverrideController overrideController = Links.x.archives.GetOverrideController(text3);
if (!this.body.anim)
{
this.body.anim = this.body.gameObject.GetComponent<Animator>();
}
this.body.anim.runtimeAnimatorController = overrideController;
this.body.anim.cullingMode = AnimatorCullingMode.AlwaysAnimate;
this.body.anim.updateMode = AnimatorUpdateMode.UnscaledTime;
this.body.gameObject.SetActive(true);
this.body.inMenu = true;
this.body.isPortrait = false;
this.body.gameObject.layer = 5;
this.body.SetGrounderState(false);
this.body.SetupHead(this.bodyCharacter.stats.headModel);
this.body.GatherRenderers(true);
this.body.SetupTextures(merchantCharacter.stats.race, merchantCharacter.stats.sex, merchantCharacter.stats.characterRow, merchantCharacter.stats.skinTexture, merchantCharacter.stats.hairTexture, true);
this.body.anim.speed = 1f;
if (text3 == "_Volling_Dialogue_Peddler")
{
this.body.anim.Play("Greeting 1");
}
this.body.gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
if (Links.x.merchant.isBoro())
{
this.body.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f);
}
else if (this.merchant)
{
Links.x.characterSheet.StartQuip("What would you like to sell?", FaceAnimations.AnimationNames.Blink);
}
else if (this.minstrel)
{
Links.x.characterSheet.StartQuip("Would you like to buy a song?", FaceAnimations.AnimationNames.Blink);
}
if (this.body.headAnim)
{
this.body.headAnim.FreshBlink();
return;
}
}
else
{
string text4 = Links.x.merchant.boat.model;
text4 += "_Loot";
if (this.currentModel != null)
{
this.RecycleModel("");
}
this.bodyCharacter = null;
this.currentModel = Links.x.archives.InstantiateBoat(text4, this.spawn);
if (this.currentModel)
{
this.currentModel.transform.localPosition = new Vector3(0f, -3.1f, 0f);
this.currentModel.transform.localRotation = Quaternion.Euler(new Vector3(0f, 27f, 0f));
this.currentModel.SetActive(true);
}
}
}
}
// Token: 0x06001379 RID: 4985 RVA: 0x00176F08 File Offset: 0x00175108
public void OpenWarbook()
{
}
// Token: 0x0600137A RID: 4986 RVA: 0x00176F0A File Offset: 0x0017510A
public void OpenSpellbook()
{
}
// Token: 0x0600137B RID: 4987 RVA: 0x00176F0C File Offset: 0x0017510C
public Body UpdateBody(string model)
{
Quaternion quaternion = Quaternion.identity;
if (this.currentModel != null)
{
quaternion = this.currentModel.transform.localRotation;
if (this.currentModel.GetComponent<Animator>())
{
this.currentModel.GetComponent<Animator>().updateMode = AnimatorUpdateMode.Normal;
}
this.RecycleModel(this.character.name);
}
if (Time.realtimeSinceStartup > this.openTime + 0.3f)
{
Links.x.cameraCrossfade.StartCrossFade();
}
this.currentModel = Links.x.archives.InstantiateBody(model, this.spawn);
this.currentModel.transform.localPosition = new Vector3(0f, -3.1f, 0f);
this.currentModel.transform.localRotation = Quaternion.Euler(new Vector3(0f, 27f, 0f));
this.body = this.currentModel.GetComponent<Body>();
this.body.Reset();
this.bodyTime = Time.realtimeSinceStartup;
this.bodyCharacter = this.character;
this.body.model = model;
this.body.name = model;
string weaponControllerPrefix = Records.x.GetWeaponControllerPrefix(this.character.invRow1, this.character.invRow2, this.character.stats.race, false);
AnimatorOverrideController overrideController = Links.x.archives.GetOverrideController(this.character.animationPrefix + weaponControllerPrefix);
if (this.body)
{
this.body.animationPrefix = this.character.animationPrefix;
if (!this.body.anim)
{
this.body.anim = this.body.gameObject.GetComponent<Animator>();
if (!this.body.anim)
{
Debug.Log("no animator");
}
}
this.body.inMenu = true;
this.body.isPortrait = false;
this.body.anim.applyRootMotion = true;
this.body.anim.updateMode = AnimatorUpdateMode.UnscaledTime;
this.body.gameObject.layer = 25;
this.body.SetupHead(this.bodyCharacter.stats.headModel);
this.body.GatherRenderers(true);
this.body.SetupTextures(this.character.stats.race, this.character.stats.sex, this.character.stats.characterRow, this.character.stats.skinTexture, this.character.stats.hairTexture, false);
this.body.SetGrounderState(false);
this.SetupEquippedItems(this.body, true);
this.body.needToUpdateItemColliders = 1;
this.body.anim.runtimeAnimatorController = overrideController;
this.body.anim.enabled = false;
this.body.anim.enabled = true;
if (this.body.headAnim)
{
this.body.headAnim.FreshBlink();
}
}
this.currentModel.transform.localRotation = quaternion;
this.PlayFaceAnimation(FaceAnimations.AnimationNames.Blink);
if (this.body)
{
this.body.anim.Rebind();
this.body.anim.Update(0f);
}
return this.body;
}
// Token: 0x0600137C RID: 4988 RVA: 0x001772A4 File Offset: 0x001754A4
public void CheckLevelUp()
{
bool flag = false;
if (!this.character)
{
return;
}
if (this.character.stats.levelUps != "")
{
flag = true;
}
if (this.merchant || this.blacksmith || this.pagan || this.minstrel)
{
flag = false;
}
this.levelUpButton.SetActive(flag);
}
// Token: 0x0600137D RID: 4989 RVA: 0x0017730D File Offset: 0x0017550D
public void PlayFaceAnimation(FaceAnimations.AnimationNames faceAnimName)
{
if (!this.body)
{
return;
}
if (this.body.headAnim)
{
this.body.headAnim.PlayAnimation(faceAnimName);
}
}
// Token: 0x0600137E RID: 4990 RVA: 0x00177340 File Offset: 0x00175540
private bool InCanvas(GameObject g)
{
bool flag = false;
Transform transform = g.transform;
Transform transform2 = this.canvas.gameObject.transform;
for (int i = 0; i < 30; i++)
{
if (!flag)
{
if (!transform.parent)
{
break;
}
if (transform.parent == transform2)
{
flag = true;
}
else
{
transform = transform.parent;
}
}
}
return flag;
}
// Token: 0x0600137F RID: 4991 RVA: 0x001773A0 File Offset: 0x001755A0
public GameObject DefaultSelection()
{
if (this.minstrel && this.forSaleAbilities.Count > 0)
{
return this.forSaleAbilities[0].gameObject;
}
if (this.blacksmith)
{
return this.blacksmithButton;
}
if (this.minstrel)
{
return null;
}
if (this.slotButtons[6].interactable)
{
return this.slotButtons[6].gameObject;
}
return this.rulesetBtn.gameObject;
}
// Token: 0x06001380 RID: 4992 RVA: 0x00177420 File Offset: 0x00175620
public void SwitchCharacter(Character newCharacter, bool fromStart, bool loading)
{
if (!newCharacter)
{
return;
}
if (this.levelUpMenu)
{
return;
}
if (Links.x.inventory.dragging)
{
return;
}
this.selectedWord = -1;
this.wordIndex = -1;
if (this.itemTooltip.activeSelf)
{
this.itemTooltip.SetActive(false);
}
bool flag = false;
if (this.character == newCharacter && !loading)
{
flag = true;
}
Character character = this.character;
this.character = newCharacter;
this.CheckLevelUp();
if (character)
{
character.body.GatherRenderers(false);
}
if (this.quip)
{
this.quip.ReturnToCellar();
this.quip = null;
this.quipStartTime = -1f;
}
foreach (Portrait portrait in this.portraits)
{
portrait.SetSelection();
}
if (!this.fromGameStart)
{
if (!fromStart)
{
Links.x.inventory.SwitchCharacter();
}
else
{
Links.x.inventory.Open();
}
}
if (!this.fromGameStart)
{
Links.x.camera3D.enabled = true;
}
if (!this.merchant && !this.minstrel && Links.x.gaia.sceneLoaded && !flag)
{
if (this.currentModel != null)
{
if (this.currentModel.GetComponent<Animator>())
{
this.currentModel.GetComponent<Animator>().updateMode = AnimatorUpdateMode.Normal;
}
this.RecycleModel(character.name);
}
string text = this.character.stats.model;
if (this.character.stats.model.Contains("Boro"))
{
text = Records.x.GetBoroModel(Records.x.boroID, false, true);
}
this.currentModel = Links.x.archives.InstantiateBody(text, this.spawn);
if (Time.realtimeSinceStartup > this.openTime + 0.3f)
{
Links.x.cameraCrossfade.StartCrossFade();
}
this.currentModel.SetActive(true);
this.body = this.currentModel.GetComponent<Body>();
this.body.Reset();
this.bodyTime = Time.realtimeSinceStartup;
this.bodyCharacter = this.character;
this.body.model = text;
this.body.name = text;
this.body.animationPrefix = this.character.animationPrefix;
string weaponControllerPrefix = Records.x.GetWeaponControllerPrefix(this.character.invRow1, this.character.invRow2, this.character.stats.race, false);
AnimatorOverrideController overrideController = Links.x.archives.GetOverrideController(this.body.animationPrefix + weaponControllerPrefix);
if (this.body)
{
if (!this.body.anim)
{
this.body.anim = this.body.gameObject.GetComponent<Animator>();
if (!this.body.anim)
{
Debug.Log("no animator");
}
}
this.body.inMenu = true;
this.body.isPortrait = false;
this.body.anim.updateMode = AnimatorUpdateMode.UnscaledTime;
this.body.anim.applyRootMotion = true;
this.body.SetGrounderState(false);
this.body.gameObject.layer = 5;
this.body.SetupHead(this.bodyCharacter.stats.headModel);
this.body.GatherRenderers(true);
this.body.SetupTextures(this.character.stats.race, this.character.stats.sex, this.character.stats.characterRow, this.character.stats.skinTexture, this.character.stats.hairTexture, false);
this.body.anim.runtimeAnimatorController = overrideController;
this.SetupEquippedItems(this.body, true);
this.body.gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
this.body.anim.enabled = false;
this.body.anim.enabled = true;
if (this.body.headAnim)
{
this.body.headAnim.FreshBlink();
}
if (this.body)
{
this.body.anim.Rebind();
if (this.body.gameObject.activeInHierarchy)
{
this.body.anim.Update(0f);
}
}
}
this.currentModel.transform.localPosition = new Vector3(0f, -3.1f, 0f);
this.currentModel.transform.localRotation = Quaternion.Euler(new Vector3(0f, 27f, 0f));
}
this.GetStats();
this.GetProficiency();
this.ShowAutoCast();
this.booksMenu.Equipped();
if (Links.x.joy && !this.fromGameStart)
{
GameObject currentSelectedGameObject = EventSystem.current.currentSelectedGameObject;
GameObject gameObject = this.DefaultSelection();
if (currentSelectedGameObject)
{
if ((!currentSelectedGameObject.activeInHierarchy || !currentSelectedGameObject.activeSelf || !this.InCanvas(currentSelectedGameObject)) && gameObject)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, gameObject);
UITriggerButton component = gameObject.gameObject.GetComponent<UITriggerButton>();
if (component)
{
Links.x.hudControl.SetJoyBox(component);
}
else
{
Links.x.hudControl.SetJoyBox(gameObject.GetComponent<RectTransform>(), Vector4.zero, false, false);
}
}
}
else if (gameObject)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, gameObject);
UITriggerButton component2 = gameObject.gameObject.GetComponent<UITriggerButton>();
if (component2)
{
Links.x.hudControl.SetJoyBox(component2);
}
else
{
Links.x.hudControl.SetJoyBox(gameObject.GetComponent<RectTransform>(), Vector4.zero, false, false);
}
}
}
if (this.songSpellShop.activeSelf)
{
this.UpdateSongShop();
}
}
// Token: 0x06001381 RID: 4993 RVA: 0x00177ACC File Offset: 0x00175CCC
public void GetProficiency()
{
}
// Token: 0x06001382 RID: 4994 RVA: 0x00177AD0 File Offset: 0x00175CD0
private void Link(string n)
{
this.str.Append("\n<color ");
this.str.Append(this.hoverColor);
this.str.Append(">");
this.str.Append(n);
this.str.Append(":");
this.str.Append("</color> ");
}
// Token: 0x06001383 RID: 4995 RVA: 0x00177B40 File Offset: 0x00175D40
private void LinkSkills(string n, int index)
{
if (this.ThreeHighest(index) && !this.levelingUp)
{
this.str.Append("\n");
this.str.Append(n);
return;
}
this.str.Append("\n<color ");
this.str.Append(this.hoverColor);
this.str.Append(">");
this.str.Append(n);
this.str.Append("</color> ");
}
// Token: 0x06001384 RID: 4996 RVA: 0x00177BD0 File Offset: 0x00175DD0
private void LinkOutput(string n)
{
this.str.Append("<color ");
this.str.Append(this.hoverColor);
this.str.Append(">");
this.str.Append(n);
this.str.Append(":");
this.str.Append("</color> ");
}
// Token: 0x06001385 RID: 4997 RVA: 0x00177C40 File Offset: 0x00175E40
private void Adjusted(int adjusted)
{
this.str.Append("<color ");
if (adjusted < 0)
{
this.str.Append(this.redColor);
}
else if (adjusted > 0)
{
this.str.Append(this.greenColor);
}
this.str.Append(">");
}
// Token: 0x06001386 RID: 4998 RVA: 0x00177C9D File Offset: 0x00175E9D
private void AdjustedEnd()
{
this.str.Append("</color> ");
}
// Token: 0x06001387 RID: 4999 RVA: 0x00177CB0 File Offset: 0x00175EB0
private bool ThreeHighest(int index)
{
return !this.levelingUp && (index == this.multiplier1 || index == this.multiplier2 || index == this.multiplier2);
}
// Token: 0x06001388 RID: 5000 RVA: 0x00177CDC File Offset: 0x00175EDC
public void GetStats()
{
this.str.Clear();
this.nameText.text = this.character.stats.displayName;
this.GetStatNums();
this.multiplier1 = -1;
this.multiplier2 = -1;
this.multiplier3 = -1;
this.character.stats.GetHighestSkills(out this.multiplier1, out this.multiplier2, out this.multiplier3);
if (this.levelingUp)
{
this.multiplier1 = this.levelUpMenu.multiplier1;
this.multiplier2 = this.levelUpMenu.multiplier2;
this.multiplier3 = this.levelUpMenu.multiplier3;
}
this.str.Clear();
if ((float)this.character.stats.HealthCurrent() / (float)this.character.stats.HealthMax() > 0.5f)
{
this.str.Append("<size=140%>Health: ");
}
else
{
this.str.Append("<color=#E34317><size=140%>Health: ");
}
this.str.Append(this.character.stats.HealthCurrent());
this.str.Append("</size>/");
this.str.Append(this.character.stats.HealthMax());
if ((float)this.character.stats.HealthCurrent() / (float)this.character.stats.HealthMax() < 0.5f)
{
this.str.Append("</color>\n");
}
else
{
this.str.Append("\n");
}
this.str.Append("<size=140%>Level ");
this.str.Append(this.character.stats.level);
this.str.Append(" </size>[");
this.str.Append(this.character.stats.XP);
this.str.Append("/");
this.str.Append(this.character.stats.XPToNextLevel());
this.str.Append("]");
this.healthStaminaText.text = this.str.ToString();
this.str.Clear();
this.str.Append("<size=0%>.</size>");
this.str.Append("\n");
this.LinkSkills("Short Sword", 4);
this.LinkSkills("Long Sword", 5);
this.LinkSkills("Scepter", 6);
this.LinkSkills("Whip", 35);
this.LinkSkills("Ax", 7);
this.LinkSkills("Pole", 8);
this.LinkSkills("Sling", 11);
this.LinkSkills("Bow", 10);
this.LinkSkills("Unarmed", 13);
this.LinkSkills("Elyxirs", 12);
this.LinkSkills("Multi-Hand", 9);
this.str.Append("\n\n");
this.LinkSkills("Small Shield", 15);
this.LinkSkills("Large Shield", 14);
this.str.Append("\n\n");
this.LinkSkills("Robes", 0);
this.LinkSkills("Crimscale", 2);
this.LinkSkills("Pearl", 1);
this.LinkSkills("Stonewood", 3);
this.skillText.text = this.str.ToString();
this.str.Clear();
this.str.Append("\n");
if (Links.x.diorama.sceneName != "F4_BanquetIsle")
{
this.LinkSkills("Fauna", 31);
this.LinkSkills("Vines", 32);
this.LinkSkills("Spores", 34);
}
else
{
this.LinkSkills("Flesh", 31);
this.LinkSkills("Morphing", 32);
this.LinkSkills("Illumination", 34);
}
this.str.Append("\n\n");
this.LinkSkills("Intercessions", 30);
this.str.Append("\n\n");
this.LinkSkills("Fish", 23);
this.LinkSkills("Forest", 24);
this.LinkSkills("Shrooms", 25);
this.str.Append("\n\n");
this.LinkSkills("Flute", 26);
this.LinkSkills("Horn", 27);
this.LinkSkills("Shepard Pipes", 29);
this.str.Append("\n\n");
this.LinkSkills("Lockpicking", 20);
this.LinkSkills("Sneaking", 21);
this.LinkSkills("Bartering", 22);
this.skillText2.text = this.str.ToString();
this.str.Clear();
this.str.Append("Weapons\n\n\n\n\n\n\n\n\n\n\n\n\nShields\n\n\n\nArmor");
this.skillHeadersText.text = this.str.ToString();
this.str.Append("Weapons\n\n\n\n\n\n\n\n\n\n\n\nShields\n\n\nArmor");
this.str.Clear();
if (Links.x.diorama.sceneName == "F4_BanquetIsle")
{
this.str.Append("Magic\n\n\n\n\nDivine\n\n\nBinding\n\n\n\n\nInstruments\n\n\n\n\nRogue");
}
else
{
this.str.Append("Runic\n\n\n\n\nDivine\n\n\nBinding\n\n\n\n\nInstruments\n\n\n\n\nRogue");
}
this.skillHeadersText2.text = this.str.ToString();
this.GetSkillNums();
this.GetOutput();
this.str.Clear();
this.str.Append("<font=Bold><uppercase><color=#988D7D>Bonuses & Ailments</color></uppercase></font>");
this.str.Append("\n");
this.SetupStatusIcons();
if (Links.x.joy && this.statusEffectsOpen)
{
this.UpdateStatusEffects();
}
for (int i = 0; i < this.skillProgress.Count; i++)
{
float num = this.character.stats.GetSkillProgress(this.skillID[i]);
if (this.levelingUp)
{
num = 0f;
}
this.skillProgress[i].fillAmount = num;
this.SetButtonColorBlock(this.skillProgressBtns[i], num);
}
}
// Token: 0x06001389 RID: 5001 RVA: 0x0017832C File Offset: 0x0017652C
public void SetupStatusIcons()
{
if (!this.minstrel && !this.pagan && !this.blacksmith && !this.merchant)
{
this.statusDescriptions.Clear();
this.statusEffects.Clear();
this.effects = this.character.portrait.effectIcons;
this.effectsImages = this.character.portrait.effectIconImages;
int count = this.effects.Count;
for (int i = 0; i < count; i++)
{
if (this.effects[i].effect._ShowInStatus && !this.effects[i].effect._Permanent)
{
this.str.Clear();
this.statusDescriptions.Add("");
this.statusEffects.Add(null);
int num = this.statusEffects.Count - 1;
Effects effects = this.effects[i];
if (Links.x.joy)
{
this.str.Append("<size=1em>");
}
else
{
this.str.Append("<size=1.3em>");
}
this.str.Append("<font=Bold><color ");
this.str.Append(this.hoverColor);
this.str.Append(">");
if (effects.effect._IsIntercession)
{
this.str.Append("Intercession: ");
}
this.str.Append(effects.effect._DisplayName);
if (Links.x.mk)
{
this.str.Append("</color></font></size>\n\n<font=Bold>Effects:</font>");
this.str.Append("\n");
}
else
{
this.str.Append("</color></font></size>\n");
}
this.str.Append(effects.displayEffects);
if (effects.effect._OverallTime > 0f)
{
int num2 = effects.effectStartTime + effects.timeToWait - (int)Links.x.gameplay.seconds;
num2 = (int)Mathf.Ceil(Records.x.ShowSeconds(num2));
if (effects.displayEffects != "")
{
this.str.Append("</color>");
}
this.str.Append("\n\n<font=Bold>Duration:</font>\n");
if ((float)num2 < 60f)
{
this.str.Append(num2);
if ((float)num2 != 1f)
{
this.str.Append(" seconds remaining");
}
else
{
this.str.Append(" second remaining");
}
}
else
{
float num3 = (float)num2 / 60f;
num3 = Mathf.Round(num3);
this.str.Append(num3);
if (num3 != 1f)
{
this.str.Append(" minutes remaining");
}
else
{
this.str.Append(" minute remaining");
}
}
}
else if (effects.effect._IsIntercession)
{
if (effects.displayEffects != "")
{
this.str.Append("</color>");
}
this.str.Append("\n\n<font=Bold>Duration:</font>\nEffects remain while item is equipped");
}
if (effects.durability != 0f)
{
this.str.Append("\nCurrent durability: ");
this.str.Append(effects.durability);
}
this.statusDescriptions[num] = this.str.ToString();
this.statusEffects[num] = effects;
}
}
return;
}
this.statusDescriptions.Clear();
this.statusEffects.Clear();
}
// Token: 0x0600138A RID: 5002 RVA: 0x001786F4 File Offset: 0x001768F4
public void GetOutput()
{
this.str.Clear();
this.str.Append("<size=0%>.</size>");
this.str.Append("<font=Bold><uppercase><color=#988D7D>Background</color></uppercase></font>");
this.Link("Race");
this.str.Append(this.character.stats.race);
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Condition</color></uppercase></font>");
this.Link("Health");
this.str.Append(this.character.stats.HealthCurrent());
this.str.Append("/");
this.str.Append(this.character.stats.HealthMax());
this.Link("Rally Speed");
this.str.Append(this.character.stats.RallySpeed());
this.str.Append("x");
this.Link("Vision");
this.str.Append(this.character.stats.SightRadius(true, false, false));
if (this.character.stats.SightRadius(true, false, false) == 1f)
{
this.str.Append(" pole");
}
else
{
this.str.Append(" poles");
}
this.Link("Stamina");
this.str.Append(this.character.stats.stamina);
this.str.Append("/");
this.str.Append(this.character.stats.MaxStamina());
this.Link("Weight");
this.str.Append(this.character.stats.CharacterWeight());
if (this.character.stats.CharacterWeight() == 1f)
{
this.str.Append(" stone");
}
else
{
this.str.Append(" stones");
}
this.Link("Carrying Weight");
this.str.Append(this.character.stats.CarryingWeight());
if ((float)this.character.stats.CarryingWeight() == 1f)
{
this.str.Append(" stone");
}
else
{
this.str.Append(" stones");
}
this.Link("Ghost Resistance");
this.str.Append(this.character.stats.GhostResistance(true));
this.str.Append("%");
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Melee & Range Attacks</color></uppercase></font>");
this.Link("Chance to Hit");
this.str.Append(this.character.stats.WeaponHitChance(true, this.character.stats.GetCurrentHand()));
this.hitChanceText.text = (Mathf.Round(this.character.stats.WeaponHitChance(true, this.character.stats.GetCurrentHand()) * 10f) / 10f).ToString();
this.Link("Chance to Evade");
float num;
this.str.Append(this.character.stats.EvasionChance(true, 0f, out num));
float num2;
this.evadeChanceText.text = this.character.stats.EvasionChance(true, 0f, out num2).ToString();
this.Link("Damage");
float num3;
this.str.Append(this.character.stats.DamageRollString(0, out num3));
this.str.Append(" x Severity");
this.dmgChanceText.text = this.character.stats.DamageRollString(0, out num3);
this.acText.text = Mathf.Round(this.character.stats.ArmorAura(1) + (this.character.stats.ArmorNumber(true, true) - this.character.stats.ArmorReduction()) * 10f).ToString() + "%";
if (Links.x.diorama.sceneName != "F4_BanquetIsle")
{
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Pagan</color></uppercase></font>");
this.Link("Difficulty Check (Fauna)");
this.str.Append(this.character.stats.PaganHitChance(true, "Fauna"));
this.Link("Difficulty Check (Vines)");
this.str.Append(this.character.stats.PaganHitChance(true, "Vines"));
this.Link("Difficulty Check (Spores)");
this.str.Append(this.character.stats.PaganHitChance(true, "Spores"));
this.Link("Hit Chance");
this.str.Append(this.character.stats.PaganRollString());
this.str.Append(" + Overpower");
this.paganPowerText.text = this.character.stats.PaganRollString().ToString();
this.Link("Resistance");
float num4;
float num5;
this.str.Append(this.character.stats.PaganResistance(true, "", out num4, out num5));
float num6;
float num7;
this.paganResistText.text = this.character.stats.PaganResistance(true, "", out num6, out num7).ToString();
}
else
{
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Magic</color></uppercase></font>");
this.Link("Difficulty Check (Flesh)");
this.str.Append(this.character.stats.PaganHitChance(true, "Fauna"));
this.Link("Difficulty Check (Morphing)");
this.str.Append(this.character.stats.PaganHitChance(true, "Vines"));
this.Link("Difficulty Check (Illumination)");
this.str.Append(this.character.stats.PaganHitChance(true, "Spores"));
this.Link("Hit Chance");
this.str.Append(this.character.stats.PaganRollString());
this.str.Append(" + Overpower");
this.paganPowerText.text = this.character.stats.PaganRollString().ToString();
this.Link("Resistance");
float num8;
float num9;
this.str.Append(this.character.stats.PaganResistance(true, "", out num8, out num9));
float num10;
float num11;
this.paganResistText.text = this.character.stats.PaganResistance(true, "", out num10, out num11).ToString();
}
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Divine</color></uppercase></font>");
this.Link("Intercession Power");
this.str.Append(this.character.stats.EnchantWearingAbility());
this.intercessionText.text = this.character.stats.EnchantWearingAbility().ToString();
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Speed</color></uppercase></font>");
this.Link("Move Speed");
this.str.Append(this.character.stats.R1(this.character.stats.character.stats.MoveSpeed(true)));
this.str.Append(" poles/second");
this.Link("Sailing Speed");
float num13;
float num14;
float num15;
float num16;
float num12 = Links.x.gaia.boat.speed + Links.x.fellowship.GetSailingSpeed(out num13, out num14, out num15, out num16);
num12 = Mathf.Round(num12 * 100f) / 100f;
this.str.Append(num12);
this.str.Append(" knots");
this.Link("Action Speed");
this.str.Append(this.character.stats.AttackSpeed(this.character.stats.GetCurrentHand(), true, false));
this.str.Append(" seconds");
this.attackSpeedText.text = this.character.stats.AttackSpeed(this.character.stats.GetCurrentHand(), true, false).ToString() + "s";
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Instruments</color></uppercase></font>");
this.Link("Influence");
this.str.Append("Instrument Power + Outcome");
this.songPowerText.text = this.character.stats.MusicPowerString().ToString();
this.Link("Resistance");
this.str.Append("1-");
float num17;
this.str.Append(this.character.stats.InstrumentResistance(true, out num17));
float num18;
this.songResistText.text = "1-" + this.character.stats.InstrumentResistance(true, out num18).ToString();
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Binding</color></uppercase></font>");
this.Link("Charming Forest Creatures");
this.str.Append(this.character.stats.Charming("Forest", true));
this.Link("Charming Fish Creatures");
this.str.Append(this.character.stats.Charming("Fish", true));
this.Link("Charming Shroom Creatures");
this.str.Append(this.character.stats.Charming("Shroom", true));
this.charmText.text = this.character.stats.Charming("", true).ToString();
this.str.Append("\n\n<font=Bold><uppercase><color=#988D7D>Skill Checks</color></uppercase></font>");
this.Link("Bartering Discount");
float num19 = Mathf.Round(this.character.stats.Disposition(Links.x.diorama.sceneName) * 100f);
this.dispositionText.text = num19.ToString();
TextMeshProUGUI textMeshProUGUI = this.dispositionText;
textMeshProUGUI.text += "%";
this.str.Append(num19);
this.str.Append("%");
this.Link("Weapon Repair");
this.str.Append(this.character.stats.Repair("", true));
this.str.Append(" x (Weapon's Skill)");
this.Link("Armor Repair");
this.str.Append(this.character.stats.SocketingRepair(0, true, ""));
this.str.Append(" x (Armor's Skill)");
this.Link("Sneaking Duration");
float num20 = 0f;
this.character.stats.Sneaking(true, out num20);
this.str.Append(num20);
this.str.Append(" seconds");
this.sneakText.text = num20.ToString() + "s";
this.Link("Lockpicking");
this.str.Append(this.character.stats.Lockpicking(true));
this.lockpickText.text = this.character.stats.Lockpicking(true).ToString();
this.Link("Creature Searching");
this.str.Append(this.character.stats.SearchNumber("Charmer", true, "Forest"));
this.Link("Search Environment");
this.str.Append(this.character.stats.SearchNumber("Rogue", true, "Grass"));
this.outputText.text = this.str.ToString();
}
// Token: 0x0600138B RID: 5003 RVA: 0x00179384 File Offset: 0x00177584
public void GetStatNums()
{
this.str.Clear();
int num = 0;
if (this.levelingUp)
{
string text = "Strength";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.strengthText.text = this.str.ToString();
this.str.Clear();
text = "Agility";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.agilityText.text = this.str.ToString();
this.str.Clear();
text = "Aura";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.auraText.text = this.str.ToString();
this.str.Clear();
text = "Pagan";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.paganText.text = this.str.ToString();
this.str.Clear();
text = "Sensory";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.sensoryText.text = this.str.ToString();
this.str.Clear();
text = "Dexterity";
this.LevelUpStartStats(text);
this.str.Append(Mathf.Round(this.character.stats.GetStatOnly(text)));
this.LevelUpEndStats(text);
this.dexterityText.text = this.str.ToString();
}
else
{
string text2 = Mathf.Round(this.character.stats.Stat("Strength", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.strengthText.text = this.str.ToString();
this.str.Clear();
text2 = Mathf.Round(this.character.stats.Stat("Agility", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.agilityText.text = this.str.ToString();
this.str.Clear();
text2 = Mathf.Round(this.character.stats.Stat("Aura", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.auraText.text = this.str.ToString();
this.str.Clear();
text2 = Mathf.Round(this.character.stats.Stat("Pagan", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.paganText.text = this.str.ToString();
this.str.Clear();
text2 = Mathf.Round(this.character.stats.Stat("Sensory", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.sensoryText.text = this.str.ToString();
this.str.Clear();
text2 = Mathf.Round(this.character.stats.Stat("Dexterity", true, out num)).ToString();
if (num != 0)
{
this.Adjusted(num);
}
this.str.Append(text2);
if (num != 0)
{
this.AdjustedEnd();
}
this.dexterityText.text = this.str.ToString();
}
if (Links.x.diorama.sceneName == "F4_BanquetIsle")
{
this.paganHeader.text = "Occult";
return;
}
this.paganHeader.text = "Pagan";
}
// Token: 0x0600138C RID: 5004 RVA: 0x00179853 File Offset: 0x00177A53
private void LevelUpStartStats(string n)
{
if (this.levelingUp && !this.levelUpMenu.levelUpSkills && this.hoverText == n)
{
this.str.Append("<color=#FFEBA8>");
}
}
// Token: 0x0600138D RID: 5005 RVA: 0x00179889 File Offset: 0x00177A89
private void LevelUpEndStats(string n)
{
if (this.levelingUp && !this.levelUpMenu.levelUpSkills && this.hoverText == n)
{
this.str.Append("</color>");
}
}
// Token: 0x0600138E RID: 5006 RVA: 0x001798BF File Offset: 0x00177ABF
private void LevelUpStart(string n)
{
if (this.levelingUp && this.levelUpMenu.levelUpSkills && this.hoverText == n)
{
this.str.Append("<color=#FFEBA8>");
}
}
// Token: 0x0600138F RID: 5007 RVA: 0x001798F5 File Offset: 0x00177AF5
private void LevelUpEnd(string n)
{
if (this.levelingUp && this.levelUpMenu.levelUpSkills && this.hoverText == n)
{
this.str.Append("</color>");
}
}
// Token: 0x06001390 RID: 5008 RVA: 0x0017992C File Offset: 0x00177B2C
public void GetSkillNums()
{
this.str.Clear();
string text = "Short Sword";
this.str.Append("\n");
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(4));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Long Sword";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(5));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Scepter";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(6));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Whip";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(35));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Ax";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(7));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Pole";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(8));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Slings";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(11));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Bow";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(10));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Hand-To-Hand";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(13));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Elixirs";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(12));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Multi-Hand";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(9));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Small Shield";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(15));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Large Shield";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(14));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Robes";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(0));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Crimscale";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(2));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Pearl";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(1));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Stonewood";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(3));
this.LevelUpEnd(text);
this.skillNumbersText.text = this.str.ToString();
this.str.Clear();
this.str.Append("\n");
text = "Fauna";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(17));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Vines";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(18));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Spores";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(19));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Bindings";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(16));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Charm Fish";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(23));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Charm Forest";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(24));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Charm Shrooms";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(25));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Flute";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(26));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Horn";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(27));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Shepard Pipes";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(29));
this.LevelUpEnd(text);
this.str.Append("\n\n");
this.str.Append("\n");
text = "Lockpicking";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(20));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Sneaking";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(21));
this.LevelUpEnd(text);
this.str.Append("\n");
text = "Bartering";
this.LevelUpStart(text);
this.str.Append(this.character.stats.GetSkill(22));
this.LevelUpEnd(text);
this.skillNumbersText2.text = this.str.ToString();
}
// Token: 0x06001391 RID: 5009 RVA: 0x0017A1B4 File Offset: 0x001783B4
public float GetFillAmount(int prof)
{
return (float)prof / 100f;
}
// Token: 0x06001392 RID: 5010 RVA: 0x0017A1C0 File Offset: 0x001783C0
public string GetStars(int prof)
{
if (prof == 0)
{
return "";
}
if (prof == 1)
{
return "*";
}
if (prof == 2)
{
return "**";
}
if (prof == 3)
{
return "***";
}
if (prof == 4)
{
return "***\n*";
}
if (prof == 5)
{
return "***\n**";
}
if (prof == 6)
{
return "***\n***";
}
if (prof == 7)
{
return "***\n***\n*";
}
if (prof == 8)
{
return "***\n***\n**";
}
if (prof == 9)
{
return "***\n***\n***";
}
return "";
}
// Token: 0x06001393 RID: 5011 RVA: 0x0017A236 File Offset: 0x00178436
public Portrait GetPortrait(int num)
{
return this.portraits[num];
}
// Token: 0x06001394 RID: 5012 RVA: 0x0017A244 File Offset: 0x00178444
public void OpenRemoveFromParty()
{
}
// Token: 0x06001395 RID: 5013 RVA: 0x0017A246 File Offset: 0x00178446
public void CloseRemoveFromParty()
{
}
// Token: 0x06001396 RID: 5014 RVA: 0x0017A248 File Offset: 0x00178448
public void RemoveFromParty()
{
this.character.RemoveFromParty(false);
this.CloseRemoveFromParty();
this.StartEndMenu(false, false);
}
// Token: 0x06001397 RID: 5015 RVA: 0x0017A264 File Offset: 0x00178464
public void StartLevelUp()
{
if (this.rulesetOpen)
{
this.CloseOutput();
}
if (this.statusEffectsOpen)
{
this.CloseStatusEffects();
}
this.note.SetActive(false);
if (!this.levelUpMenu)
{
GameObject gameObject = Object.Instantiate<GameObject>(this.levelUpPrefab, Vector3.zero, Quaternion.Euler(Vector3.zero), base.gameObject.transform);
gameObject.transform.localPosition = new Vector3(0f, 0f, 0f);
gameObject.transform.localScale = new Vector3(1.025f, 1.025f, 1.025f);
gameObject.transform.SetSiblingIndex(7);
this.levelUpMenu = gameObject.GetComponent<LevelUp>();
}
if (Links.x.joy)
{
Links.x.hudControl.CloseMenuSwitcher();
}
for (int i = 0; i < this.turnOffDuringLevelup.Count; i++)
{
this.turnOffDuringLevelup[i].interactable = false;
}
this.levelUpMenu.StartMenu();
this.levelUpButton.SetActive(false);
this.descBackground.enabled = false;
if (Links.x.joy)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.firstSkillBtn.gameObject);
}
for (int j = 0; j < this.skillProgress.Count; j++)
{
this.skillProgress[j].fillAmount = 0f;
this.SetButtonColorBlock(this.skillProgressBtns[j], 0f);
}
}
// Token: 0x06001398 RID: 5016 RVA: 0x0017A3F6 File Offset: 0x001785F6
public void ClickedSkill(GameObject go)
{
if (this.levelingUp)
{
this.levelUpMenu.ClickedSkill(go);
}
}
// Token: 0x06001399 RID: 5017 RVA: 0x0017A40C File Offset: 0x0017860C
public void ClickedStat(GameObject go)
{
if (this.levelingUp)
{
this.levelUpMenu.ClickedStat(go);
}
}
// Token: 0x0600139A RID: 5018 RVA: 0x0017A424 File Offset: 0x00178624
public void EndLevelUp(bool fromClose)
{
if (!fromClose && Links.x.joy)
{
Links.x.hudControl.menuSwitcher.SetActive(true);
Links.x.hudControl.menuSwitcherLower.SetActive(true);
}
Object.Destroy(this.levelUpMenu.gameObject);
this.levelUpMenu = null;
this.levelingUp = false;
this.CheckLevelUp();
this.descBackground.enabled = true;
for (int i = 0; i < this.turnOffDuringLevelup.Count; i++)
{
this.turnOffDuringLevelup[i].interactable = true;
}
for (int j = 0; j < this.skillProgress.Count; j++)
{
float num = this.character.stats.GetSkillProgress(this.skillID[j]);
if (this.levelingUp)
{
num = 0f;
}
this.skillProgress[j].fillAmount = num;
this.SetButtonColorBlock(this.skillProgressBtns[j], num);
}
}
// Token: 0x0600139B RID: 5019 RVA: 0x0017A528 File Offset: 0x00178728
private void SetButtonColorBlock(Button btn, float amt)
{
if (amt <= 0f)
{
btn.colors = this.cb0;
return;
}
btn.colors = this.cb1;
}
// Token: 0x0600139C RID: 5020 RVA: 0x0017A54C File Offset: 0x0017874C
public void StartEndMenu(bool firstEnd, bool fromCloseButton)
{
this.TurnOnMainCamera();
if (fromCloseButton && (Links.x.inventory.repairing || Links.x.inventory.mineralizing) && Links.x.joy)
{
Links.x.inventory.repairing = false;
Links.x.inventory.mineralizing = false;
Links.x.hudControl.MenuText();
return;
}
Links.x.renderPortraits.ToggleCrossFades(false);
Links.x.camera3D.enabled = false;
this.characterCamera.SetActive(false);
this.characterSpawn.gameObject.SetActive(false);
this.characterPeddlerSpawn1.gameObject.SetActive(false);
this.characterPeddlerSpawn2.gameObject.SetActive(false);
this.characterPeddlerSpawn3.gameObject.SetActive(false);
this.songSpellShop.SetActive(false);
this.boat = null;
this.repairCharacter = null;
if (this.booksMenu.open)
{
this.booksMenu.CloseMenu();
}
if (this.levelUpMenu)
{
this.EndLevelUp(true);
}
if (Links.x.arrowKit.open)
{
Links.x.arrowKit.StartClose();
}
if (this.statusEffectsOpen)
{
this.CloseStatusEffects();
}
if (this.character)
{
this.character.body.GatherRenderers(false);
}
if (this.enchanting)
{
Links.x.inventory.enchantMenu.CloseMenu();
}
this.enchanting = false;
this.savedCharacter = this.character;
this.open = false;
this.minstrel = false;
this.blacksmith = false;
this.pagan = false;
Records.x.RemoveMenu(base.gameObject);
if (fromCloseButton)
{
Links.x.gameplay.openingAnotherMenu = false;
Links.x.gameplay.CloseDock();
}
bool flag = false;
if (Links.x.joy && (Links.x.gameplay.dockStart || Links.x.gameplay.itemsStart))
{
flag = true;
}
if (!firstEnd && (!Links.x.joy || (Links.x.joy && !flag)))
{
this.anim.Play("Close");
}
else
{
this.open = false;
}
if (Links.x.joy && flag)
{
this.anim.Play("Close", 0, 1f);
this.EndRoleSheetMenu();
}
if (!flag)
{
Links.x.hudControl.JoyBox(false);
}
}
// Token: 0x0600139D RID: 5021 RVA: 0x0017A7E8 File Offset: 0x001789E8
public void SetSelectionButton()
{
GameObject gameObject = this.DefaultSelection();
if (gameObject.activeSelf && gameObject.activeInHierarchy && this.open && Links.x.gaia.sceneLoaded)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, gameObject);
UITriggerButton component = gameObject.gameObject.GetComponent<UITriggerButton>();
if (component)
{
Links.x.hudControl.SetJoyBox(component);
return;
}
Links.x.hudControl.SetJoyBox(gameObject.GetComponent<RectTransform>(), Vector4.zero, false, false);
}
}
// Token: 0x0600139E RID: 5022 RVA: 0x0017A87C File Offset: 0x00178A7C
private void LateUpdate()
{
if (this.open)
{
if (this.scrollTriggerButton)
{
Links.x.hudControl.JoyBounds(this.scrollTriggerButton.rt, this.scrollTriggerButton.boxOffset, false);
Links.x.hudControl.JoyBox(true);
this.scrollTriggerButton = null;
}
if (this.screenW != Screen.width || this.screenH != Screen.height)
{
this.ChangeScreenSize();
}
if (this.targetAlpha == 1f)
{
this.currentAlpha = Mathf.Lerp(this.currentAlpha, this.targetAlpha, Time.unscaledDeltaTime * 5f);
if (this.currentAlpha >= 0f)
{
this.descCanvasGroup.alpha = this.currentAlpha;
}
else
{
this.descCanvasGroup.alpha = 0f;
}
if (this.currentAlpha > 0.01f && !this.itemTooltip.activeSelf)
{
this.itemTooltip.SetActive(true);
}
}
else
{
this.currentAlpha = Mathf.Lerp(this.currentAlpha, this.targetAlpha, Time.unscaledDeltaTime * 1f);
if (this.currentAlpha >= 0f)
{
this.descCanvasGroup.alpha = this.currentAlpha;
}
else
{
this.descCanvasGroup.alpha = 0f;
}
if (this.currentAlpha < 0.01f && this.itemTooltip.activeSelf)
{
this.CloseDesc();
}
}
if (this.quipStartTime > -1f && this.quip && Time.realtimeSinceStartup > this.quipStartTime + 4f)
{
this.quip.End();
this.quipStartTime = -1f;
}
}
if (this.open && !this.merchant && !this.levelUpMenu)
{
this.t += Time.unscaledDeltaTime * 2f;
if (this.colorTarget == this.levelUpColor1)
{
this.skillText.color = Color.Lerp(this.levelUpColor2, this.levelUpColor1, this.t);
}
else
{
this.skillText.color = Color.Lerp(this.levelUpColor1, this.levelUpColor2, this.t);
}
if (this.colorTarget == this.levelUpColor1 && this.skillText.color == this.levelUpColor1)
{
this.t = 0f;
this.colorTarget = this.levelUpColor2;
}
if (this.colorTarget == this.levelUpColor2 && this.skillText.color == this.levelUpColor2)
{
this.t = 0f;
this.colorTarget = this.levelUpColor1;
}
this.skillText2.color = this.skillText.color;
}
else
{
this.skillText.color = this.levelUpColor1;
this.skillText2.color = this.levelUpColor1;
}
if (Links.x.menuCamera != null && this.open && !Links.x.inventory.splitter.open && !Links.x.inventory.spinning && !this.merchant && Links.x.gaia.sceneLoaded && Links.x.mk)
{
this.currentHover = Links.x.gameplay.currentEventObject;
this.pointer = new PointerEventData(EventSystem.current);
this.pointer.position = Input.mousePosition;
this.raycastResults.Clear();
EventSystem.current.RaycastAll(this.pointer, this.raycastResults);
if (this.raycastResults.Count > 0)
{
int num = 0;
foreach (RaycastResult raycastResult in this.raycastResults)
{
if (num == 0)
{
this.currentHover = raycastResult.gameObject;
}
if (Input.GetKey(KeyCode.T))
{
GameObject gameObject = raycastResult.gameObject;
Debug.Log(((gameObject != null) ? gameObject.ToString() : null) + " " + num.ToString());
}
num++;
}
}
bool flag = false;
if (true)
{
if (this.currentHover && this.currentHover != this.prevHover)
{
if (this.levelingUp && this.prevHover)
{
this.levelUpMenu.HoverSet(false, this.prevHover.name);
this.GetStatNums();
this.GetSkillNums();
}
flag = this.GetDescriptionController(this.currentHover, true);
}
}
else
{
if (this.currentHover && Input.GetMouseButtonDown(0))
{
if (this.levelingUp && this.prevHover)
{
this.levelUpMenu.HoverSet(false, this.prevHover.name);
this.GetStatNums();
this.GetSkillNums();
}
flag = this.GetDescriptionController(this.currentHover, true);
}
if (this.currentHover && this.currentHover != this.prevHover)
{
string name = this.currentHover.name;
string text = "";
bool flag2 = false;
float num2 = 0f;
bool flag3 = false;
Links.x.manual.GetDescription(true, name, this.character, out text, out flag2, out flag3, out num2);
bool flag4 = false;
if (text != "")
{
this.isHovering = true;
flag4 = true;
this.str.Clear();
if (Links.x.mk)
{
this.str.Append("<voffset=.4em><size=40><sprite=");
int keyIconIndex = Links.x.keyControl.GetKeyIconIndex("LMB");
this.str.Append(keyIconIndex);
this.str.Append("></size></voffset>");
this.str.Append("See Details");
}
else
{
this.str.Append("<voffset=.4em><size=40><sprite=");
int controllerSprite = Links.x.gameplay.GetControllerSprite("Interact", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset>");
this.str.Append("See Details");
}
}
if (name.Contains("Abilities"))
{
this.isHovering = true;
flag4 = true;
string text2 = "";
if (name.Contains("Vines"))
{
text2 = "Vines";
}
if (name.Contains("Fauna"))
{
text2 = "Fauna";
}
if (name.Contains("Spores"))
{
text2 = "Spores";
}
if (name.Contains("Drum"))
{
text2 = "Drum";
}
if (name.Contains("Flute"))
{
text2 = "Flute";
}
if (name.Contains("Horn"))
{
text2 = "Horn";
}
if (name.Contains("Melee"))
{
text2 = "Melee";
}
if (name.Contains("Range"))
{
text2 = "Range";
}
if (name.Contains("Defense"))
{
text2 = "Defense";
}
this.str.Clear();
if (Links.x.mk)
{
this.str.Append("<voffset=.4em><size=40><sprite=");
int keyIconIndex2 = Links.x.keyControl.GetKeyIconIndex("LMB");
this.str.Append(keyIconIndex2);
this.str.Append("></size></voffset>");
this.str.Append("See ");
this.str.Append(Links.x.manual.DisplayName(text2));
}
else
{
this.str.Append("<voffset=.4em><size=40><sprite=");
int controllerSprite2 = Links.x.gameplay.GetControllerSprite("Action", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite2);
this.str.Append("></size></voffset>");
this.str.Append("See ");
this.str.Append(Links.x.manual.DisplayName(text2));
}
}
name.Contains("Status Icon");
if (this.isHovering && flag4)
{
Links.x.inventory.SetDragMessageText(this.str.ToString(), null);
if (this.tooltipCorout != null)
{
base.StopCoroutine(this.tooltipCorout);
this.tooltipCorout = null;
}
flag = true;
}
}
}
if (Input.GetMouseButtonUp(0) && Links.x.mk)
{
EventSystem.current.SetSelectedGameObject(null);
}
if (this.prevHover && this.currentHover != this.prevHover && !flag && this.prevHover && this.isHovering)
{
if (this.levelingUp)
{
this.levelUpMenu.HoverSet(false, this.prevHover.name);
this.GetStatNums();
this.GetSkillNums();
}
this.targetAlpha = -2f;
this.hoverText = "";
this.waitToEndHover = 0f;
Links.x.gameplay.uiCanClick = false;
this.isHovering = false;
if (this.tooltipCorout != null)
{
base.StopCoroutine(this.tooltipCorout);
this.tooltipCorout = null;
}
this.tooltipCorout = this.CloseHoverTip();
base.StartCoroutine(this.tooltipCorout);
this.currentHover = null;
}
this.prevHover = this.currentHover;
}
else if (this.contents1.activeSelf)
{
this.currentHover = Links.x.gameplay.currentEventObject;
bool flag5 = false;
if (this.currentHover && this.currentHover != this.prevHover)
{
if (this.levelingUp && this.prevHover)
{
this.levelUpMenu.HoverSet(false, this.prevHover.name);
this.GetStatNums();
this.GetSkillNums();
}
flag5 = this.GetDescriptionController(this.currentHover, true);
if (flag5)
{
Links.x.inventory.CloseTooltipController();
this.descriptionTextInv.text = "";
this.descriptionTextInv2.text = "";
this.descriptionTextInv3.text = "";
}
}
if (this.prevHover && this.currentHover != this.prevHover && !flag5 && this.prevHover && this.isHovering)
{
if (this.levelingUp)
{
this.levelUpMenu.HoverSet(false, this.prevHover.name);
this.GetStatNums();
this.GetSkillNums();
}
this.targetAlpha = -2f;
this.hoverText = "";
this.waitToEndHover = 0f;
Links.x.gameplay.uiCanClick = false;
this.isHovering = false;
if (this.tooltipCorout != null)
{
base.StopCoroutine(this.tooltipCorout);
this.tooltipCorout = null;
}
this.tooltipCorout = this.CloseHoverTip();
base.StartCoroutine(this.tooltipCorout);
this.currentHover = null;
this.currentHover = null;
}
this.prevHover = this.currentHover;
if (Links.x.joy)
{
GameObject currentSelectedGameObject = EventSystem.current.currentSelectedGameObject;
bool flag6 = false;
if (currentSelectedGameObject == null)
{
flag6 = true;
}
if (!flag6)
{
bool flag7 = false;
if (!currentSelectedGameObject.gameObject.activeSelf || !currentSelectedGameObject.gameObject.activeInHierarchy || !this.open)
{
flag7 = true;
}
if (!flag7 && currentSelectedGameObject.gameObject.name.Contains("Portrait") && !Links.x.inventory.dragging)
{
flag7 = true;
}
if (flag7)
{
this.SetSelectionButton();
flag6 = true;
}
}
if (!flag6)
{
if (currentSelectedGameObject.transform.parent == null)
{
flag6 = true;
}
if (!flag6)
{
if ((!(currentSelectedGameObject.transform.parent.gameObject == this.contentPanel.gameObject) || !this.merchant) && !(currentSelectedGameObject.transform.parent.gameObject == this.contentPanelSpells.gameObject) && !(currentSelectedGameObject.transform.parent.gameObject == this.contentPanelRuleset.gameObject) && !(currentSelectedGameObject.transform.parent.gameObject == this.contentPanelShop.gameObject))
{
flag6 = true;
}
if (currentSelectedGameObject == this.lastSelected)
{
flag6 = true;
}
if (!flag6)
{
if (currentSelectedGameObject.transform.parent.gameObject == this.contentPanel.gameObject && this.merchant)
{
this.selectedRectTransform = currentSelectedGameObject.GetComponent<RectTransform>();
float num3 = Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) + this.selectedRectTransform.rect.height;
float y = this.contentPanel.anchoredPosition.y;
float num4 = this.contentPanel.anchoredPosition.y + this.scrollRectTransform.rect.height;
if (num3 > num4)
{
float num5 = num3 - this.scrollRectTransform.rect.height;
this.contentPanel.anchoredPosition = new Vector2(this.contentPanel.anchoredPosition.x, num5);
}
else if (Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) < y)
{
this.contentPanel.anchoredPosition = new Vector2(this.contentPanel.anchoredPosition.x, Mathf.Abs(this.selectedRectTransform.anchoredPosition.y));
}
}
else if (currentSelectedGameObject.transform.parent.gameObject == this.contentPanelRuleset.gameObject)
{
this.selectedRectTransform = currentSelectedGameObject.GetComponent<RectTransform>();
float num6 = Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) + this.selectedRectTransform.rect.height;
float y2 = this.contentPanelRuleset1.anchoredPosition.y;
float num7 = this.contentPanelRuleset1.anchoredPosition.y + this.scrollRectTransformRuleset.rect.height;
if (num6 > num7)
{
float num8 = num6 - this.scrollRectTransformRuleset.rect.height;
this.contentPanelRuleset1.anchoredPosition = new Vector2(this.contentPanelRuleset1.anchoredPosition.x, num8);
}
else if (Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) < y2)
{
float num9 = 30f;
this.contentPanelRuleset1.anchoredPosition = new Vector2(this.contentPanelRuleset1.anchoredPosition.x, Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) - num9);
}
}
else if (currentSelectedGameObject.transform.parent.gameObject == this.contentPanelSpells.gameObject)
{
this.selectedRectTransform = currentSelectedGameObject.GetComponent<RectTransform>();
float num10 = Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) + this.selectedRectTransform.rect.height;
float y3 = this.contentPanelSpells.anchoredPosition.y;
float num11 = this.contentPanelSpells.anchoredPosition.y + this.scrollRectTransformSpells.rect.height;
if (num10 > num11)
{
float num12 = num10 - this.scrollRectTransformSpells.rect.height;
this.contentPanelSpells.anchoredPosition = new Vector2(this.contentPanelSpells.anchoredPosition.x, num12 + 60f);
}
else if (Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) < y3)
{
this.contentPanelSpells.anchoredPosition = new Vector2(this.contentPanelSpells.anchoredPosition.x, Mathf.Abs(this.selectedRectTransform.anchoredPosition.y));
}
}
else if (currentSelectedGameObject.transform.parent.gameObject == this.contentPanelShop.gameObject)
{
this.selectedRectTransform = currentSelectedGameObject.GetComponent<RectTransform>();
float num13 = Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) + this.selectedRectTransform.rect.height;
float y4 = this.contentPanelShop.anchoredPosition.y;
float num14 = this.contentPanelShop.anchoredPosition.y + this.scrollRectTransformShop.rect.height;
if (num13 > num14)
{
float num15 = num13 - this.scrollRectTransformShop.rect.height;
this.contentPanelShop.anchoredPosition = new Vector2(this.contentPanelShop.anchoredPosition.x, num15);
}
else if (Mathf.Abs(this.selectedRectTransform.anchoredPosition.y) < y4)
{
this.contentPanelShop.anchoredPosition = new Vector2(this.contentPanelShop.anchoredPosition.x, Mathf.Abs(this.selectedRectTransform.anchoredPosition.y));
}
}
this.lastSelected = currentSelectedGameObject;
if ((currentSelectedGameObject.transform.parent.gameObject == this.contentPanel.gameObject && this.merchant) || currentSelectedGameObject.transform.parent.gameObject == this.contentPanelSpells.gameObject || currentSelectedGameObject.transform.parent.gameObject == this.contentPanelRuleset.gameObject || currentSelectedGameObject.transform.parent.gameObject == this.contentPanelShop.gameObject)
{
UITriggerButton component = currentSelectedGameObject.GetComponent<UITriggerButton>();
if (component)
{
this.scrollTriggerButton = component;
Links.x.hudControl.JoyBounds(this.scrollTriggerButton.rt, this.scrollTriggerButton.boxOffset, false);
Links.x.hudControl.JoyBox(true);
}
else
{
Links.x.hudControl.JoyBox(false);
}
}
}
}
}
}
if (Links.x.joy && !Links.x.inventory.dragging)
{
if (Links.x.gameplay.aimStart)
{
int num16 = this.thisPortraitOrder.IndexOf(this.character);
int num17;
if (num16 == 3)
{
num17 = 0;
}
else
{
num17 = num16 + 1;
}
if (num17 > -1 && num17 <= 3 && num17 < this.thisPortraitOrder.Count)
{
this.SwitchCharacter(this.thisPortraitOrder[num17], false, false);
}
}
if (Links.x.gameplay.targetDodgeStart)
{
int num18 = this.thisPortraitOrder.IndexOf(this.character);
int num19;
if (num18 == 0)
{
num19 = 3;
}
else
{
num19 = num18 - 1;
}
if (num19 > -1 && num19 <= 3 && num19 < this.thisPortraitOrder.Count)
{
this.SwitchCharacter(this.thisPortraitOrder[num19], false, false);
}
}
if (Links.x.gameplay.hudLeftStart)
{
this.ToggleStatusEffects();
}
}
}
if (this.open && this.body && !this.merchant && !this.minstrel)
{
if (!this.body.gameObject.activeSelf || this.body.tr.parent == Links.x.cellar.tr)
{
this.UpdateBody(this.body.model);
}
if (this.body.headObject && (!this.body.headObject.gameObject.activeSelf || this.body.headObject.transform.parent == Links.x.cellar.tr))
{
this.UpdateBody(this.body.model);
}
}
}
// Token: 0x0600139F RID: 5023 RVA: 0x0017BD88 File Offset: 0x00179F88
private IEnumerator CloseHoverTip()
{
yield return new WaitForSecondsRealtime(0.15f);
if (!this.isHovering)
{
Links.x.inventory.SetDragMessageText("", null);
this.normalDescription.SetActive(true);
this.extendedDescription.SetActive(false);
this.effectsDescription.SetActive(false);
}
this.tooltipCorout = null;
yield break;
}
// Token: 0x060013A0 RID: 5024 RVA: 0x0017BD98 File Offset: 0x00179F98
public bool GetDescriptionController(GameObject obj, bool setLevelUpHover)
{
string name = obj.name;
this.hoverText = name;
if (name == "Race")
{
this.hoverText = this.character.stats.race;
}
if (name == "Background")
{
this.hoverText = this.character.stats.raceTrait;
}
if (this.hoverText == null)
{
return false;
}
string text = "";
bool flag = false;
float num = 0f;
bool flag2 = false;
Links.x.manual.GetDescription(true, this.hoverText, this.character, out text, out flag, out flag2, out num);
if (!Links.x.inventory.hitItem && !Links.x.inventory.hitEquipped)
{
this.descriptionTextInv.text = "";
this.descriptionTextInv2.text = "";
this.descriptionTextInv3.text = "";
}
if (text != "")
{
if (!this.itemTooltip.activeSelf)
{
this.itemTooltip.SetActive(true);
}
this.descriptionEffectsText.text = "";
this.targetAlpha = 1f;
if (!flag && !flag2)
{
this.descriptionTextRuleset.text = text;
this.extendedDescription.SetActive(true);
this.normalDescription.SetActive(false);
}
else
{
this.descriptionText.text = text;
this.normalDescription.SetActive(true);
this.extendedDescription.SetActive(false);
}
this.effectsDescription.SetActive(false);
this.isHovering = true;
Links.x.inventory.doLookAt = true;
if (!this.levelingUp)
{
if (flag)
{
this.levelProgress.SetActive(true);
this.levelFill.fillAmount = num;
this.levelText.text = Mathf.Round(num * 100f).ToString() + "% of all skill use";
}
else
{
this.levelProgress.SetActive(false);
}
}
else
{
if (setLevelUpHover)
{
this.levelUpMenu.HoverSet(true, this.hoverText);
}
string text2 = "";
float num2 = 0f;
float num3 = 0f;
if (flag2 && !this.levelUpMenu.levelUpSkills)
{
this.GetStatNums();
float originalStat = this.levelUpMenu.GetOriginalStat(this.hoverText);
float currentStat = this.levelUpMenu.GetCurrentStat(this.hoverText);
if (this.levelUpMenu.statChosen1 == this.hoverText)
{
num2 = currentStat;
num3 = originalStat;
text2 = "Return " + this.hoverText + " upgrade";
}
else
{
num2 = originalStat;
num3 = currentStat;
text2 = "Upgrade " + this.hoverText;
}
}
if (!flag2 && this.levelUpMenu.levelUpSkills && flag)
{
this.GetSkillNums();
int skillIndex = this.levelUpMenu.GetSkillIndex(this.hoverText);
float originalSkill = this.levelUpMenu.GetOriginalSkill(skillIndex);
float currentSkill = this.levelUpMenu.GetCurrentSkill(skillIndex);
string text3 = Links.x.manual.DisplayNameFromIndex(skillIndex, this.character);
if (this.levelUpMenu.skillChosen1 == this.hoverText || this.levelUpMenu.skillChosen2 == this.hoverText || this.levelUpMenu.skillChosen3 == this.hoverText)
{
num2 = currentSkill;
num3 = originalSkill;
text2 = "Return upgrade";
}
else
{
num2 = originalSkill;
num3 = currentSkill;
if (Records.x.banquetIsle && skillIndex == 17)
{
text3 = "Flesh";
}
if (Records.x.banquetIsle && skillIndex == 18)
{
text3 = "Morphing";
}
if (Records.x.banquetIsle && skillIndex == 19)
{
text3 = "Illumination";
}
text2 = "Upgrade " + text3;
}
}
if (text2 != "")
{
if (Links.x.joy)
{
this.str.Clear();
this.str.Append("\n\n");
this.str.Append(" <voffset=.4em><size=30><sprite=");
int controllerSprite = Links.x.gameplay.GetControllerSprite("Action", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset>");
}
else
{
this.str.Clear();
this.str.Append("\n\n");
this.str.Append(" <voffset=.4em><size=30><sprite=");
int keyIconIndex = Links.x.keyControl.GetKeyIconIndex("LMB");
this.str.Append(keyIconIndex);
this.str.Append("></size></voffset>");
}
this.str.Append(text2);
this.str.Append(" (<color #D4CDC1>");
this.str.Append(num2);
this.str.Append("</color> to <color #D4CDC1>");
this.str.Append(num3);
this.str.Append("</color>)");
TextMeshProUGUI textMeshProUGUI = this.descriptionText;
textMeshProUGUI.text += this.str.ToString();
}
this.levelProgress.SetActive(false);
}
return true;
}
if (this.hoverText == "Equipped Ability")
{
if (!Links.x.inventory.hitItem && !Links.x.inventory.hitEquipped)
{
this.descriptionTextInv.text = "";
this.descriptionTextInv2.text = "";
this.descriptionTextInv3.text = "";
}
this.targetAlpha = 1f;
text = "<size=1.2em><font=Bold>Active";
SkillButton component = obj.GetComponent<SkillButton>();
if (component.isInstrument)
{
text += " Song: </font></size>";
}
else
{
text += " Word of Power: </font></size>";
}
text += component.fullText;
text += "\n\n";
text += component.readyText;
this.descriptionText.text = text;
this.isHovering = true;
this.levelProgress.SetActive(false);
this.effectsDescription.SetActive(false);
}
else if (this.hoverText == "Ruleset")
{
this.targetAlpha = 1f;
obj.GetComponent<Image>();
this.descriptionText.text = "View full ruleset...";
this.isHovering = true;
this.levelProgress.SetActive(false);
this.normalDescription.SetActive(true);
this.extendedDescription.SetActive(false);
this.effectsDescription.SetActive(false);
}
if (obj.transform.parent && obj.transform.parent.gameObject.name == "Status Grid")
{
this.effectsDescription.SetActive(true);
this.normalDescription.SetActive(false);
this.extendedDescription.SetActive(false);
Links.x.inventory.itemInfoCompare.gameObject.SetActive(false);
if (!Links.x.inventory.hitItem && !Links.x.inventory.hitEquipped)
{
this.descriptionTextInv.text = "";
this.descriptionTextInv2.text = "";
this.descriptionTextInv3.text = "";
}
this.targetAlpha = 1f;
Image component2 = obj.GetComponent<Image>();
Character character = obj.transform.parent.gameObject.transform.parent.gameObject.GetComponent<Portrait>().character;
int effectIndex = character.characterSheetPortrait.GetEffectIndex(component2);
if (effectIndex < this.statusDescriptions.Count && effectIndex > -1)
{
Effects effectAtIndex = character.characterSheetPortrait.GetEffectAtIndex(effectIndex);
this.str.Clear();
if (effectAtIndex)
{
this.str.Append("<size=1.3em><font=Bold><color ");
this.str.Append(this.hoverColor);
this.str.Append(">");
if (effectAtIndex.effect._IsIntercession)
{
this.str.Append("Intercession: ");
}
this.str.Append(effectAtIndex.effect._DisplayName);
this.str.Append("</color></font></size>\n\n<font=Bold>Effects:</font>");
this.str.Append("\n");
this.str.Append(effectAtIndex.displayEffects);
if (effectAtIndex.effect._OverallTime > 0f)
{
int num4 = effectAtIndex.effectStartTime + effectAtIndex.timeToWait - (int)Links.x.gameplay.seconds;
num4 = (int)Mathf.Ceil(Records.x.ShowSeconds(num4));
if (effectAtIndex.displayEffects != "")
{
this.str.Append("</color>");
}
this.str.Append("\n\n<font=Bold>Duration:</font>\n");
if ((float)num4 < 60f)
{
this.str.Append(num4);
if ((float)num4 != 1f)
{
this.str.Append(" seconds remaining");
}
else
{
this.str.Append(" second remaining");
}
}
else
{
float num5 = (float)num4 / 60f;
num5 = Mathf.Round(num5);
this.str.Append(num5);
if (num5 != 1f)
{
this.str.Append(" minutes remaining");
}
else
{
this.str.Append(" minute remaining");
}
}
}
else if (effectAtIndex.effect._IsIntercession)
{
if (effectAtIndex.displayEffects != "")
{
this.str.Append("</color>");
}
this.str.Append("\n\n<font=Bold>Duration:</font>\nEffects remain while item is equipped");
}
if (effectAtIndex.durability != 0f)
{
this.str.Append("\nCurrent durability: ");
this.str.Append(effectAtIndex.durability);
}
}
this.descriptionEffectsText.text = this.str.ToString();
}
this.isHovering = true;
this.levelProgress.SetActive(false);
RectTransform component3 = this.effectsDescription.GetComponent<RectTransform>();
component3.sizeDelta = new Vector2(component3.sizeDelta.x, this.descriptionEffectsText.preferredHeight);
}
return false;
}
// Token: 0x060013A1 RID: 5025 RVA: 0x0017C86C File Offset: 0x0017AA6C
public void CloseNote()
{
this.note.SetActive(false);
if (Links.x.joy)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.attackSpeedText.gameObject.transform.parent.gameObject);
}
}
// Token: 0x060013A2 RID: 5026 RVA: 0x0017C8BF File Offset: 0x0017AABF
private IEnumerator EndCloseNote()
{
this.note.gameObject.GetComponent<Animator>().Play("CloseSubMenu");
MasterAudio.PlaySoundAndForget("Paper Open 2", 1f, new float?(1f), 0f, "", null);
yield return new WaitForSecondsRealtime(0.5f);
this.closingNoteRoutine = null;
yield break;
}
// Token: 0x060013A3 RID: 5027 RVA: 0x0017C8D0 File Offset: 0x0017AAD0
public void OpenNote(Library.Inventory itemRow)
{
this.SetPortraitNav(false);
if (Records.x.editor && Records.x.testQuests)
{
Debug.Log(itemRow._SetVariable);
}
if (itemRow._SetVariable != "" && DialogueLua.GetVariable(itemRow._SetVariable).asInt == 0)
{
DialogueLua.SetVariable(itemRow._SetVariable, 1);
}
if (itemRow._SetQuest != "")
{
bool flag = true;
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.PerpIsDead)
{
flag = false;
}
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.Failure)
{
flag = false;
}
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.Complete)
{
flag = false;
}
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.WaitingForExileIsland)
{
flag = false;
}
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.ExileIsland)
{
flag = false;
}
if (QuestLog.GetQuestState(itemRow._SetQuest) == QuestState.Success)
{
flag = false;
}
if (flag)
{
QuestLog.SetQuestState(itemRow._SetQuest, Records.x.StringToQuestState(itemRow._SetQuestState));
}
}
MasterAudio.PlaySoundAndForget("Paper Open 2", 1f, new float?(1f), 0f, "", null);
this.note.SetActive(true);
if (this.noteAnimator.gameObject.activeInHierarchy)
{
this.noteAnimator.Play("OpenMiddleScroll");
}
bool flag2 = true;
if (itemRow._NotePath.Contains("Image_"))
{
flag2 = false;
}
if (flag2)
{
this.noteScroll.SetActive(true);
this.noteImage.SetActive(false);
if (this.noteAnimator.gameObject.activeInHierarchy)
{
this.noteAnimator.Play("OpenMiddleScroll");
}
TextAsset textAsset = Resources.Load<TextAsset>("Text Files/" + itemRow._NotePath);
Debug.Log("Text Files/" + itemRow._NotePath);
this.noteText.text = textAsset.text;
this.savedNoteText = textAsset.text;
this.savedNoteImage = "";
this.savedNoteRune = "";
}
else
{
this.noteScroll.SetActive(false);
this.noteImage.SetActive(true);
string notePath = itemRow._NotePath;
string text = "Image_";
string text2 = notePath.Replace(text, "");
string text3 = "Text Files/" + text2;
Sprite sprite = Resources.Load<Sprite>(text3);
if (sprite == null)
{
string text4 = Application.persistentDataPath + "/AutoSave/";
text4 += text2;
text4 += ".png";
sprite = Links.x.archives.AddRune(text2, text4, "", text2);
this.noteSprite.sprite = sprite;
this.savedNoteRune = text2;
if (sprite)
{
float width = sprite.rect.width;
float height = sprite.rect.height;
float num = 410f;
float num2 = height * num / 512f;
this.noteSprite.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(num, num2);
}
}
else
{
this.noteSprite.sprite = sprite;
float width2 = sprite.rect.width;
float height2 = sprite.rect.height;
float num3 = width2 / 410f;
float num4 = 410f;
float num5 = height2 / num3;
this.noteSprite.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(num4, num5);
this.savedNoteImage = text3;
this.savedNoteRune = "";
}
this.savedNoteText = "";
}
if (Links.x.joy)
{
Links.x.inventory.ToggleCharacterSheetButtonStateForDrag(true);
this.closeText.SetActive(false);
}
}
// Token: 0x060013A4 RID: 5028 RVA: 0x0017CCB8 File Offset: 0x0017AEB8
public void ToggleAutoCast()
{
if (Links.x.mk)
{
EventSystem.current.SetSelectedGameObject(null);
}
if (this.character.stats.autoCastAI)
{
this.character.stats.autoCastAI = false;
Links.x.removeFX.gameObject.SetActive(true);
Links.x.removeFX.gameObject.GetComponent<HannahAnimator>().Play("Idle");
Links.x.removeFX.position = this.autoCastToggle.gameObject.transform.position;
}
else
{
this.character.stats.autoCastAI = true;
Links.x.itemPickupFX.gameObject.SetActive(true);
Links.x.itemPickupFX.gameObject.GetComponent<HannahAnimator>().Play("Idle");
Links.x.itemPickupFX.position = this.autoCastToggle.gameObject.transform.position;
}
this.ShowAutoCast();
}
// Token: 0x060013A5 RID: 5029 RVA: 0x0017CDC6 File Offset: 0x0017AFC6
public void ShowAutoCast()
{
if (this.character.stats.autoCastAI)
{
this.autoCastToggle.enabled = true;
return;
}
this.autoCastToggle.enabled = false;
}
// Token: 0x060013A6 RID: 5030 RVA: 0x0017CDF4 File Offset: 0x0017AFF4
public void PinToDock()
{
Debug.Log(string.Concat(new string[]
{
"Pin to dock ",
Links.x.hudControl.savedNoteImage,
" ",
this.savedNoteImage,
" ",
this.savedNoteText
}));
Links.x.itemPickupFX.gameObject.SetActive(true);
Links.x.itemPickupFX.gameObject.GetComponent<HannahAnimator>().Play("Idle");
Links.x.itemPickupFX.position = this.pinButton.transform.position;
if ((Links.x.hudControl.savedNoteImage == this.savedNoteImage && this.savedNoteImage != "") || (Links.x.hudControl.savedNoteText == this.savedNoteText && this.savedNoteText != ""))
{
Links.x.hudControl.ClosePinnedNote();
if (this.open)
{
Links.x.characterSheet.StartQuip("I'll put that back in my bag", FaceAnimations.AnimationNames.Frown);
return;
}
}
else
{
Links.x.hudControl.PinToDock(this.savedNoteImage, this.savedNoteRune, this.savedNoteText);
if (this.open)
{
Links.x.characterSheet.StartQuip("I'll keep that close to hand", FaceAnimations.AnimationNames.Frown);
}
}
}
// Token: 0x060013A7 RID: 5031 RVA: 0x0017CF68 File Offset: 0x0017B168
public void CloseDesc()
{
if (this.itemTooltip.activeSelf)
{
Links.x.inventory.doLookAt = false;
this.itemTooltip.SetActive(false);
}
}
// Token: 0x060013A8 RID: 5032 RVA: 0x0017CF93 File Offset: 0x0017B193
public void TimeScale()
{
}
// Token: 0x060013A9 RID: 5033 RVA: 0x0017CF98 File Offset: 0x0017B198
public void EndRoleSheetMenu()
{
this.startMain = null;
if (this.closingNoteRoutine != null)
{
this.note.SetActive(false);
this.closingNoteRoutine = null;
}
this.characterCamera.SetActive(false);
Links.x.camera3D.enabled = false;
this.characterSpawn.gameObject.SetActive(false);
this.characterPeddlerSpawn1.gameObject.SetActive(false);
this.characterPeddlerSpawn2.gameObject.SetActive(false);
this.characterPeddlerSpawn3.gameObject.SetActive(false);
if (this.minstrel)
{
if (Links.x.joy)
{
for (int i = 0; i < this.buttonsForController.Count; i++)
{
if (this.buttonsForController[i])
{
this.buttonsForController[i].interactable = true;
}
}
for (int j = 0; j < this.slotButtons.Count; j++)
{
if (this.buttonsForController[j])
{
this.slotButtons[j].interactable = true;
}
}
for (int k = 0; k < this.characterSheetButtons.Count; k++)
{
if (this.buttonsForController[k])
{
this.characterSheetButtons[k].interactable = true;
}
}
for (int l = 0; l < this.turnOffDuringLevelup.Count; l++)
{
if (this.buttonsForController[l])
{
this.turnOffDuringLevelup[l].interactable = true;
}
}
}
this.minstrel = false;
}
if (this.currentModel != null)
{
if (this.currentModel.GetComponent<Animator>())
{
this.currentModel.GetComponent<Animator>().updateMode = AnimatorUpdateMode.Normal;
}
this.RecycleModel(this.character.name);
}
this.ClearPriceTags();
int count = this.forSaleAbilities.Count;
if (count > 0)
{
for (int m = 0; m < count; m++)
{
this.forSaleAbilities[m].forSale = false;
Links.x.cellar.ReturnPooledUIObject(49, this.forSaleAbilities[m].gameObject);
}
this.forSaleAbilities.Clear();
}
if (this.quip)
{
this.quip.ReturnToCellar();
this.quip = null;
this.quipStartTime = -1f;
}
foreach (Portrait portrait in this.portraits)
{
portrait.time.SetActive(false);
}
Links.x.inventory.Close();
this.contents1.SetActive(false);
this.contents2.SetActive(false);
this.contents3.SetActive(false);
this.contents4.SetActive(false);
this.statusGrid.gameObject.transform.parent.gameObject.SetActive(false);
if (this.merchant)
{
Links.x.merchant.CloseBag();
}
this.merchant = false;
this.blacksmith = false;
this.pagan = false;
this.pagan = false;
this.characterCamera.SetActive(false);
this.open = false;
this.canvas.enabled = false;
this.anim.enabled = false;
this.fromGameStart = false;
if (Records.x.pocketPause)
{
Links.x.combat.GetTargets(false, false, null);
}
if (!Records.x.inMenus)
{
Links.x.hudControl.JoyBox(false);
}
}
// Token: 0x060013AA RID: 5034 RVA: 0x0017D358 File Offset: 0x0017B558
public void Clear(TextMeshProUGUI text)
{
if (text == null)
{
return;
}
if (text.textInfo == null)
{
return;
}
if (this.clearWord >= 0)
{
TMP_LinkInfo tmp_LinkInfo = text.textInfo.linkInfo[this.clearWord];
int linkTextLength = tmp_LinkInfo.linkTextLength;
int linkTextfirstCharacterIndex = tmp_LinkInfo.linkTextfirstCharacterIndex;
this.hoverText = tmp_LinkInfo.GetLinkText();
this.vertexColors = text.textInfo.meshInfo[0].colors32;
for (int i = 0; i < linkTextLength; i++)
{
int vertexIndex = text.textInfo.characterInfo[linkTextfirstCharacterIndex + i].vertexIndex;
Color32 color = this.normalColor;
this.vertexColors[vertexIndex] = color;
this.vertexColors[vertexIndex + 1] = color;
this.vertexColors[vertexIndex + 2] = color;
this.vertexColors[vertexIndex + 3] = color;
}
Mesh mesh = text.textInfo.meshInfo[0].mesh;
mesh.colors32 = this.vertexColors;
text.canvasRenderer.SetMesh(mesh);
}
this.clearWord = -1;
this.selectedWord = -1;
this.wordIndex = -1;
}
// Token: 0x060013AB RID: 5035 RVA: 0x0017D490 File Offset: 0x0017B690
public void CheckHover(TextMeshProUGUI text)
{
this.wordIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition, Links.x.menuCamera);
float num = 5f * (float)Screen.width / 1000f;
if (this.wordIndex == -1)
{
this.wordIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition + new Vector3(num, num, 0f), Links.x.menuCamera);
}
if (this.wordIndex == -1)
{
this.wordIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition + new Vector3(-1f * num, num, 0f), Links.x.menuCamera);
}
if (this.wordIndex == -1)
{
this.wordIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition + new Vector3(num, -1f * num, 0f), Links.x.menuCamera);
}
if (this.wordIndex == -1)
{
this.wordIndex = TMP_TextUtilities.FindIntersectingLink(text, Input.mousePosition + new Vector3(-1f * num, -1f * num, 0f), Links.x.menuCamera);
}
int num2 = this.wordIndex;
if (this.selectedWord != this.wordIndex && this.selectedWord >= 0)
{
this.clearWord = this.selectedWord;
this.Clear(text);
}
if (num2 != -1 && this.selectedWord != num2)
{
this.waitToEndHover = 0f;
this.selectedWord = num2;
TMP_LinkInfo tmp_LinkInfo = text.textInfo.linkInfo[num2];
int linkTextLength = tmp_LinkInfo.linkTextLength;
int linkTextfirstCharacterIndex = tmp_LinkInfo.linkTextfirstCharacterIndex;
this.hoverText = tmp_LinkInfo.GetLinkText();
this.vertexColors = text.textInfo.meshInfo[0].colors32;
for (int i = 0; i < linkTextLength; i++)
{
int vertexIndex = text.textInfo.characterInfo[linkTextfirstCharacterIndex + i].vertexIndex;
Color32 color = this.highlightColor;
this.vertexColors[vertexIndex] = color;
this.vertexColors[vertexIndex + 1] = color;
this.vertexColors[vertexIndex + 2] = color;
this.vertexColors[vertexIndex + 3] = color;
}
Mesh mesh = text.textInfo.meshInfo[0].mesh;
mesh.colors32 = this.vertexColors;
text.canvasRenderer.SetMesh(mesh);
this.isHovering = true;
Links.x.gameplay.uiCanClick = true;
return;
}
if (this.waitToEndHover == 0f && this.wordIndex == -1)
{
this.waitToEndHover = Time.realtimeSinceStartup;
this.clearWord = this.selectedWord;
}
}
// Token: 0x060013AC RID: 5036 RVA: 0x0017D749 File Offset: 0x0017B949
public void ShowProficiencyInfo(string type, RectTransform profRT)
{
}
// Token: 0x060013AD RID: 5037 RVA: 0x0017D74B File Offset: 0x0017B94B
public void SetupEquippedItems(Body body, bool skipArmor)
{
Links.x.inventory.SetupEquippedItems(body, true, 0, skipArmor);
}
// Token: 0x060013AE RID: 5038 RVA: 0x0017D760 File Offset: 0x0017B960
public void EndHover(RectTransform profRT)
{
Links.x.inventory.doLookAt = false;
if (profRT)
{
Links.x.characterTooltip.EndHoverText(profRT.gameObject, false);
return;
}
Links.x.characterTooltip.EndHoverText(null, true);
}
// Token: 0x060013AF RID: 5039 RVA: 0x0017D7B0 File Offset: 0x0017B9B0
public void OrderPortraits()
{
this.thisPortraitOrder.Clear();
foreach (Character character in this.portraitOrder.OrderByDescending((Character ch) => ch.stats.partyID))
{
if (character.characterSheetPortrait)
{
character.characterSheetPortrait.gameObject.transform.SetAsFirstSibling();
}
this.thisPortraitOrder.Add(character);
}
}
// Token: 0x060013B0 RID: 5040 RVA: 0x0017D854 File Offset: 0x0017BA54
public void PlayRandomClick()
{
int num = Random.Range(0, 5);
string text = "";
if (num == 0)
{
text = "Clicks Stone A";
}
if (num == 1)
{
text = "Clicks Stone B";
}
if (num == 2)
{
text = "Clicks Stone C";
}
if (num == 3)
{
text = "Clicks Stone D";
}
if (num == 4)
{
text = "Clicks Stone E";
}
MasterAudio.PlaySoundAndForget(text, Random.Range(0.1f, 0.2f), new float?(1f), 0f, "", null);
}
// Token: 0x060013B1 RID: 5041 RVA: 0x0017D8D1 File Offset: 0x0017BAD1
public void CloseEnchantMenu()
{
Links.x.inventory.enchantMenu.FinishCloseMenu();
}
// Token: 0x060013B2 RID: 5042 RVA: 0x0017D8E8 File Offset: 0x0017BAE8
public void SetupSongShop()
{
string[] array = new string[0];
string xmlName = Links.x.merchant.merchantCharacter.stats.xmlName;
if (xmlName == "MinstrelLazure")
{
array = new string[] { "AmplifyDmg", "Rally", "SlowSong", "RallyUp", "SpeedUp", "SkillsDown", "ActionSpeedUp", "HitChanceDown", "SummonBat", "SummonRaven" };
}
if (xmlName == "WestRuinsMinstrel")
{
array = new string[] { "StaminaUp", "Fear", "SummonRedbird" };
}
string text = "Songs";
for (int i = 0; i < this.buttonsForController.Count; i++)
{
this.buttonsForController[i].interactable = false;
}
Links.x.inventory.gameObject.SetActive(false);
for (int j = 0; j < array.Length; j++)
{
GameObject pooledGameObject = Links.x.cellar.GetPooledGameObject(49);
pooledGameObject.SetActive(true);
pooledGameObject.transform.SetParent(this.shopGrid, false);
SkillButton component = pooledGameObject.GetComponent<SkillButton>();
component.inSpellMenu = false;
if (text == "Spells")
{
component.abilityName = array[j];
component.uniqueName = array[j];
component.index = j;
component.forSale = true;
component.character = this.character;
component.spellStats = new Vector4(0f, 0f, 0f, 0f);
component.inSpellMenu = false;
}
if (text == "Songs")
{
component.abilityName = array[j];
component.index = j;
component.forSale = true;
component.character = this.character;
component.componentID = -1;
component.uniqueName = array[j];
}
component.inWindow = false;
component.Setup(true, true);
this.forSaleAbilities.Add(component);
pooledGameObject.transform.localPosition = new Vector3(pooledGameObject.transform.localPosition.x, pooledGameObject.transform.localPosition.y, 0f);
}
this.UpdateSongShop();
}
// Token: 0x060013B3 RID: 5043 RVA: 0x0017DB50 File Offset: 0x0017BD50
public void UpdateSongShop()
{
this.ClearPriceTags();
bool flag = false;
for (int i = 0; i < this.forSaleAbilities.Count; i++)
{
GameObject gameObject = null;
bool flag2 = true;
bool flag3 = false;
bool flag4 = false;
if (!this.character.stats.HasSongbook() && this.forSaleAbilities[i].isInstrument)
{
flag2 = false;
flag3 = true;
}
if (flag2 && this.character.stats.HasAbility(this.forSaleAbilities[i].abilityName))
{
flag4 = true;
flag2 = false;
}
this.forSaleAbilities[i].canBuy = flag2;
if (flag2)
{
bool flag5 = false;
for (int j = 0; j < this.forSaleTags.Count; j++)
{
if (!this.forSaleTags[j].activeSelf && this.forSaleTags[j].name.Contains("Price"))
{
gameObject = this.forSaleTags[j];
gameObject.SetActive(true);
gameObject.transform.SetParent(this.forSaleAbilities[i].gameObject.transform);
flag5 = true;
break;
}
}
if (!flag5)
{
gameObject = Object.Instantiate<GameObject>(this.costPrefab, Vector3.zero, Quaternion.identity, this.forSaleAbilities[i].gameObject.transform);
gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
gameObject.layer = 5;
this.forSaleTags.Add(gameObject);
}
float num = this.character.stats.SongCost(this.forSaleAbilities[i].abilityRow);
gameObject.transform.GetChild(1).gameObject.GetComponent<TextMeshProUGUI>().text = num.ToString();
if (!flag)
{
flag = true;
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.forSaleAbilities[i].gameObject);
Links.x.hudControl.SetJoyBox(this.forSaleAbilities[i].gameObject.GetComponent<UITriggerButton>());
}
}
else if (flag3)
{
bool flag6 = false;
for (int k = 0; k < this.forSaleTags.Count; k++)
{
if (!this.forSaleTags[k].activeSelf && this.forSaleTags[k].name.Contains("No Book"))
{
gameObject = this.forSaleTags[k];
gameObject.SetActive(true);
gameObject.transform.SetParent(this.forSaleAbilities[i].gameObject.transform);
flag6 = true;
break;
}
}
if (!flag6)
{
gameObject = Object.Instantiate<GameObject>(this.noBookPrefab, Vector3.zero, Quaternion.identity, this.forSaleAbilities[i].gameObject.transform);
gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
gameObject.layer = 5;
this.forSaleTags.Add(gameObject);
}
}
else if (flag4)
{
bool flag7 = false;
for (int l = 0; l < this.forSaleTags.Count; l++)
{
if (!this.forSaleTags[l].activeSelf && this.forSaleTags[l].name.Contains("Owned"))
{
gameObject = this.forSaleTags[l];
gameObject.SetActive(true);
gameObject.transform.SetParent(this.forSaleAbilities[i].gameObject.transform);
flag7 = true;
break;
}
}
if (!flag7)
{
gameObject = Object.Instantiate<GameObject>(this.ownedPrefab, Vector3.zero, Quaternion.identity, this.forSaleAbilities[i].gameObject.transform);
gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
gameObject.layer = 5;
this.forSaleTags.Add(gameObject);
}
}
gameObject.GetComponent<RectTransform>().anchoredPosition3D = new Vector3(-20f, 2f, 0f);
this.forSaleAbilities[i].ForSaleInteractable(flag2);
}
if (!flag && this.forSaleAbilities.Count > 0)
{
Links.x.gameplay.SetInteractableSelected(EventSystem.current, this.forSaleAbilities[0].gameObject);
Links.x.hudControl.SetJoyBox(this.forSaleAbilities[0].gameObject.GetComponent<UITriggerButton>());
}
if (Links.x.joy)
{
for (int m = 0; m < this.buttonsForController.Count; m++)
{
if (this.buttonsForController[m])
{
this.buttonsForController[m].interactable = false;
}
}
for (int n = 0; n < this.slotButtons.Count; n++)
{
if (this.buttonsForController[n])
{
this.slotButtons[n].interactable = false;
}
}
for (int num2 = 0; num2 < this.characterSheetButtons.Count; num2++)
{
if (this.buttonsForController[num2])
{
this.characterSheetButtons[num2].interactable = false;
}
}
for (int num3 = 0; num3 < this.turnOffDuringLevelup.Count; num3++)
{
if (this.turnOffDuringLevelup[num3])
{
this.turnOffDuringLevelup[num3].interactable = false;
}
}
}
}
// Token: 0x060013B4 RID: 5044 RVA: 0x0017E118 File Offset: 0x0017C318
private void ClearPriceTags()
{
for (int i = 0; i < this.forSaleTags.Count; i++)
{
this.forSaleTags[i].SetActive(false);
this.forSaleTags[i].transform.SetParent(this.shopGrid, true);
}
}
// Token: 0x060013B5 RID: 5045 RVA: 0x0017E16A File Offset: 0x0017C36A
public void PlayVignetteAnimation(string animName)
{
if (this.body)
{
this.body.anim.Play(animName, -1, 0f);
}
}
// Token: 0x060013B6 RID: 5046 RVA: 0x0017E190 File Offset: 0x0017C390
public void StartQuip(string text, FaceAnimations.AnimationNames animToPlayAfter)
{
if (this.open)
{
if (this.quipCoroutine != null)
{
Links.x.dialogue.npcTalking = false;
if (this.body)
{
this.body.lookAtController.EndLook();
}
base.StopCoroutine(this.quipCoroutine);
this.quipCoroutine = null;
}
this.quipCoroutine = this.Quip(text, animToPlayAfter);
base.StartCoroutine(this.quipCoroutine);
}
}
// Token: 0x060013B7 RID: 5047 RVA: 0x0017E208 File Offset: 0x0017C408
private IEnumerator Quip(string text, FaceAnimations.AnimationNames animToPlayAfter)
{
if (text == "EquipJewelry")
{
text = Links.x.quips.GetQuip("Equip Jewelry", this.character.quipIndex);
}
if (text == "EquipItem")
{
text = Links.x.quips.GetQuip("Equip Item", this.character.quipIndex);
}
bool flag = false;
if (text == "")
{
flag = true;
}
this.quip = Links.x.characterSheet.merchantQuip;
if (!this.quip)
{
flag = true;
}
this.quip.gameObject.SetActive(false);
if (!Links.x.characterSheet.bodyCharacter)
{
flag = true;
}
if (!flag && Links.x.characterSheet.body)
{
if (Links.x.inventory.typewriter && !Links.x.inventory.typewriter.isPlaying)
{
Object.Destroy(Links.x.inventory.typewriter);
}
yield return new WaitForEndOfFrame();
if (this.quip && this.body)
{
TextMeshProUGUI component = this.quip.gameObject.transform.GetChild(0).gameObject.GetComponent<TextMeshProUGUI>();
component.text = "";
Transform transform = this.quip.transform;
Vector3 localPosition = transform.transform.localPosition;
float num = (float)text.Length * 0.2f;
float num2 = 70f;
component.text = text;
string text2 = "";
int num3 = 0;
int num4 = text.Length;
bool flag2 = false;
int num5 = 24;
foreach (char c in text)
{
if (num3 > num5 && c.ToString() == " ")
{
num4 = num3;
num3 = 0;
flag2 = true;
text2 += "\n";
}
num3++;
text2 += c.ToString();
}
num = (float)num4 * 12f + 30f;
if (flag2)
{
num2 = 100f;
}
component.text = text2;
transform.gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(num, num2);
component.enabled = true;
if (this.body)
{
this.body.lookAtController.SetNewTarget(this.characterCamera.gameObject.transform, 0f, 0f, false);
}
component.text = text2;
this.quip.Setup(Links.x.characterSheet.body);
this.quip.menu = true;
this.quip.gameObject.SetActive(true);
this.quipStartTime = Time.realtimeSinceStartup;
if (animToPlayAfter == FaceAnimations.AnimationNames.Smile)
{
if (Links.x.characterSheet.body.headAnim)
{
Links.x.characterSheet.body.headAnim.emotion = "Happy";
}
}
else if (animToPlayAfter == FaceAnimations.AnimationNames.Frown)
{
if (Links.x.characterSheet.body.headAnim)
{
Links.x.characterSheet.body.headAnim.emotion = "Sad";
}
}
else if (Links.x.characterSheet.body.headAnim)
{
Links.x.characterSheet.body.headAnim.emotion = "";
}
if (Links.x.inventory.typewriter)
{
Links.x.inventory.typewriter.enabled = true;
}
float timeToLerp = 1.25f;
float percentage = 0f;
float startTime = Time.realtimeSinceStartup;
while (percentage < 1f)
{
percentage = (Time.realtimeSinceStartup - startTime) / timeToLerp;
Links.x.dialogue.npcTalking = true;
yield return null;
}
Links.x.dialogue.npcTalking = false;
if (this.body)
{
this.body.lookAtController.EndLook();
}
if (animToPlayAfter != FaceAnimations.AnimationNames.None)
{
Links.x.characterSheet.PlayFaceAnimation(animToPlayAfter);
}
}
}
yield break;
}
// Token: 0x060013B8 RID: 5048 RVA: 0x0017E228 File Offset: 0x0017C428
private void OnDisable()
{
if (this.currentModel != null)
{
if (this.currentModel.GetComponent<Animator>())
{
this.currentModel.GetComponent<Animator>().updateMode = AnimatorUpdateMode.Normal;
}
if (this.character)
{
this.RecycleModel(this.character.name);
}
else
{
this.RecycleModel("");
}
this.currentModel = null;
}
}
// Token: 0x040020AD RID: 8365
[Header("OBJECTS")]
public Canvas canvas;
// Token: 0x040020AE RID: 8366
public CanvasGroup canvasGroup;
// Token: 0x040020AF RID: 8367
public GameObject contents1;
// Token: 0x040020B0 RID: 8368
public GameObject contents2;
// Token: 0x040020B1 RID: 8369
public GameObject contents3;
// Token: 0x040020B2 RID: 8370
public GameObject contents4;
// Token: 0x040020B3 RID: 8371
public List<Portrait> portraits = new List<Portrait>();
// Token: 0x040020B4 RID: 8372
public Transform characterSpawn;
// Token: 0x040020B5 RID: 8373
public Transform characterCreationSpawn;
// Token: 0x040020B6 RID: 8374
public Transform characterCreationAnimalSpawn;
// Token: 0x040020B7 RID: 8375
public Transform characterPeddlerSpawn1;
// Token: 0x040020B8 RID: 8376
public Transform characterPeddlerSpawn2;
// Token: 0x040020B9 RID: 8377
public Transform characterPeddlerSpawn3;
// Token: 0x040020BA RID: 8378
public Transform spawn;
// Token: 0x040020BB RID: 8379
public GameObject characterCamera;
// Token: 0x040020BC RID: 8380
public GameObject characterCreationDefault;
// Token: 0x040020BD RID: 8381
public RenderTexture noAA;
// Token: 0x040020BE RID: 8382
public RenderTexture aa2;
// Token: 0x040020BF RID: 8383
public RenderTexture aa4;
// Token: 0x040020C0 RID: 8384
public RenderTexture aa8;
// Token: 0x040020C1 RID: 8385
public RawImage vignette;
// Token: 0x040020C2 RID: 8386
public Animator anim;
// Token: 0x040020C3 RID: 8387
public Animator outputAnimator;
// Token: 0x040020C4 RID: 8388
public Transform startTr;
// Token: 0x040020C5 RID: 8389
public List<Image> proficiencyImages = new List<Image>();
// Token: 0x040020C6 RID: 8390
public List<TextMeshProUGUI> proficiencyText = new List<TextMeshProUGUI>();
// Token: 0x040020C7 RID: 8391
public GameObject statHovers;
// Token: 0x040020C8 RID: 8392
public GameObject outputHovers;
// Token: 0x040020C9 RID: 8393
public GameObject removeFromPartyButton;
// Token: 0x040020CA RID: 8394
public TextMeshProUGUI removeFromPartyText;
// Token: 0x040020CB RID: 8395
public TextMeshProUGUI blacksmithInstructions;
// Token: 0x040020CC RID: 8396
public TextMeshProUGUI paganInstructions;
// Token: 0x040020CD RID: 8397
public TextMeshProUGUI repairInstructions;
// Token: 0x040020CE RID: 8398
public TextMeshProUGUI outputText;
// Token: 0x040020CF RID: 8399
public TextMeshProUGUI statusText;
// Token: 0x040020D0 RID: 8400
public TextMeshProUGUI skillText;
// Token: 0x040020D1 RID: 8401
public TextMeshProUGUI skillText2;
// Token: 0x040020D2 RID: 8402
public TextMeshProUGUI skillNumbersText;
// Token: 0x040020D3 RID: 8403
public TextMeshProUGUI skillNumbersText2;
// Token: 0x040020D4 RID: 8404
public TextMeshProUGUI skillHeadersText;
// Token: 0x040020D5 RID: 8405
public TextMeshProUGUI skillHeadersText2;
// Token: 0x040020D6 RID: 8406
public TextMeshProUGUI nameText;
// Token: 0x040020D7 RID: 8407
public TextMeshProUGUI strengthText;
// Token: 0x040020D8 RID: 8408
public TextMeshProUGUI agilityText;
// Token: 0x040020D9 RID: 8409
public TextMeshProUGUI auraText;
// Token: 0x040020DA RID: 8410
public TextMeshProUGUI sensoryText;
// Token: 0x040020DB RID: 8411
public TextMeshProUGUI dexterityText;
// Token: 0x040020DC RID: 8412
public TextMeshProUGUI paganText;
// Token: 0x040020DD RID: 8413
public TextMeshProUGUI paganHeader;
// Token: 0x040020DE RID: 8414
public TextMeshProUGUI healthStaminaText;
// Token: 0x040020DF RID: 8415
public TextMeshProUGUI hitChanceText;
// Token: 0x040020E0 RID: 8416
public TextMeshProUGUI evadeChanceText;
// Token: 0x040020E1 RID: 8417
public TextMeshProUGUI dmgChanceText;
// Token: 0x040020E2 RID: 8418
public TextMeshProUGUI acText;
// Token: 0x040020E3 RID: 8419
public TextMeshProUGUI attackSpeedText;
// Token: 0x040020E4 RID: 8420
public TextMeshProUGUI paganPowerText;
// Token: 0x040020E5 RID: 8421
public TextMeshProUGUI songPowerText;
// Token: 0x040020E6 RID: 8422
public TextMeshProUGUI charmText;
// Token: 0x040020E7 RID: 8423
public TextMeshProUGUI intercessionText;
// Token: 0x040020E8 RID: 8424
public TextMeshProUGUI lockpickText;
// Token: 0x040020E9 RID: 8425
public TextMeshProUGUI sneakText;
// Token: 0x040020EA RID: 8426
public TextMeshProUGUI dispositionText;
// Token: 0x040020EB RID: 8427
public TextMeshProUGUI paganResistText;
// Token: 0x040020EC RID: 8428
public TextMeshProUGUI songResistText;
// Token: 0x040020ED RID: 8429
public GameObject blacksmithOverlay;
// Token: 0x040020EE RID: 8430
public GameObject paganOverlay;
// Token: 0x040020EF RID: 8431
public Transform portraitParent;
// Token: 0x040020F0 RID: 8432
public ScrollRectNoDragging scrollRect1;
// Token: 0x040020F1 RID: 8433
public ScrollRectNoDragging scrollRect2;
// Token: 0x040020F2 RID: 8434
public ScrollRectNoDragging scrollRect3;
// Token: 0x040020F3 RID: 8435
public OverHeadUI merchantQuip;
// Token: 0x040020F4 RID: 8436
public Animator merchantQuipAnim;
// Token: 0x040020F5 RID: 8437
public Image skillButton;
// Token: 0x040020F6 RID: 8438
public Image statButton;
// Token: 0x040020F7 RID: 8439
public Image outputButton;
// Token: 0x040020F8 RID: 8440
public Image statusButton;
// Token: 0x040020F9 RID: 8441
public Color toggleBtnNormal;
// Token: 0x040020FA RID: 8442
public Color toggleBtnSelected;
// Token: 0x040020FB RID: 8443
public List<Button> buttonsForController = new List<Button>();
// Token: 0x040020FC RID: 8444
public List<Button> slotButtons = new List<Button>();
// Token: 0x040020FD RID: 8445
public List<Button> peddlerButtons = new List<Button>();
// Token: 0x040020FE RID: 8446
public List<Button> characterSheetButtons = new List<Button>();
// Token: 0x040020FF RID: 8447
public List<Button> turnOffDuringLevelup = new List<Button>();
// Token: 0x04002100 RID: 8448
public float t;
// Token: 0x04002101 RID: 8449
public Color levelUpColor1;
// Token: 0x04002102 RID: 8450
public Color levelUpColor2;
// Token: 0x04002103 RID: 8451
public Color colorTarget;
// Token: 0x04002104 RID: 8452
public GameObject levelProgress;
// Token: 0x04002105 RID: 8453
public Image levelFill;
// Token: 0x04002106 RID: 8454
public TextMeshProUGUI levelText;
// Token: 0x04002107 RID: 8455
public TextMeshProUGUI raceText;
// Token: 0x04002108 RID: 8456
public List<GameObject> extraHovers = new List<GameObject>();
// Token: 0x04002109 RID: 8457
private int screenW;
// Token: 0x0400210A RID: 8458
private int screenH;
// Token: 0x0400210B RID: 8459
public GameObject levelUpButton;
// Token: 0x0400210C RID: 8460
public LevelUp levelUpMenu;
// Token: 0x0400210D RID: 8461
public GameObject levelUpPrefab;
// Token: 0x0400210E RID: 8462
public Image fluteAbilities;
// Token: 0x0400210F RID: 8463
public Image hornAbilities;
// Token: 0x04002110 RID: 8464
public Image drumAbilities;
// Token: 0x04002111 RID: 8465
public Image vinesAbilities;
// Token: 0x04002112 RID: 8466
public Image faunaAbilities;
// Token: 0x04002113 RID: 8467
public Image sporesAbilities;
// Token: 0x04002114 RID: 8468
public Image meleeAbilities;
// Token: 0x04002115 RID: 8469
public Image rangeAbilities;
// Token: 0x04002116 RID: 8470
public Image defenseAbilities;
// Token: 0x04002117 RID: 8471
public Image autoCastToggle;
// Token: 0x04002118 RID: 8472
public Books booksMenu;
// Token: 0x04002119 RID: 8473
public List<Image> skillProgress = new List<Image>();
// Token: 0x0400211A RID: 8474
private List<Button> skillProgressBtns = new List<Button>();
// Token: 0x0400211B RID: 8475
public List<int> skillID = new List<int>();
// Token: 0x0400211C RID: 8476
public GameObject pinButton;
// Token: 0x0400211D RID: 8477
public GameObject rulesetBtn;
// Token: 0x0400211E RID: 8478
private Character savedCharacter;
// Token: 0x0400211F RID: 8479
public TextMeshProUGUI controllerSwitchL;
// Token: 0x04002120 RID: 8480
public TextMeshProUGUI controllerSwitchR;
// Token: 0x04002121 RID: 8481
[Header("MERCHANT SCREEN")]
public bool merchant;
// Token: 0x04002122 RID: 8482
public bool blacksmith;
// Token: 0x04002123 RID: 8483
public bool pagan;
// Token: 0x04002124 RID: 8484
public bool minstrel;
// Token: 0x04002125 RID: 8485
public bool enchanting;
// Token: 0x04002126 RID: 8486
public GameObject blacksmithButton;
// Token: 0x04002127 RID: 8487
public string peddler;
// Token: 0x04002128 RID: 8488
public List<GameObject> merchantOnly = new List<GameObject>();
// Token: 0x04002129 RID: 8489
public List<GameObject> characterSheetOnly = new List<GameObject>();
// Token: 0x0400212A RID: 8490
private List<bool> gridState;
// Token: 0x0400212B RID: 8491
public RectTransform scrollRectTransform;
// Token: 0x0400212C RID: 8492
public RectTransform scrollRectTransformSpells;
// Token: 0x0400212D RID: 8493
public RectTransform scrollRectTransformRuleset;
// Token: 0x0400212E RID: 8494
public RectTransform scrollRectTransformShop;
// Token: 0x0400212F RID: 8495
public RectTransform contentPanel;
// Token: 0x04002130 RID: 8496
public RectTransform contentPanelSpells;
// Token: 0x04002131 RID: 8497
public RectTransform contentPanelRuleset;
// Token: 0x04002132 RID: 8498
public RectTransform contentPanelRuleset1;
// Token: 0x04002133 RID: 8499
public RectTransform contentPanelShop;
// Token: 0x04002134 RID: 8500
public RectTransform selectedRectTransform;
// Token: 0x04002135 RID: 8501
public GameObject lastSelected;
// Token: 0x04002136 RID: 8502
public Character repairCharacter;
// Token: 0x04002137 RID: 8503
public Boat boat;
// Token: 0x04002138 RID: 8504
public GameObject songSpellShop;
// Token: 0x04002139 RID: 8505
public GameObject eqiuppedFolder;
// Token: 0x0400213A RID: 8506
public Transform shopGrid;
// Token: 0x0400213B RID: 8507
public GameObject costPrefab;
// Token: 0x0400213C RID: 8508
public GameObject ownedPrefab;
// Token: 0x0400213D RID: 8509
public GameObject noBookPrefab;
// Token: 0x0400213E RID: 8510
public List<SkillButton> forSaleAbilities = new List<SkillButton>();
// Token: 0x0400213F RID: 8511
public List<GameObject> forSaleTags = new List<GameObject>();
// Token: 0x04002140 RID: 8512
public TextMeshProUGUI shopHeader;
// Token: 0x04002141 RID: 8513
private IEnumerator quipCoroutine;
// Token: 0x04002142 RID: 8514
private OverHeadUI quip;
// Token: 0x04002143 RID: 8515
private float quipStartTime;
// Token: 0x04002144 RID: 8516
private float flipStatusTime;
// Token: 0x04002145 RID: 8517
[Header("HOVERING")]
public string hoverColor = "#908777";
// Token: 0x04002146 RID: 8518
public string greenColor;
// Token: 0x04002147 RID: 8519
public string redColor;
// Token: 0x04002148 RID: 8520
public Color highlightColor;
// Token: 0x04002149 RID: 8521
public Color normalColor;
// Token: 0x0400214A RID: 8522
public GameObject itemTooltip;
// Token: 0x0400214B RID: 8523
public TextMeshProUGUI descriptionText;
// Token: 0x0400214C RID: 8524
public TextMeshProUGUI descriptionTextRuleset;
// Token: 0x0400214D RID: 8525
public TextMeshProUGUI descriptionTextInv;
// Token: 0x0400214E RID: 8526
public TextMeshProUGUI descriptionTextInv2;
// Token: 0x0400214F RID: 8527
public TextMeshProUGUI descriptionTextInv3;
// Token: 0x04002150 RID: 8528
public TextMeshProUGUI descriptionEffectsText;
// Token: 0x04002151 RID: 8529
private float waitToEndHover;
// Token: 0x04002152 RID: 8530
public RectTransform tooltipRT;
// Token: 0x04002153 RID: 8531
public RectTransform textRT;
// Token: 0x04002154 RID: 8532
private bool isHovering;
// Token: 0x04002155 RID: 8533
private Color32[] vertexColors;
// Token: 0x04002156 RID: 8534
private int selectedWord;
// Token: 0x04002157 RID: 8535
private int wordIndex;
// Token: 0x04002158 RID: 8536
private int clearWord;
// Token: 0x04002159 RID: 8537
private string hoverText;
// Token: 0x0400215A RID: 8538
public GameObject currentHover;
// Token: 0x0400215B RID: 8539
public GameObject prevHover;
// Token: 0x0400215C RID: 8540
private List<RaycastResult> raycastResults = new List<RaycastResult>();
// Token: 0x0400215D RID: 8541
private PointerEventData pointer;
// Token: 0x0400215E RID: 8542
public bool levelingUp;
// Token: 0x0400215F RID: 8543
public bool canLevelUpSkill;
// Token: 0x04002160 RID: 8544
public bool canLevelUpStat;
// Token: 0x04002161 RID: 8545
public TextMeshProUGUI tooltipText;
// Token: 0x04002162 RID: 8546
private IEnumerator tooltipCorout;
// Token: 0x04002163 RID: 8547
public float targetAlpha;
// Token: 0x04002164 RID: 8548
public float currentAlpha;
// Token: 0x04002165 RID: 8549
public CanvasGroup descCanvasGroup;
// Token: 0x04002166 RID: 8550
public Image descBackground;
// Token: 0x04002167 RID: 8551
private UITriggerButton scrollTriggerButton;
// Token: 0x04002168 RID: 8552
[Header("NOTE")]
public GameObject note;
// Token: 0x04002169 RID: 8553
public Animator noteAnimator;
// Token: 0x0400216A RID: 8554
public TextMeshProUGUI noteText;
// Token: 0x0400216B RID: 8555
private IEnumerator closingNoteRoutine;
// Token: 0x0400216C RID: 8556
public GameObject noteScroll;
// Token: 0x0400216D RID: 8557
public GameObject noteImage;
// Token: 0x0400216E RID: 8558
public Image noteSprite;
// Token: 0x0400216F RID: 8559
public string savedNoteImage;
// Token: 0x04002170 RID: 8560
public string savedNoteText;
// Token: 0x04002171 RID: 8561
public string savedNoteRune;
// Token: 0x04002172 RID: 8562
[Header("STATUS")]
public GameObject statusPrefab;
// Token: 0x04002173 RID: 8563
public List<Image> openStatus = new List<Image>();
// Token: 0x04002174 RID: 8564
public List<Image> usedStatus = new List<Image>();
// Token: 0x04002175 RID: 8565
public List<string> statusDescriptions = new List<string>();
// Token: 0x04002176 RID: 8566
public List<Effects> statusEffects = new List<Effects>();
// Token: 0x04002177 RID: 8567
public GridLayoutGroup statusGrid;
// Token: 0x04002178 RID: 8568
private List<Effects> effects;
// Token: 0x04002179 RID: 8569
public Transform statusGridTr;
// Token: 0x0400217A RID: 8570
private List<Image> effectsImages;
// Token: 0x0400217B RID: 8571
private List<string> iconNames;
// Token: 0x0400217C RID: 8572
public GameObject statusEffectsList;
// Token: 0x0400217D RID: 8573
public GameObject statusEffectsListScrollbar;
// Token: 0x0400217E RID: 8574
public Animator statusEffectsAnimator;
// Token: 0x0400217F RID: 8575
public TextMeshProUGUI fullEffectsList;
// Token: 0x04002180 RID: 8576
[Header("MISC")]
public bool open;
// Token: 0x04002181 RID: 8577
private bool fromGameStart;
// Token: 0x04002182 RID: 8578
private StringFast str = new StringFast(64);
// Token: 0x04002183 RID: 8579
private Character startMain;
// Token: 0x04002184 RID: 8580
public GameObject currentModel;
// Token: 0x04002185 RID: 8581
public Body body;
// Token: 0x04002186 RID: 8582
public Character character;
// Token: 0x04002187 RID: 8583
public Character bodyCharacter;
// Token: 0x04002188 RID: 8584
private List<int> diceCountMods;
// Token: 0x04002189 RID: 8585
private List<int> diceSideMods;
// Token: 0x0400218A RID: 8586
private List<string> diceTypeMods;
// Token: 0x0400218B RID: 8587
private List<Character> portraitOrder;
// Token: 0x0400218C RID: 8588
private List<Character> thisPortraitOrder = new List<Character>();
// Token: 0x0400218D RID: 8589
public int multiplier1;
// Token: 0x0400218E RID: 8590
public int multiplier2;
// Token: 0x0400218F RID: 8591
public int multiplier3;
// Token: 0x04002190 RID: 8592
public float bodyTime;
// Token: 0x04002191 RID: 8593
public bool rulesetOpen;
// Token: 0x04002192 RID: 8594
public bool statusEffectsOpen;
// Token: 0x04002193 RID: 8595
public GameObject firstRulesetBtn;
// Token: 0x04002194 RID: 8596
public GameObject firstSkillBtn;
// Token: 0x04002195 RID: 8597
public GameObject closeText;
// Token: 0x04002196 RID: 8598
public GameObject extendedDescription;
// Token: 0x04002197 RID: 8599
public GameObject normalDescription;
// Token: 0x04002198 RID: 8600
public GameObject effectsDescription;
// Token: 0x04002199 RID: 8601
public Button firstEquipButton;
// Token: 0x0400219A RID: 8602
private float openTime;
// Token: 0x0400219B RID: 8603
private ColorBlock cb0;
// Token: 0x0400219C RID: 8604
private ColorBlock cb1;
}