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

9166 lines
271 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using DarkTonic.MasterAudio;
using Pathfinding;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
// Token: 0x02000030 RID: 48
public class Gameplay : MonoBehaviour
{
// Token: 0x0600075B RID: 1883 RVA: 0x0009B387 File Offset: 0x00099587
private void Awake()
{
}
// Token: 0x0600075C RID: 1884 RVA: 0x0009B38C File Offset: 0x0009958C
private void Start()
{
Shader.SetGlobalFloat("_Combat", 0f);
this.playerInput = base.gameObject.GetComponent<PlayerInput>();
this.move = this.playerInput.actions["Move"];
this.action = this.playerInput.actions["Action"];
this.interact = this.playerInput.actions["Interact"];
this.showAllItems = this.playerInput.actions["Show Items"];
this.switchTarget = this.playerInput.actions["Dodge"];
this.aim = this.playerInput.actions["Aim"];
this.dock = this.playerInput.actions["Dock"];
this.cancel = this.playerInput.actions["Cancel"];
this.rightJoyStick = this.playerInput.actions["Target"];
this.quickSave = this.playerInput.actions["Quick Save"];
this.allMenus = this.playerInput.actions["Menus"];
this.switchPartyUp = this.playerInput.actions["Party Up"];
this.switchPartyDown = this.playerInput.actions["Party Down"];
this.partyItemsLeft = this.playerInput.actions["Dock Left"];
this.partyItemsRight = this.playerInput.actions["Dock Right"];
this.menus = this.playerInput.actions["Options"];
this.hudLeft = this.playerInput.actions["HUD Left"];
this.hudRight = this.playerInput.actions["HUD Right"];
this.joystickTarget.SetActive(false);
this.messageDefenseHoldMK.SetActive(false);
this.messageDefenseHoldJoy.SetActive(false);
this.messageDefenseHoldQuickMK.SetActive(false);
this.AllOff();
this.keyCodes = this.keyControl.keys;
this.keyConverted = this.keyControl.keyStrings;
this.openMenus = Records.x.openMenus;
Links.x.gameplay = this;
this.gameHours = 5f;
this.party = Links.x.party;
for (int i = 0; i < 4; i++)
{
GameObject gameObject = Object.Instantiate<GameObject>(this.effectsTilePrefab, new Vector3(10000f, 0f, 0f), Quaternion.identity, base.transform);
gameObject.SetActive(false);
this.effectTileWaypoints.Add(gameObject);
this.effectTileWaypointAnimators.Add(gameObject.transform.GetChild(0).gameObject.GetComponent<Animator>());
}
this.effectTileTooFar = Object.Instantiate<GameObject>(this.effectsTilePrefabTooFar, new Vector3(10000f, 0f, 0f), Quaternion.identity, base.transform);
this.effectTileTooFar.SetActive(false);
this.currentTileEffects = Links.x.cellar.currentTileEffects;
GameObject gameObject2 = new GameObject("World Look At");
this.lookAt = gameObject2.transform;
this.lookAt.SetParent(base.transform, true);
this.selectionCircle.SetActive(false);
this.controllers = Input.GetJoystickNames();
EventSystem.current.SetSelectedGameObject(null);
this.circleBreakObject.SetActive(false);
}
// Token: 0x0600075D RID: 1885 RVA: 0x0009B740 File Offset: 0x00099940
public void SetInteractableSelected(EventSystem eventSystem, GameObject goj)
{
eventSystem.enabled = false;
eventSystem.sendNavigationEvents = false;
eventSystem.SetSelectedGameObject(null);
eventSystem.SetSelectedGameObject(goj);
eventSystem.sendNavigationEvents = true;
eventSystem.enabled = true;
}
// Token: 0x0600075E RID: 1886 RVA: 0x0009B76C File Offset: 0x0009996C
private void Update()
{
this.seconds = this.Seconds();
if (!Records.x.paused)
{
int count = this.levelUpSkills.Count;
}
if (this.screenW != Screen.width || this.screenH != Screen.height)
{
this.screenW = Screen.width;
this.screenH = Screen.height;
Links.x.hudControl.ChangeWindowSize();
}
this.currentEventObject = EventSystem.current.currentSelectedGameObject;
if (this.mk)
{
if (this.uiHover != EventSystem.current.IsPointerOverGameObject())
{
this.uiHover = EventSystem.current.IsPointerOverGameObject();
}
}
else
{
this.uiHover = false;
if (this.firstEventObject && !this.currentEventObject)
{
this.firstEventObject.GetComponent<UITriggerButton>().FirstSelect();
}
}
if (this.prevEventObject != this.currentEventObject)
{
if (this.prevEventObject)
{
UITriggerButton component = this.prevEventObject.GetComponent<UITriggerButton>();
if (component)
{
component.SetSelected(false);
}
}
if (this.currentEventObject && this.currentEventObject.activeSelf)
{
UITriggerButton component2 = this.currentEventObject.GetComponent<UITriggerButton>();
bool flag = true;
if (Records.x.mainMenuOpen)
{
flag = Links.x.mainMenu && (Links.x.mainMenu.newGameButton.gameObject.activeSelf || component2.GetButton() == Links.x.mainMenu.newGameButton);
}
if (Records.x.dialogue && !Links.x.dialogue.responsesOn && this.currentEventObject.name.Contains("Response Button"))
{
flag = false;
}
if (Links.x.keyboardScript.gameObject.activeSelf)
{
flag = Links.x.keyboardScript.IsKey(this.currentEventObject);
}
if (component2 && flag)
{
component2.SetSelected(true);
}
}
}
this.prevEventObject = this.currentEventObject;
if (this.mk)
{
this.closeTheGap = true;
}
else
{
this.closeTheGap = false;
}
this.currentControllerCount = Input.GetJoystickNames().Length;
if (Links.x.gaia.sceneLoaded)
{
if (this.currentControllerCount > 0 && this.prevControllerCount == 0)
{
if (Records.x.usingController)
{
if (!this.joy)
{
Links.x.gameFeed.ShowNotice("Controller detected");
Debug.Log("Controller detected");
this.joy = true;
this.mk = false;
Links.x.joy = true;
Links.x.mk = false;
this.SetControlsText(false);
Links.x.hudControl.SwitchController(true);
Links.x.partyColliderAdventure.itemCollector.UpdateSize();
if (Records.x.mainMenuOpen)
{
GameObject gameObject = GameObject.Find("Main Menu");
EventSystem.current.SetSelectedGameObject(gameObject.GetComponent<MainMenu>().newGameButton.gameObject);
gameObject.GetComponent<MainMenu>().newGameButton.gameObject.GetComponent<UITriggerButton>().SetSelected(true);
}
}
}
else if (Records.x.mainMenuOpen)
{
GameObject gameObject2 = GameObject.Find("Main Menu");
if (gameObject2)
{
if (!this.joy)
{
Links.x.gameFeed.ShowNotice("Controller detected");
Links.x.joy = true;
this.joy = true;
Links.x.mk = false;
this.mk = false;
this.SetControlsText(false);
Links.x.partyColliderAdventure.itemCollector.UpdateSize();
Links.x.options.UseController();
Links.x.hudControl.SwitchController(true);
Records.x.usingController = true;
EventSystem.current.SetSelectedGameObject(gameObject2.GetComponent<MainMenu>().newGameButton.gameObject);
gameObject2.GetComponent<MainMenu>().newGameButton.gameObject.GetComponent<UITriggerButton>().SetSelected(true);
}
}
else
{
Links.x.gameFeed.ShowNotice("Open settings menu to activate controller scheme");
}
}
else
{
Links.x.partyColliderAdventure.itemCollector.UpdateSize();
Links.x.gameFeed.ShowNotice("Open settings menu to activate controller scheme");
}
}
if (this.currentControllerCount == 0 && this.prevControllerCount > 0)
{
Links.x.gameFeed.ShowNotice("Controller removed");
this.currentSpriteSheetAsset = 0;
this.SetControlsText(false);
Links.x.hudControl.SwitchController(false);
}
}
this.prevControllerCount = this.currentControllerCount;
this.triggerCancel = this.cancel.ReadValue<float>();
this.triggerAction = this.action.ReadValue<float>();
this.triggerInteract = this.interact.ReadValue<float>();
this.triggerItems = this.showAllItems.ReadValue<float>();
this.triggerDodge = this.switchTarget.ReadValue<float>();
this.triggerAim = this.aim.ReadValue<float>();
this.triggerDock = this.dock.ReadValue<float>();
this.triggerQuickSave = this.quickSave.ReadValue<float>();
this.rightJoystick = this.rightJoyStick.ReadValue<Vector2>();
this.triggerAllMenus = this.allMenus.ReadValue<float>();
this.triggerParty1 = this.switchPartyUp.ReadValue<float>();
this.triggerParty2 = this.switchPartyDown.ReadValue<float>();
this.triggerPartyItems3 = this.partyItemsLeft.ReadValue<float>();
this.triggerPartyItems4 = this.partyItemsRight.ReadValue<float>();
this.triggerMenus = this.menus.ReadValue<float>();
this.triggerHudLeft = this.hudLeft.ReadValue<float>();
this.triggerHudRight = this.hudRight.ReadValue<float>();
if (this.triggerAction > 0f && this.prevTriggerAction == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.actionStart = true;
}
else
{
this.actionStart = false;
}
if (this.triggerAction > 0f && this.prevTriggerAction == 0f)
{
this.actionDown = true;
}
if (this.triggerAction == 0f && this.prevTriggerAction > 0f)
{
this.actionUp = true;
this.waitingForActionUp = false;
}
if (this.triggerAction == 0f && this.prevTriggerAction == 0f)
{
this.actionDown = false;
this.actionUp = false;
}
if (this.triggerInteract > 0f && this.prevTriggerInteract == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.interactStart = true;
}
else
{
this.interactStart = false;
}
if (this.triggerItems > 0f && this.prevTriggerItems == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.itemsStart = true;
this.itemsDown = true;
this.itemsUp = false;
}
if (this.prevTriggerItems > 0f && this.triggerItems == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.itemsDown = false;
this.itemsUp = true;
}
if (this.triggerItems == 0f && this.prevTriggerItems == 0f)
{
this.itemsDown = false;
this.itemsUp = false;
}
if (this.triggerItems > 0f && this.prevTriggerItems > 0f)
{
this.itemsStart = false;
}
if (this.triggerDodge > 0f && this.prevTriggerDodge == 0f)
{
this.StoneSound();
this.targetDodgeStart = true;
this.targetDodgeHold = true;
this.targetDodgeUp = false;
}
if (this.triggerDodge > 0f && this.prevTriggerDodge > 0f)
{
this.targetDodgeStart = false;
}
if (this.prevTriggerDodge > 0f && this.triggerDodge == 0f)
{
this.targetDodgeHold = false;
this.targetDodgeUp = true;
this.targetDodgeStart = false;
}
if (this.triggerDodge == 0f && this.prevTriggerDodge == 0f)
{
this.targetDodgeUp = false;
this.targetDodgeStart = false;
}
if (this.triggerAim > 0f && this.prevTriggerAim == 0f)
{
this.StoneSoundQuieter();
this.aimStart = true;
this.aimUp = false;
this.aimHold = true;
}
if (this.triggerAim > 0f && this.prevTriggerAim > 0f)
{
this.aimStart = false;
}
if (this.prevTriggerAim > 0f && this.triggerAim == 0f)
{
this.aimUp = true;
this.aimStart = false;
this.aimHold = false;
}
if (this.triggerAim == 0f && this.prevTriggerAim == 0f)
{
this.aimUp = false;
this.aimStart = false;
this.aimHold = false;
}
if (this.triggerDock > 0f && this.prevTriggerDock == 0f)
{
this.dockStart = true;
this.dockDown = true;
this.dockUp = false;
}
if (this.triggerDock > 0f && this.prevTriggerDock > 0f)
{
this.dockStart = false;
}
if (this.prevTriggerDock > 0f && this.triggerDock == 0f)
{
this.dockDown = false;
this.dockUp = true;
this.dockStart = false;
}
if (this.triggerDock == 0f && this.prevTriggerDock == 0f)
{
this.dockDown = false;
this.dockUp = false;
this.dockStart = false;
}
if (this.triggerCancel > 0f && this.prevTriggerCancel == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.cancelStart = true;
}
else
{
this.cancelStart = false;
}
if (this.triggerQuickSave > 0f && this.prevTriggerQuickSave == 0f)
{
this.quickSaveStart = true;
}
else
{
this.quickSaveStart = false;
}
if (this.triggerHudLeft > 0f && this.prevTriggerHudLeft == 0f)
{
this.hudLeftStart = true;
}
else
{
this.hudLeftStart = false;
}
if (this.triggerHudRight > 0f && this.prevTriggerHudRight == 0f)
{
this.hudRightStart = true;
}
else
{
this.hudRightStart = false;
}
if (this.triggerAllMenus > 0f && this.prevTriggerAllMenus == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.allMenusStart = true;
this.allMenusDown = true;
this.allMenusUp = false;
}
else
{
this.allMenusStart = false;
this.allMenusDown = true;
}
if (this.prevTriggerAllMenus > 0f && this.triggerAllMenus == 0f)
{
if (!Records.x.inMenus)
{
this.StoneSoundQuieter();
}
this.allMenusDown = false;
this.allMenusDown = false;
this.allMenusUp = true;
}
if (this.triggerAllMenus == 0f && this.prevTriggerAllMenus == 0f)
{
this.allMenusDown = false;
this.allMenusUp = false;
}
if (this.triggerItems == 0f && !Records.x.inMenus)
{
if (this.triggerParty1 > 0f && this.prevTriggerParty1 == 0f)
{
this.StoneSoundQuieter();
this.party1Down = true;
}
else
{
this.party1Down = false;
}
if (this.triggerParty2 > 0f && this.prevTriggerParty2 == 0f)
{
this.StoneSoundQuieter();
this.party2Down = true;
}
else
{
this.party2Down = false;
}
if (this.triggerPartyItems3 > 0f && this.prevTriggerPartyItems3 == 0f)
{
this.StoneSoundQuieter();
this.partyItems3Down = true;
}
else
{
this.partyItems3Down = false;
}
if (this.triggerPartyItems4 > 0f && this.prevTriggerPartyItems4 == 0f)
{
this.StoneSoundQuieter();
this.partyItems4Down = true;
}
else
{
this.partyItems4Down = false;
}
}
if (this.triggerMenus > 0f && this.prevTriggerMenus == 0f)
{
this.StoneSound();
this.menusDown = true;
}
else
{
this.menusDown = false;
}
if (Links.x.gaia.boro && Links.x.main)
{
if (!this.sailing)
{
if (Records.x.partySailing)
{
Links.x.gaia.SetEnvironmentPlaylist(true, false, false);
this.sailing = true;
}
else if (Physics.Raycast(Links.x.main.tr.position + new Vector3(0f, 10f, 0f), Vector3.up * -1f, 20f, 16384))
{
Links.x.gaia.SetEnvironmentPlaylist(true, false, false);
this.sailing = true;
}
}
else if (!Records.x.partySailing)
{
RaycastHit raycastHit;
Physics.Raycast(Links.x.main.tr.position + new Vector3(0f, 10f, 0f), Vector3.up * -1f, out raycastHit, 20f, 16384);
if (!raycastHit.collider)
{
Links.x.gaia.SetEnvironmentPlaylist(false, Links.x.main.inTown, false);
this.sailing = false;
}
}
}
if (!Records.x.saving && Links.x.joy && Input.GetKeyDown(KeyCode.Escape) && Links.x.gaia.sceneLoaded && !Links.x.combat.inPocketAttack && !Links.x.rallyStage.playing && !Links.x.qte.playing && !Links.x.questEnd.on)
{
Links.x.options.mk.isOn = true;
Links.x.options.UseMK();
this.joy = false;
Links.x.joy = false;
this.mk = true;
Links.x.mk = true;
this.SetControlsText(false);
Links.x.partyColliderAdventure.itemCollector.UpdateSize();
Records.x.usingController = false;
}
if (!Records.x.saving && this.mk && Input.GetKeyDown(KeyCode.Escape) && (!Records.x.typing || (Records.x.typing && Links.x.creation)) && !Records.x.miniGame && !Links.x.combat.inPocketAttack && !Links.x.questEnd.on && !Records.x.dialogue)
{
if (this.openMenus.Count == 0)
{
if (Records.x.dialogue)
{
if (!Records.x.editor && Records.x.secrets)
{
}
}
else if (Links.x.options.contents1.activeSelf)
{
Links.x.options.StartEndMenu(true);
}
else
{
this.OpenDock();
if (Records.x.mainMenuOpen)
{
Links.x.options.OpenMenu();
}
else
{
Links.x.saveLoad.OpenMenu();
}
}
}
else
{
this.openingAnotherMenu = false;
if (Links.x.spellcrafting.open)
{
if (!Links.x.spellcrafting.confirming)
{
Links.x.spellcrafting.StartEndMenu(false);
}
}
else if (Links.x.options.contents1.activeSelf)
{
this.CloseAllMenus();
this.CloseDock();
}
else
{
this.CloseAllMenus();
this.CloseDock();
}
}
}
this.quickReposition = false;
this.quickGroup = false;
this.quickCommandAttack = false;
if ((!Links.x.pathfind || this.makeCircleMode || Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands"))) && this.mk && !this.spellcasting && !Records.x.miniGame && !Links.x.pocketWheel.rallyWheelOpen && !Records.x.partySailing)
{
if (!this.messageDefenseHoldQuickMK.activeSelf && Links.x.gaia.sceneLoaded && !Records.x.inMenus && !Records.x.removeControls && !Records.x.typing && Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands")))
{
this.messageDefenseHoldQuickMK.SetActive(true);
this.messageDefenseHoldQuickAnimMK.Play("ControlsSlideMK");
}
if (Input.GetMouseButtonDown(0))
{
this.groupMouseTime = Time.timeSinceLevelLoad;
}
if (Time.timeSinceLevelLoad > this.groupMouseTime + 0.25f && (Input.GetMouseButton(0) || Input.GetMouseButtonUp(0)))
{
this.quickGroup = true;
}
if (Input.GetMouseButton(0) || Input.GetMouseButtonUp(0))
{
this.quickGroup = true;
}
if (!this.quickGroup && this.attackDirection.activeSelf)
{
this.attackDirection.SetActive(false);
}
}
if (Input.GetKeyUp(Links.x.gameplay.keyControl.GetHotkey("Commands")))
{
if (this.attackDirection.activeSelf)
{
this.attackDirection.SetActive(false);
}
if (this.messageDefenseHoldQuickMK.activeSelf)
{
this.messageDefenseHoldQuickAnimMK.Play("ControlsSlideOutMK");
}
}
if (!Records.x.saving && !Records.x.mainMenuOpen)
{
if (this.joy && Mathf.Abs(this.rightJoystick.x) > 0.5f && Links.x.hudControl.gameFeedPopout.activeSelf && Links.x.hudControl.scrollbar)
{
Links.x.hudControl.scrollbar.value += this.rightJoystick.x * 0.1f;
}
if (Records.x.pocketPause)
{
Links.x.domeTr.Rotate(new Vector3(0f, 10f * Time.deltaTime, 3f * Time.deltaTime));
}
bool flag2 = false;
bool flag3 = false;
bool flag4 = false;
bool flag5 = false;
bool flag6 = false;
SelectionCircle selectionCircle = null;
this.mouseNode = null;
this.hitWater = false;
this.hitBeach = false;
bool flag7 = false;
if (this.mk)
{
if (Input.GetMouseButton(0) || Input.GetMouseButtonDown(0))
{
if (Links.x.hasMain)
{
if (Links.x.main.physicsMove)
{
flag7 = true;
}
}
else
{
flag7 = false;
}
}
if (Input.GetMouseButtonDown(0))
{
this.startMouseDownTime = Time.timeSinceLevelLoad;
}
if ((Input.GetMouseButtonDown(0) || Input.GetMouseButton(0)) && this.startMouseDownTime > 0f && (Time.timeSinceLevelLoad >= this.startMouseDownTime + 0.25f || Records.x.pocketPause))
{
this.holdingMouseButton = true;
this.startMouseDownTime = 0f;
}
if (Input.GetMouseButtonUp(0))
{
if (Links.x.hasMain && Time.timeSinceLevelLoad < this.startMouseDownTime + 0.25f && Links.x.main.moving)
{
Links.x.main.SetWaypoint(Vector3.zero);
}
this.startMouseDownTime = 0f;
this.holdingMouseButton = false;
}
}
if (Records.x.shouting && Input.GetMouseButtonDown(1))
{
if (this.tp1.open)
{
this.tp1.EndMenu();
}
if (this.tp2.open)
{
this.tp2.EndMenu();
}
if (this.tp3.open)
{
this.tp3.EndMenu();
}
if (this.tp4.open)
{
this.tp4.EndMenu();
}
}
if (this.mk)
{
if (!this.uiHover && !Records.x.inMenus && !Records.x.miniGame && !Records.x.removeControls && !Links.x.pocketWheel.rallyWheelOpen)
{
if (Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Party 1")))
{
Character hotKeyCharacter = Links.x.GetHotKeyCharacter(0);
if (hotKeyCharacter && !hotKeyCharacter.dead)
{
Links.x.fellowship.SingleSelected(hotKeyCharacter);
hotKeyCharacter.AddToSelected(false, true);
hotKeyCharacter.SetAsLeader();
Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true);
}
}
if (Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Party 2")))
{
Character hotKeyCharacter2 = Links.x.GetHotKeyCharacter(1);
if (hotKeyCharacter2 && !hotKeyCharacter2.dead)
{
Links.x.fellowship.SingleSelected(hotKeyCharacter2);
hotKeyCharacter2.AddToSelected(false, true);
hotKeyCharacter2.SetAsLeader();
Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true);
}
}
if (Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Party 3")))
{
Character hotKeyCharacter3 = Links.x.GetHotKeyCharacter(2);
if (hotKeyCharacter3 && !hotKeyCharacter3.dead)
{
Links.x.fellowship.SingleSelected(hotKeyCharacter3);
hotKeyCharacter3.AddToSelected(false, true);
hotKeyCharacter3.SetAsLeader();
Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true);
}
}
if (Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Party 4")))
{
Character hotKeyCharacter4 = Links.x.GetHotKeyCharacter(3);
if (hotKeyCharacter4 && !hotKeyCharacter4.dead)
{
Links.x.fellowship.SingleSelected(hotKeyCharacter4);
hotKeyCharacter4.AddToSelected(false, true);
hotKeyCharacter4.SetAsLeader();
Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true);
}
}
float axisRaw = Input.GetAxisRaw(Links.x.rtsCamera.cameraControls.ZoomInputAxis);
if (Mathf.Abs(axisRaw) > 0f && (Time.timeSinceLevelLoad > this.portraitChangeTime || this.portraitChangeTime == 0f))
{
bool flag8 = false;
if (Links.x.main && Links.x.main.timelineIcon && Links.x.main.timelineIcon.overridePause)
{
flag8 = true;
}
if (!flag8)
{
this.portraitChangeTime = Time.timeSinceLevelLoad + 0.05f;
Links.x.hudControl.ArrangePortraits();
Character character;
if (axisRaw > 0f)
{
character = Links.x.hudControl.upCharacter;
}
else
{
character = Links.x.hudControl.downCharacter;
}
if (character)
{
Links.x.fellowship.SingleSelected(character);
character.AddToSelected(false, true);
character.SetAsLeader();
Links.x.rtsCamera.Follow(Links.x.main.tr, Links.x.main, true);
}
}
}
}
this.ray = Links.x.worldCamera.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0f));
RaycastHit raycastHit2;
if (Physics.Raycast(this.ray, out raycastHit2, 500f, -2146957312) && !this.spellTargetingGround)
{
if (raycastHit2.collider.gameObject.layer == 11)
{
flag6 = false;
}
else
{
flag6 = true;
this.mousePoint = raycastHit2.point;
selectionCircle = raycastHit2.collider.gameObject.GetComponent<SelectionCircle>();
if (selectionCircle)
{
if (selectionCircle.character)
{
this.mouseNode = selectionCircle.character.node;
}
else if (selectionCircle.boat)
{
this.mouseNode = Links.x.fellowship.NearNode(selectionCircle.boat.tr.position, false, true, false, 0, -1);
}
}
Links.x.fellowship.mouseNode = this.mouseNode;
}
}
if (!flag6 && Physics.Raycast(this.ray, out raycastHit2, 500f, 4194449))
{
if (raycastHit2.collider.gameObject.layer == 4)
{
if (Physics.Raycast(this.ray, 500f, 128))
{
flag4 = true;
}
else
{
flag3 = true;
}
}
if (raycastHit2.collider.gameObject.layer == 7 || flag4)
{
flag4 = true;
}
else
{
flag2 = true;
}
this.mousePoint = raycastHit2.point;
bool flag9 = false;
if (this.spellTargetingGround && this.currentAbility != null && this.currentAbility.Contains("Moss"))
{
flag9 = true;
}
this.mouseNode = Links.x.fellowship.NearNode(this.mousePoint, false, flag3, flag9, 0, -1);
Links.x.fellowship.mouseNode = this.mouseNode;
if (flag3 && !Records.x.partySailing && Records.x.BoroInParty() && Links.x.gaia.partyBoat)
{
bool flag10 = false;
if (Links.x.gaia.boat.CanSail(out flag10) && flag10)
{
this.hitWater = true;
}
}
}
if (Links.x.fogOfWar && Links.x.main && this.mk)
{
Vector3 point = this.mousePoint;
RaycastHit raycastHit3;
if (Physics.Raycast(this.ray, out raycastHit3, 500f, -2143215471))
{
point = raycastHit3.point;
}
if (Links.x.rtsCamera.currentBoundsName == "")
{
if (!Links.x.fogOfWar.IsVisible(point))
{
this.mouseVisible = false;
}
else
{
this.mouseVisible = true;
}
if (!Links.x.fogOfWar.IsVisibleWorm(point))
{
this.mouseWormVisible = false;
}
else
{
this.mouseWormVisible = true;
}
if (Input.GetKey(KeyCode.Alpha7) && Records.x.editor)
{
Debug.Log(this.mouseVisible.ToString() + " " + this.mouseWormVisible.ToString());
}
}
else
{
if (!Links.x.fogOfWarInterior.IsVisible(point))
{
this.mouseVisible = false;
}
else
{
this.mouseVisible = true;
}
if (!Links.x.fogOfWarInterior.IsVisibleWorm(point))
{
this.mouseWormVisible = false;
}
else
{
this.mouseWormVisible = true;
}
}
}
}
if (this.selectionCircle.activeSelf)
{
this.selectionCircle.transform.position = Links.x.main.tr.position;
}
this.playerInAction = false;
this.attackingCharacter = Links.x.main;
if (Records.x.pocketPause)
{
Character character2 = Links.x.main;
bool flag11 = false;
if (Links.x.combat.inPocketAttack && Links.x.pocketWheel.selectedRallyCharacter)
{
character2 = Links.x.pocketWheel.selectedRallyCharacter;
this.attackingCharacter = character2;
flag11 = true;
}
if (!flag11 && (character2.inAction || character2.inRecovery || character2.IsAttacking(character2.body.currentHash)) && character2.timelineIcon && character2.timelineIcon.overridePause)
{
this.playerInAction = true;
}
this.startPocketPause = false;
}
this.descWindowOpen = false;
if (Links.x.hudControl.descriptionWindowOpen)
{
this.pointer = new PointerEventData(EventSystem.current);
this.pointer.position = Input.mousePosition;
this.raycastResults.Clear();
EventSystem.current.RaycastAll(this.pointer, this.raycastResults);
bool flag12 = false;
if (this.mk && this.raycastResults.Count > 0)
{
foreach (RaycastResult raycastResult in this.raycastResults)
{
string name = raycastResult.gameObject.name;
if (name.Contains(" Btn") || name.Contains("Light Attack") || name.Contains("Special Attack") || name.Contains("Rally Attack") || name.Contains("Rare Ammo") || name.Contains("Heavy Attack") || name.Contains("Medium Attack") || name.Contains("Spellbag") || name.Contains("Songbook") || Links.x.pocketWheel.Charming() || name.Contains("Item 1") || name.Contains("Item 2") || name.Contains("Item 3") || name.Contains("Sneak") || name.Contains("Shout"))
{
flag12 = true;
}
}
}
if (this.joy)
{
this.descWindowOpen = true;
}
if ((!flag12 && this.mk) || (this.joy && this.cancelStart))
{
Links.x.hudControl.CloseDescWindow();
}
}
if (Links.x.hudControl.tutorialTipOpen)
{
if (Links.x.mk && Input.GetMouseButtonUp(1))
{
Links.x.hudControl.CloseTutorialTooltip();
}
return;
}
if (!Records.x.inspecting && Links.x.hasMain)
{
SceneCamera sceneCamera = null;
if (Links.x.main.tr)
{
RaycastHit raycastHit2;
if (Physics.Raycast(Links.x.main.tr.position + new Vector3(0f, 50f, 0f), Vector3.up * -1f, out raycastHit2, 200f, 134217728))
{
RaycastHit raycastHit4;
if (raycastHit2.collider.gameObject.name.Contains("Camera Collider"))
{
sceneCamera = raycastHit2.collider.gameObject.transform.parent.gameObject.GetComponent<SceneCamera>();
}
else if (Physics.Raycast(raycastHit2.point - new Vector3(0f, 1f, 0f), Vector3.up * -1f, out raycastHit4, 100f, 134217728) && raycastHit4.collider.gameObject.name.Contains("Camera Collider"))
{
sceneCamera = raycastHit4.collider.gameObject.transform.parent.gameObject.GetComponent<SceneCamera>();
}
}
if (sceneCamera && !Records.x.inspectCamera && !sceneCamera.gameObject.name.Contains("Frog") && Links.x.gaia.sceneLoaded && Links.x.gaia.pathfindingReady)
{
Links.x.inspectTextAnimator.gameObject.SetActive(true);
Links.x.inspectTextAnimator.Play("InspectOn");
}
if (!sceneCamera && Records.x.inspectCamera && !Records.x.inspectCamera.gameObject.name.Contains("Frog") && Links.x.gaia.sceneLoaded && Links.x.gaia.pathfindingReady)
{
Links.x.inspectTextAnimator.Play("InspectOff");
}
if (!sceneCamera && Links.x.inspectTextAnimator.gameObject.activeSelf)
{
Links.x.inspectTextAnimator.Play("InspectOff");
}
if (sceneCamera && sceneCamera.gameObject.name.Contains("Frog"))
{
Records.x.inspectCamera = sceneCamera;
if (Links.x.main.desiredGraph == 0)
{
Records.x.previousView = Links.x.diorama.GetOutdoorView();
}
else
{
Records.x.previousView = Links.x.diorama.GetIndoorView();
}
Links.x.diorama.ToggleSceneCameras(Records.x.inspectCamera.isInterior, Records.x.inspectCamera.id);
Links.x.rtsCamera.CopyPerspectiveCamera(Links.x.diorama.activeView.sceneCamera, null, null);
Links.x.cameraEffects.ToggleInteriorExterior(Links.x.main);
Records.x.inspecting = true;
}
Records.x.inspectCamera = sceneCamera;
}
}
else if (Records.x.inspectCamera && Records.x.inspectCamera != Links.x.diorama.activeView && !Links.x.worldCamera.orthographic && !Links.x.cameraEffects.transitioning)
{
if (Links.x.main.desiredGraph == 0)
{
Records.x.previousView = Links.x.diorama.GetOutdoorView();
}
else
{
Records.x.previousView = Links.x.diorama.GetIndoorView();
}
Links.x.diorama.ToggleSceneCameras(Records.x.inspectCamera.isInterior, Records.x.inspectCamera.id);
Links.x.rtsCamera.CopyPerspectiveCamera(Records.x.inspectCamera.sceneCamera, null, null);
Links.x.cameraEffects.ToggleInteriorExterior(Links.x.main);
Records.x.inspecting = true;
}
if (Records.x.editor && Input.GetKey(KeyCode.K))
{
string[] array = new string[31];
array[0] = this.uiHover.ToString();
array[1] = " ";
int num = 2;
Camera worldCamera = Links.x.worldCamera;
array[num] = ((worldCamera != null) ? worldCamera.ToString() : null);
array[3] = " ";
array[4] = Links.x.gaia.sceneLoaded.ToString();
array[5] = " ";
array[6] = this.clickStartOnUIHover.ToString();
array[7] = " ";
array[8] = Links.x.gaia.pathfindingReady.ToString();
array[9] = " ";
array[10] = Records.x.paused.ToString();
array[11] = " ";
array[12] = Records.x.dialogue.ToString();
array[13] = " ";
array[14] = Records.x.inOverworldMap.ToString();
array[15] = " ";
array[16] = this.playerInAction.ToString();
array[17] = " ";
array[18] = Records.x.inMenus.ToString();
array[19] = " ";
array[20] = this.hudLeftOpen.ToString();
array[21] = " ";
array[22] = this.hudRightOpen.ToString();
array[23] = " ";
array[24] = this.descWindowOpen.ToString();
array[25] = " ";
array[26] = flag7.ToString();
array[27] = " ";
array[28] = this.CanClick().ToString();
array[29] = " ";
array[30] = this.CanInteractWithWorld("Character").ToString();
Debug.Log(string.Concat(array));
}
if (!this.uiHover && Links.x.worldCamera && Links.x.gaia.sceneLoaded && Links.x.gaia.pathfindingReady && !Records.x.paused && !Records.x.dialogue && !Records.x.inOverworldMap && !this.playerInAction && !Records.x.inMenus && !this.hudLeftOpen && !this.hudRightOpen && !this.descWindowOpen && !flag7)
{
bool flag13 = false;
Vector2 vector = new Vector2(Input.mousePosition.x / (float)Screen.width, Input.mousePosition.y / (float)Screen.height);
float num2 = 0.02f;
if (Input.GetMouseButtonDown(0))
{
this.clickCount++;
if (this.clickCount == 2)
{
if (Time.realtimeSinceStartup < this.clickTime + 0.3f && Vector2.Distance(vector, this.prevClickPosition) < num2)
{
this.doubleClick = true;
this.clickTime = Time.realtimeSinceStartup;
}
else
{
this.clickCount = 0;
this.doubleClick = false;
}
}
else if (this.clickCount == 1)
{
this.clickTime = Time.realtimeSinceStartup;
this.prevClickPosition = vector;
}
}
if ((this.clickCount > 0 || this.doubleClick) && (Time.realtimeSinceStartup >= this.clickTime + 0.3f || Vector2.Distance(vector, this.prevClickPosition) >= num2))
{
this.doubleClick = false;
this.clickCount = 0;
}
if (Input.GetMouseButtonDown(0))
{
this.clickUpTime = Time.realtimeSinceStartup + 0.4f;
}
this.hitItem = false;
this.hitFloor = false;
this.hitCharacter = false;
this.hitExit = false;
this.hitInteractable = false;
this.hitBoat = false;
this.hitGameCardHover = false;
bool flag14 = false;
if (this.mk && this.makeCircleMode && Input.GetMouseButtonDown(1) && !this.uiHover)
{
this.EndCircleMode();
return;
}
if (this.joy && this.makeCircleMode && this.cancelStart && !this.uiHover)
{
this.EndCircleMode();
return;
}
if (this.mk && Records.x.movingWindows && (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1)) && !this.uiHover)
{
Records.x.movingWindows = false;
Links.x.hudControl.ToggleWindowVisual(false);
Links.x.hudControl.ToggleWindowInteractables(true);
this.clickedDownWindows = true;
return;
}
if (this.clickedDownWindows)
{
if (!Input.GetMouseButton(0) && !Input.GetMouseButton(1))
{
this.clickedDownWindows = false;
return;
}
return;
}
else
{
if (false && (Links.x.gameFeed.noticeTextShowing || Links.x.hudControl.descriptionWindowOpen))
{
this.TurnOffHoverTiles();
if (Links.x.hudControl.descriptionWindowOpen && !this.uiHover)
{
if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1))
{
Links.x.hudControl.CloseDescWindow();
}
if (this.joy && (this.cancelStart || this.actionStart))
{
Links.x.hudControl.CloseDescWindow();
}
}
}
else
{
if ((this.mk && Input.GetMouseButtonDown(0)) || (this.joy && this.actionDown))
{
Shader.SetGlobalFloat("_MouseDown", 1f);
this.clickStartOnUIHover = false;
this.mouseDown = Time.realtimeSinceStartup;
this.mouseDownPosition = new Vector3(Input.mousePosition.x / (float)Screen.width, Input.mousePosition.y / (float)Screen.height, 0f);
}
else if ((Input.GetMouseButtonUp(0) && this.mk) || (this.joy && this.actionUp))
{
Shader.SetGlobalFloat("_MouseDown", 0f);
this.mouseDown = 0f;
}
GraphNode graphNode = null;
bool flag15 = false;
if (Links.x.diorama)
{
this.dioramaCharacters = Links.x.diorama.characters;
}
if (Records.x.pocketPause && this.joy && !this.spellTargetingGround && !this.makeCircleMode)
{
if (Links.x.pocketWheel.selected == "Command Attack" || Links.x.pocketWheel.selected == "Light Attack" || (Links.x.pocketWheel.selected == "Special Attack 1" && Links.x.pocketWheel.canTarget) || Links.x.pocketWheel.selected == "Medium Attack" || Links.x.pocketWheel.selected == "Heavy Attack" || Links.x.pocketWheel.Charming() || (Links.x.pocketWheel.selected == "Spellbag" && (this.spellTargetingParty || this.spellTargetingEnemy)))
{
if (Links.x.fellowship.move.magnitude > 0.1f)
{
this.GetControllerTarget(false);
}
}
else
{
this.GetControllerTarget(false);
}
}
if (((Links.x.mk && flag6) || (this.joy && Links.x.partyColliderAdventure.closestBoat)) && this.CanInteractWithWorld("Character") && (selectionCircle || (this.joy && Links.x.partyColliderAdventure.closestBoat && Links.x.partyColliderAdventure.InRangeToHover(Links.x.partyColliderAdventure.closestBoat))))
{
bool flag16 = false;
if (selectionCircle && selectionCircle.character)
{
flag16 = true;
}
if (flag16)
{
graphNode = selectionCircle.character.node;
flag15 = false;
this.gameCardCharacter = selectionCircle.character;
this.hitGameCardHover = true;
}
else if (Records.x.BoroInParty())
{
if (this.mk)
{
this.boat = selectionCircle.boat;
}
else
{
this.boat = Links.x.partyColliderAdventure.closestBoat;
}
bool flag17 = Links.x.hudControl.BoatIsNear(this.boat);
if (Links.x.mk)
{
flag17 = true;
}
if (flag17)
{
if (this.boat != this.prevBoat && this.prevBoat)
{
this.prevBoat.HoverOut();
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBoat(false, this.prevBoat);
}
}
if (this.boat != this.prevBoat && this.boat)
{
this.boat.HoverIn();
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBoat(true, this.boat);
}
}
this.prevBoat = this.boat;
this.hitBoat = true;
}
}
}
if (this.hitBoat && (this.joy || this.mouseVisible) && ((this.mk && Input.GetMouseButtonUp(0)) || (this.joy && this.interactStart && Links.x.partyColliderAdventure.InRange(Links.x.partyColliderAdventure.closestBoat))) && this.CanClick() && Links.x.hasMain)
{
this.clickedCharacter = null;
Links.x.gameplay.StoneSoundQuieter();
if (this.boat.NearNode(this.boat.tr.position, false, 0, -1) != null)
{
Character main = Links.x.main;
if (Records.x.partySailing)
{
Character boro = Links.x.gaia.boro;
}
this.BoatFollowFinished(this.boat);
}
}
if (!this.hitBoat && this.prevBoat)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBoat(false, this.prevBoat);
}
this.prevBoat.HoverOut();
this.prevBoat = null;
this.boat = null;
}
bool flag18 = false;
RaycastHit raycastHit2;
if ((this.joy || (!this.joy && !this.hitCharacter && !this.hitItem && !this.hitBoat && !this.hitInteractable && this.mouseWormVisible && !Records.x.pocketPause)) && !this.clickedUpCharacter && !Links.x.fellowship.drawingSquare && !this.spellTargetingGround && !this.spellTargetingParty && !this.spellTargetingEnemy && this.CanInteractWithWorld("Exit") && (Physics.Raycast(this.ray, out raycastHit2, 500f, 8192) || (this.joy && Links.x.partyColliderAdventure.closestMapExit)))
{
if (this.mk)
{
this.mousePoint = raycastHit2.point;
this.exit = raycastHit2.collider.gameObject.GetComponent<MapExitActions>();
if (!this.exit)
{
MapExitIcon component3 = raycastHit2.collider.gameObject.GetComponent<MapExitIcon>();
if (component3)
{
this.exit = component3.mapExit;
if (!this.exit && component3.beach)
{
flag18 = true;
}
}
}
}
else if (Links.x.partyColliderAdventure.InRangeToHover(Links.x.partyColliderAdventure.closestMapExit))
{
this.exit = Links.x.partyColliderAdventure.closestMapExit;
}
if (this.exit)
{
GraphNode graphNode2 = Links.x.main.NearNode(this.exit.mapExit.doorPoint, false, 0, -1, 0);
if (graphNode2.GraphIndex == 1U && Links.x.diorama.GetIndoorView().GetInteriorBoundsName((Vector3)graphNode2.position) != Links.x.main.indoorID)
{
this.exit = null;
}
}
bool flag19 = Links.x.hudControl.ExitIsNear(this.exit);
if (Links.x.mk)
{
flag19 = this.mouseWormVisible;
}
if (flag18)
{
flag19 = true;
}
if (flag19)
{
if (this.exit)
{
if (this.exit.mapExit)
{
if (this.exit.mapExit.waterExit && this.exit != this.prevExit)
{
this.exit.SetDoorPoint(this.mousePoint);
}
if (this.exit != this.prevExit && this.prevExit)
{
this.prevExit.Hover(false);
this.prevExit.Hover(false);
if (this.prevExit.doorActions)
{
this.mapDoor = null;
this.prevMapDoor = null;
}
}
if (this.exit != this.prevExit)
{
if (this.exit.doorActions)
{
this.mapDoor = this.exit.doorActions;
this.prevMapDoor = this.exit.doorActions;
}
this.exit.Hover(true);
Links.x.hudControl.HighlightExit(true, this.exit);
}
else if (this.exit.doorActions && this.exit.doorActions.currentHealth == Links.x.itemCard.savedHealth)
{
bool locked = this.exit.doorActions.door.locked;
bool savedLockState = Links.x.itemCard.savedLockState;
}
this.prevExit = this.exit;
this.hitExit = true;
}
else
{
MapExitActions mapExitActions = this.exit;
Debug.Log(((mapExitActions != null) ? mapExitActions.ToString() : null) + " missing map exit reference");
}
}
else if (!flag18)
{
this.hitExit = false;
}
else
{
this.hitExit = true;
}
}
else
{
this.exit = null;
}
}
if (this.hitExit)
{
if (Input.GetKey(KeyCode.T) && Records.x.editor)
{
Debug.Log(this.interactStart.ToString() + " " + this.CanClick().ToString());
}
if ((this.joy && this.interactStart && Links.x.partyColliderAdventure.InRange(Links.x.partyColliderAdventure.closestMapExit)) || (this.mk && Input.GetMouseButtonDown(0) && this.CanClick() && Links.x.hasMain && !Records.x.pocketPause))
{
bool flag20 = false;
if (Records.x.demo)
{
flag20 = true;
Links.x.main.StartQuip("Alas, this will take us beyond the demo");
}
else if (Records.x.extendedDemo && !flag18 && this.exit.mapExit.exitTo != MapExit.exitToNames.Interiors && this.exit.mapExit.exitTo != MapExit.exitToNames.Exterior)
{
flag20 = true;
Links.x.main.StartQuip("Alas, this will take us beyond the extended demo");
}
if (!flag20)
{
this.clickedCharacter = null;
Links.x.gameplay.StoneSoundQuieter();
bool flag21 = false;
bool flag22 = false;
if (this.exit)
{
if (this.exit.doorActions && this.exit.doorActions.door.locked)
{
flag21 = true;
}
if (this.exit.nodeLink && !flag21 && Links.x.main.node != null)
{
GraphNode endNode = this.exit.nodeLink.endNode;
}
if (this.exit.connectionExit && this.exit.connectionExit.GetComponent<MapExitActions>().nodeLink && !flag21 && Links.x.main.node != null)
{
NodeLink nodeLink = this.exit.connectionExit.GetComponent<MapExitActions>().nodeLink;
}
}
if (!flag21 && !flag22)
{
if (Input.GetMouseButtonDown(0))
{
this.clickStartOnUIHover = true;
}
if (this.exit)
{
if (this.exit.mapExit.waterExit)
{
if (Physics.Raycast(this.ray, out raycastHit2, 500f, 4194321))
{
this.mousePoint = raycastHit2.point;
this.currentExitNode = Links.x.main.NearNode(this.mousePoint, false, 0, -1, 0);
}
else
{
this.currentExitNode = Links.x.main.NearNode(this.mousePoint, false, 0, -1, 0);
}
}
else
{
Physics.Raycast(this.exit.mapExit.doorPoint + new Vector3(0f, 20f, 0f), Vector3.up * -1f, out raycastHit2, 500f, 4194321);
Links.x.main.setArea = -1;
this.currentExitNode = Links.x.main.NearNode(this.exit.mapExit.doorPoint, false, 0, -1, 0);
}
}
else
{
this.currentExitNode = Links.x.main.node;
}
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
if (this.actionCharacter)
{
this.actionCharacter.portrait.skillBag.RemoveSelectedButton();
}
}
this.spellcasting = false;
if (this.spellTargetingGround || this.spellTargetingEnemy || this.spellTargetingParty)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.throwingElixir = false;
if (this.currentExitNode != null)
{
if (flag18)
{
if (Links.x.gaia.boat.CanEnterLeaveBoat())
{
if (Records.x.partySailing)
{
Links.x.gaia.boat.GetOffBoat();
}
else
{
Links.x.gaia.boat.GetOnWater();
}
}
else if (Records.x.partySailing)
{
Links.x.gameFeed.ShowNotice("Guards cannot leave boat yet");
}
else
{
Links.x.gameFeed.ShowNotice("Guards are not ready to sail");
}
}
else if (!this.closeTheGap)
{
Links.x.gameplay.MapExitFinished(this.exit, Links.x.main, false);
}
else
{
for (int i = 0; i < this.party.Count; i++)
{
if (this.party[i].IsSentient() && this.party[i].mainSelected)
{
if (this.exit.mapExit.waterExit)
{
this.exit.SetDoorPoint((Vector3)this.currentExitNode.position);
}
this.party[i].selectedBeforeDoor = true;
this.party[i].StartGetPathToTarget(this.currentExitNode, null, null, null, null, null, null, null, this.party[i], this.exit, this.CanScatterPartyToMakePath("Exit"), true, false, "Exit", false);
}
}
}
}
else
{
Debug.Log("cannot find exit position");
}
}
else
{
this.str.Clear();
if (flag21)
{
this.str.Append("Door is locked");
}
else
{
this.str.Append("Exit is blocked");
}
Links.x.gameFeed.AddFeed(this.str.ToString());
MasterAudio.PlaySoundAndForget("Interactives", 1f, new float?(1f), 0f, "Chest Locked", null);
if (flag21 && this.exit.doorActions.lockCollider)
{
Links.x.cellar.GetAnimatedText("", "Locked", false).gameObject.transform.position = this.exit.doorActions.lockCollider.bounds.center + new Vector3(0f, Random.Range(1.5f, 1.8f), 0f);
}
else
{
Links.x.cellar.GetAnimatedText("", "Blocked", false).gameObject.transform.position = this.exit.mapExit.doorPoint + new Vector3(0f, 3f, 0f);
}
}
}
}
}
if (!this.hitExit && this.prevExit)
{
this.prevExit.doorActions;
this.prevExit.Hover(false);
Links.x.hudControl.HighlightExit(false, this.prevExit);
if (this.intersectingExit)
{
this.intersectingExit.Near(true);
}
this.prevExit.Hover(false);
Links.x.hudControl.HighlightExit(false, this.prevExit);
this.prevExit = null;
this.exit = null;
this.mapDoor = null;
this.prevMapDoor = null;
}
if (Links.x.diorama && !this.spellTargetingGround && this.joy && this.CanInteractWithWorld("Character") && !this.hitExit)
{
if ((this.party1Down || this.party2Down) && !Links.x.pocketWheel.spellbook.activeSelf && !this.gameFeedScrolling && !this.badgeScrolling && !Records.x.removeControls)
{
Character character3 = null;
Links.x.hudControl.ArrangePortraits();
if (this.party1Down)
{
character3 = Links.x.hudControl.upCharacter;
}
if (this.party2Down)
{
character3 = Links.x.hudControl.downCharacter;
}
if (character3)
{
bool flag23 = false;
if (Links.x.main && Links.x.main.timelineIcon && Links.x.main.timelineIcon.overridePause)
{
flag23 = true;
}
if (!flag23)
{
flag15 = false;
this.gameCardCharacter = character3;
this.hitGameCardHover = true;
graphNode = character3.node;
Links.x.fellowship.SingleSelected(character3);
character3.AddToSelected(false, true);
character3.SetAsLeader();
}
}
}
if (!Records.x.pocketPause && Links.x.partyColliderAdventure.closestCharacter && Links.x.partyColliderAdventure.InRangeToHover(Links.x.partyColliderAdventure.closestCharacter))
{
flag15 = false;
this.gameCardCharacter = Links.x.partyColliderAdventure.closestCharacter;
this.hitGameCardHover = true;
graphNode = Links.x.partyColliderAdventure.closestCharacter.node;
}
if (Records.x.pocketPause && this.domeEnemy && Links.x.pocketWheel.targetSelection)
{
flag15 = false;
this.gameCardCharacter = this.domeEnemy;
this.hitGameCardHover = true;
graphNode = this.domeEnemy.node;
}
if (Records.x.pocketPause && this.domeParty && Links.x.pocketWheel.targetSelection)
{
flag15 = false;
this.gameCardCharacter = this.domeParty;
this.hitGameCardHover = true;
graphNode = this.domeParty.node;
}
}
if (graphNode != null && (Links.x.combat.inPocketAttack || Records.x.pocketPause))
{
if (Links.x.combat.inPocketAttack)
{
if (Links.x.pocketWheel.selectedRallyCharacter)
{
}
}
else if (Links.x.main.IsAttacking(Links.x.main.body.currentHash))
{
graphNode = null;
}
}
if (!this.hitCharacter && graphNode != null && !this.hitBoat && !this.hitExit && this.CanInteractWithWorld("Character"))
{
this.mousePoint = (Vector3)graphNode.position;
this.character = this.gameCardCharacter;
this.gameCardCharacter = this.character;
this.hitGameCardHover = true;
if (Records.x.InCombat(false) && (this.playerInAction || Links.x.main.IsAttacking(Links.x.main.body.currentHash)))
{
this.hitGameCardHover = false;
this.gameCardCharacter = null;
}
bool flag24 = false;
if (Records.x.pocketPause)
{
if (Links.x.combat.CanAttackTarget(this.character) && (this.attackingCharacter.CanAttack() || Links.x.combat.inPocketAttack))
{
flag24 = true;
}
if (this.character.party)
{
if (this.spellTargetingParty && this.actionCharacter)
{
if ((this.character.tr.position - this.actionCharacter.tr.position).sqrMagnitude < this.actionCharacter.stats.SpellRadius(this.spellPaganRow) * this.actionCharacter.stats.SpellRadius(this.spellPaganRow))
{
flag24 = true;
}
if (this.actionCharacter == this.character)
{
flag24 = true;
}
}
else if (this.character != Links.x.main && Links.x.combat.CharacterHasSynergy(this.character))
{
flag24 = true;
}
this.quickCommandAttack = false;
}
}
else
{
if (this.character.hostility < 2 && !this.character.attackingUntilBribe && ((!this.character.stats.animal && this.character.npc) || this.character.isBoro || this.character.stats.dialogueFile != ""))
{
flag24 = Links.x.hudControl.CharacterIsNear(this.character);
if (Links.x.mk)
{
flag24 = this.mouseVisible;
}
}
if (Links.x.combat.CanAttackTarget(this.character))
{
flag24 = true;
}
if (this.character.party)
{
flag24 = Links.x.combat.pickingRally;
}
}
if (flag24)
{
this.mousePoint = this.character.tr.position;
if (this.character != this.prevCharacter && this.prevCharacter)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightCharacter(false, this.prevCharacter);
}
else
{
Links.x.combat.HighlightCharacter(false, this.prevCharacter);
}
if (Records.x.pocketPause && this.joy)
{
this.joystickTarget.SetActive(false);
}
this.prevCharacter.HoverOut(false);
}
if (this.character != this.prevCharacter && this.character)
{
this.character.HoverIn();
if (Records.x.pocketPause && this.joy && Links.x.pocketWheel.targetSelection)
{
this.SetPositionAtWorldPoint(this.character.body.GetNeck().position + new Vector3(0f, 2.1f, 0f), this.joystickTargetRT);
this.joystickTarget.SetActive(true);
}
else if (this.joystickTarget.activeSelf)
{
this.joystickTarget.SetActive(false);
}
if (this.character.portrait && Links.x.mk)
{
this.character.portrait.HoverFromCharacter(true);
}
if (Records.x.InCombat(false) && !this.character.party)
{
this.targetingCharacter = this.character;
}
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightCharacter(true, this.character);
}
else
{
Links.x.combat.HighlightCharacter(true, this.character);
}
}
this.prevCharacter = this.character;
this.hitCharacter = true;
}
else
{
this.character = null;
this.hitCharacter = false;
}
}
if (!this.hitCharacter && this.targetingGroundCharacterHover)
{
this.targetingGroundCharacterHover = false;
}
if (this.charming && !this.actionCharacter)
{
this.charming = false;
}
if (this.waitingForClickUpOnCharacter)
{
if (Links.x.mk && Input.GetMouseButtonUp(0))
{
this.waitingForClickUpOnCharacter = false;
}
if (Links.x.mk && Input.GetMouseButton(0) && !this.hitCharacter)
{
this.waitingForClickUpOnCharacter = false;
}
}
if (this.hitCharacter && !Links.x.fellowship.drawingSquare && this.CanInteractWithWorld("Character") && !this.hitExit && this.character)
{
string selected = Links.x.pocketWheel.selected;
if (((this.mk && Input.GetMouseButtonDown(0)) || (this.joy && ((this.interactStart && this.character == Links.x.partyColliderAdventure.closestCharacter && Links.x.partyColliderAdventure.InRange(Links.x.partyColliderAdventure.closestCharacter)) || (!this.inPartyDock && this.actionStart && !this.waitingForActionUp && (!Records.x.pocketPause || (Records.x.pocketPause && Links.x.pocketWheel.targetSelection)) && (selected == "Light Attack" || (Links.x.pocketWheel.selected == "Special Attack 1" && Links.x.pocketWheel.canTarget) || selected == "Medium Attack" || selected == "Command Attack" || selected == "Heavy Attack" || Links.x.pocketWheel.Charming() || (selected == "Spellbag" && (this.spellTargetingParty || this.spellTargetingEnemy))) && (this.character == this.domeParty || this.character == this.domeEnemy))))) && this.CanClick() && (!this.character.stunned || (this.character.stunned && Records.x.kill)))
{
this.WorldClick();
if (Input.GetMouseButtonDown(0))
{
this.clickStartOnUIHover = true;
}
if (this.spellTargetingGround && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
this.StartGroundTargetTiles(this.actionCharacter, this.character.tr.position, false, this.tileEffectRadius, this.actionCharacter.stats.SpellRadius(this.spellPaganRow));
}
else if ((this.character.isBoro || this.character.npc) && Links.x.hasMain)
{
if (!this.quickCommandAttack && (this.character.isBoro || (this.character.hostility < 2 && !this.attacking && !this.character.attackingUntilBribe && this.character.stats.dialogueFile != "")) && !Records.x.pocketPause && ((this.joy && this.interactStart) || Input.GetMouseButtonDown(0)))
{
if (this.closeTheGap)
{
this.talkCharacter = null;
Character character4 = Links.x.main;
if (Records.x.partySailing)
{
character4 = Links.x.gaia.boro;
}
if (!this.character.sleeping)
{
if (!this.character.hasActions)
{
this.character.ClearNodePath();
}
if (this.character.creatures)
{
this.character.creatures.SetWaitTime();
}
character4.StartGetPathToTarget(this.character.node, this.character, null, null, null, null, null, null, character4, null, false, true, false, "Dialogue", false);
}
}
else
{
flag14 = true;
this.FollowCharacterPathFinished(this.character, Links.x.main);
this.talkCharacter = null;
}
}
else if (this.character.cannotAttack)
{
Links.x.gameFeed.AddFeed(this.character.stats.displayName + " cannot be attacked");
}
else if (this.quickCommandAttack || (Records.x.pocketPause && Links.x.combat.CanAttackTarget(this.character)))
{
if (this.character.hostility < 2 && !this.character.attackingUntilBribe)
{
for (int j = 0; j < this.party.Count; j++)
{
if (this.party[j] && this.party[j].IsSentient())
{
this.party[j].UpdateLKP(this.character, this.character.node, "Attack", true);
}
}
}
if (!this.quickCommandAttack)
{
this.domeEnemy = null;
this.domeParty = null;
this.NewPaths();
this.clickedCharacter = this.character;
this.ClearInteractionNodes();
this.targetingCharacter = this.character;
}
Character character5 = Links.x.main;
if (Links.x.pocketWheel.rallyWheelOpen)
{
character5 = Links.x.pocketWheel.selectedRallyCharacter;
}
for (int k = 0; k < this.party.Count; k++)
{
Character character6 = this.party[k];
if (character6 && !character6.isBoro)
{
if (this.quickCommandAttack)
{
if (!character6.hasActions)
{
Links.x.combat.GivePartyActions(character6, false);
}
if (character6.commandMove != null)
{
character6.commandMove = null;
character6.ClearNodePath();
if (character6.waypoint)
{
character6.waypoint.transform.position = this.farPosition;
}
}
if (character6.actions)
{
character6.actions.SetSelectedTarget(true, this.character, null, null);
if (character6.actions && !character6.mainSelected)
{
Links.x.combat.GetNextAction(character6);
}
}
if (character6.mainSelected)
{
if (this.arcCorout != null)
{
this.ReturnLineRenderers();
base.StopCoroutine(this.arcCorout);
}
this.arcCorout = this.ArcToTarget(this.character.torsoPosition);
base.StartCoroutine(this.arcCorout);
}
}
else if (character6 == character5 && (character6.CanAttack() || Links.x.combat.inPocketAttack || Links.x.pocketWheel.rallyWheelOpen) && character6.IsSentient())
{
if (!character6.hasActions)
{
Links.x.combat.GivePartyActions(character6, false);
}
if (this.spellTargetingEnemy && character6.attackTime >= 1f && character6.hasActions && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
if (true)
{
this.actionCharacter.portrait.skillBag.selectedSkillButton.SetActionAbility();
this.actionCharacter.actions.CastSpell(this.character, false, this.character.node, Vector3.zero, true, false);
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.RemoveSpellTargets();
}
}
else if (character6.actions)
{
if (Links.x.pocketWheel.Charming() && Records.x.pocketPause && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
if (this.character.stats.characterRow._Race == "Forest" || this.character.stats.characterRow._Race == "Fish" || this.character.stats.characterRow._Race == "Shroom")
{
character6.actions.SelectActionRealTime(this.character, null);
}
}
else if (Links.x.pocketWheel.selected == "Medium Attack" && Records.x.pocketPause && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
character6.actions.SelectPin(this.character);
}
else if (Records.x.pocketPause && ((this.mk && Input.GetMouseButtonDown(0)) || (this.joy && this.actionStart)))
{
if (Links.x.pocketWheel.selected != "Heavy Attack")
{
if (Links.x.combat.inPocketAttack)
{
this.rallyTargetSelected = this.character;
}
else
{
character6.actions.SelectActionRealTime(this.character, null);
}
}
else
{
character6.actions.SelectCharge(this.character);
}
}
}
}
this.waitingForClickUpOnCharacter = true;
}
}
if (!Links.x.main.HasAmmoOrMelee(Links.x.main.invRow1, false))
{
Links.x.gameFeed.AddFeed(this.character.stats.displayName + " is out of " + Links.x.main.GetAmmoType());
}
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround || this.spellTargetingParty || this.spellTargetingEnemy)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
else if (!this.character.npc && (this.mk || (this.joy && !this.inPartyDock && !this.waitingForActionUp && this.actionStart)) && !this.character.offMap && !Records.x.paused)
{
if (this.spellTargetingParty && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
this.actionCharacter.portrait.skillBag.selectedSkillButton.SetActionAbility();
this.actionCharacter.actions.CastSpell(this.character, false, this.character.node, Vector3.zero, true, false);
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.RemoveSpellTargets();
}
else if (Records.x.pocketPause)
{
if (Links.x.combat.CharacterHasSynergy(this.character) && !this.character.mainSelected && (this.joy || Input.GetMouseButtonDown(0)))
{
this.SelectRallyCharacter(this.character);
}
}
else if (!Records.x.pocketPause && this.character.party && this.mk && ((this.joy && this.actionStart) || Input.GetMouseButtonDown(0)))
{
Links.x.fellowship.SingleSelected(this.character);
this.character.AddToSelected(false, true);
this.character.SetAsLeader();
if (this.doubleClick)
{
Links.x.rtsCamera.Follow(this.character.tr, this.character, true);
}
flag14 = true;
}
if (this.mk)
{
this.clickedUpCharacter = true;
}
}
}
else if (this.spellTargetingGround)
{
this.targetingGroundCharacterHover = true;
this.StartGroundTargetTiles(this.actionCharacter, this.character.tr.position, true, this.tileEffectRadius, this.actionCharacter.stats.SpellRadius(this.spellPaganRow));
}
}
if (!this.hitCharacter)
{
this.targetingCharacter = null;
if (this.prevCharacter)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightCharacter(false, this.prevCharacter);
}
else
{
Links.x.combat.HighlightCharacter(false, this.prevCharacter);
}
this.prevCharacter.HoverOut(false);
this.prevCharacter = null;
this.character = null;
if (Records.x.pocketPause && this.joy)
{
this.joystickTarget.SetActive(false);
}
this.attacking = false;
this.attacking = false;
this.ClearInteractionNodes();
}
}
if (this.hitGameCardHover)
{
if (this.prevGameCardCharacter != this.gameCardCharacter)
{
if (this.prevGameCardCharacter)
{
if (this.prevGameCardCharacter.npc)
{
Links.x.gameCard.EndHover(this.prevGameCardCharacter, false);
}
this.prevGameCardCharacter.body.Hover(false, true);
}
if (this.gameCardCharacter)
{
if (this.gameCardCharacter.npc || this.gameCardCharacter.isBoro)
{
Links.x.gameCard.StartHover(this.gameCardCharacter, "");
}
if (!Records.x.InCombat(false) || (Records.x.InCombat(false) && (this.quickCommandAttack || Records.x.pocketPause) && (this.quickCommandAttack || (this.gameCardCharacter.party && this.spellTargetingParty) || Links.x.combat.CanAttackTarget(this.gameCardCharacter))))
{
this.gameCardCharacter.body.Hover(true, true);
}
}
}
this.prevGameCardCharacter = this.gameCardCharacter;
bool flag25 = false;
for (int l = 0; l < this.party.Count; l++)
{
if (this.party[l].body.sneaking)
{
flag25 = true;
}
}
bool flag26 = flag25;
if (this.gameCardCharacter && (this.gameCardCharacter.npc && !Records.x.InCombat(false) && this.gameCardCharacter.hostility > 0 && flag26))
{
if (this.coneCharacter != this.gameCardCharacter)
{
Links.x.lineOfSightCone.rotation = this.gameCardCharacter.body.tr.rotation;
if (this.gameCardCharacter.moving)
{
Links.x.lineOfSightCone.rotation = this.gameCardCharacter.smoothRot;
}
Links.x.lineOfSightCone.position = this.gameCardCharacter.tr.position;
Links.x.lineOfSightCamera.farClipPlane = this.gameCardCharacter.stats.SightRadius(false, false, false);
}
this.coneCharacter = this.gameCardCharacter;
}
}
else if (this.prevGameCardCharacter)
{
Links.x.gameCard.EndHover(this.prevGameCardCharacter, false);
this.prevGameCardCharacter.body.Hover(false, true);
this.prevGameCardCharacter = null;
}
if ((this.joy || !this.hitCharacter) && !this.clickedUpCharacter && !flag14 && !Links.x.fellowship.drawingSquare && !this.spellTargetingGround && !this.spellTargetingParty && !this.spellTargetingEnemy && !this.hitBoat && !this.charming && this.CanInteractWithWorld("Item") && !Links.x.main.summoned)
{
Item item = null;
RaycastHit raycastHit5;
if (this.mk && Physics.Raycast(this.ray, out raycastHit5, 500f, 2048))
{
this.mousePoint = raycastHit5.point;
item = raycastHit5.collider.gameObject.GetComponent<Item>();
if (!item)
{
item = raycastHit5.collider.gameObject.transform.parent.gameObject.GetComponent<Item>();
}
if (!this.mouseWormVisible && !this.WormVisible(raycastHit5.point))
{
item = null;
}
if (item)
{
if (!Links.x.partyColliderAdventure.itemCollector.CheckInteractiveLineOfSight(item))
{
item = null;
}
if (item && Records.x.pocketPause && !Links.x.partyColliderAdventure.InRange(item))
{
item = null;
}
}
}
if (item || (this.joy && Links.x.partyColliderAdventure.closestItem))
{
if (this.joy)
{
if (Links.x.partyColliderAdventure.InRangeToHover(Links.x.partyColliderAdventure.closestItem))
{
this.item = Links.x.partyColliderAdventure.closestItem;
}
}
else
{
this.item = item;
}
if (!Links.x.inventory.groundBag.ItemInList(this.item) && this.joy)
{
this.item = null;
}
if (this.item != this.prevItem && this.prevItem)
{
Links.x.inventory.groundBag.RemoveLabels();
this.prevItem.HoverOut();
Links.x.inventory.groundBag.SetCollectorUpdate();
}
if (this.item != this.prevItem && this.item)
{
Links.x.inventory.groundBag.RemoveLabels();
this.item.HoverIn();
Links.x.inventory.groundBag.SetCollectorUpdate();
}
if (this.item)
{
this.prevItem = this.item;
this.hitItem = true;
}
}
if (Input.GetMouseButtonDown(0))
{
this.mouseDownItem = this.item;
}
}
if (this.hitItem && ((this.mk && Input.GetMouseButtonUp(0) && this.item == this.mouseDownItem) || (this.joy && this.interactStart && Links.x.partyColliderAdventure.InRange(Links.x.partyColliderAdventure.closestItem))) && this.CanClick() && Links.x.hasMain)
{
Links.x.gameplay.StoneSoundQuieter();
GraphNode dropNode = this.item.dropNode;
Character character7 = Links.x.main;
if (Records.x.partySailing)
{
character7 = Links.x.gaia.boro;
}
if (this.closeTheGap)
{
character7.StartGetPathToTarget(dropNode, null, this.item, null, null, null, null, null, character7, null, Links.x.gameplay.CanScatterPartyToMakePath("Item"), true, false, "Item", false);
}
else
{
Links.x.gameplay.ItemPathFinished(this.item, Links.x.main);
}
this.clickedCharacter = null;
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround || this.spellTargetingEnemy || this.spellTargetingParty)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
if (this.actionCharacter)
{
this.actionCharacter.portrait.skillBag.RemoveSelectedButton();
}
if (Input.GetMouseButtonDown(0))
{
this.clickStartOnUIHover = true;
}
}
if (!this.hitItem)
{
this.mouseDownItem = null;
if (this.prevItem)
{
this.prevItem.HoverOut();
this.prevItem = null;
this.item = null;
Links.x.inventory.groundBag.SetCollectorUpdate();
}
}
bool flag27 = false;
if (Records.x.pocketPause)
{
if (this.attackingCharacter.CanAttack() && (!Links.x.pocketWheel.rallyWheelOpen || (Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.canTarget)))
{
flag27 = true;
}
if (!flag27 && Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.canTarget)
{
flag27 = true;
}
}
if (!this.hitCharacter && !this.clickedUpCharacter && (this.joy || !this.hitItem) && !Links.x.fellowship.drawingSquare && !this.spellTargetingGround && !this.spellTargetingParty && !this.spellTargetingEnemy && !this.hitBoat && !this.charming && this.CanInteractWithWorld("Interactive Object"))
{
bool flag28 = false;
if (this.mk && Physics.Raycast(this.ray, 500f, 2162688) && Physics.Raycast(this.ray, out raycastHit2, 500f, 2163200) && (raycastHit2.collider.gameObject.layer == 16 || raycastHit2.collider.gameObject.layer == 21 || this.mouseWormVisible || this.WormVisible(raycastHit2.point)))
{
flag28 = true;
}
if ((!Records.x.pocketPause || flag27) && (flag28 || (this.joy && !Records.x.pocketPause && (Links.x.partyColliderAdventure.closestBreakable || Links.x.partyColliderAdventure.closestDoor || Links.x.partyColliderAdventure.closestChest || Links.x.partyColliderAdventure.closestPuzzle)) || (this.joy && Records.x.pocketPause && Links.x.pocketWheel.targetSelection && (this.domeBreakable || this.domeDoor || this.domeChest || this.domePuzzle))))
{
if (this.mk)
{
Physics.Raycast(this.ray, out raycastHit2, 500f, 2162688);
this.mousePoint = raycastHit2.point;
this.breakable = raycastHit2.collider.gameObject.GetComponent<BreakableActions>();
if (!this.breakable)
{
this.breakable = raycastHit2.collider.gameObject.transform.parent.gameObject.GetComponent<BreakableActions>();
}
if (!this.breakable)
{
this.chest = raycastHit2.collider.gameObject.transform.parent.gameObject.GetComponent<ChestActions>();
}
if (!this.breakable && !this.chest)
{
this.door = raycastHit2.collider.gameObject.GetComponent<DoorActions>();
}
if (!this.breakable && !this.chest && !this.door)
{
this.puzzle = raycastHit2.collider.gameObject.GetComponent<PuzzleActions>();
}
if (this.breakable != this.prevBreakable && this.prevBreakable)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBreakable(false, this.prevBreakable);
}
else
{
Links.x.combat.HighlightBreakable(false, this.prevBreakable);
}
this.prevBreakable.HoverOut();
Links.x.itemCard.EndHover(null, null, null, this.prevBreakable, null, true);
}
}
else
{
if (!Records.x.pocketPause)
{
this.breakable = Links.x.partyColliderAdventure.closestBreakable;
this.door = Links.x.partyColliderAdventure.closestDoor;
this.chest = Links.x.partyColliderAdventure.closestChest;
this.puzzle = Links.x.partyColliderAdventure.closestPuzzle;
}
else
{
this.breakable = this.domeBreakable;
this.door = this.domeDoor;
this.chest = this.domeChest;
this.puzzle = this.domePuzzle;
}
if (this.breakable != this.prevBreakable && this.prevBreakable)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBreakable(false, this.prevBreakable);
}
else
{
Links.x.combat.HighlightBreakable(false, this.prevBreakable);
}
this.prevBreakable.HoverOut();
Links.x.itemCard.EndHover(null, null, null, this.prevBreakable, null, true);
}
}
this.mapDoor = null;
bool flag29 = true;
if (this.breakable || this.chest || this.door || this.puzzle)
{
if (!Records.x.pocketPause)
{
if (this.breakable)
{
flag29 = Links.x.hudControl.BreakableIsNear(this.breakable);
}
if (this.chest)
{
flag29 = Links.x.hudControl.ChestIsNear(this.chest);
}
if (this.door)
{
flag29 = Links.x.hudControl.DoorIsNear(this.door);
}
if (this.puzzle)
{
flag29 = Links.x.hudControl.PuzzleIsNear(this.puzzle);
}
if (Links.x.mk)
{
flag29 = this.mouseWormVisible;
}
}
if (Records.x.pocketPause)
{
if (this.breakable)
{
flag29 = Links.x.combat.BreakableIsNear(this.breakable, this.attackingCharacter);
}
if (this.chest)
{
flag29 = Links.x.combat.ChestIsNear(this.chest, this.attackingCharacter);
}
if (this.door)
{
flag29 = Links.x.combat.DoorIsNear(this.door, this.attackingCharacter);
}
if (this.puzzle)
{
flag29 = Links.x.combat.PuzzleIsNear(this.puzzle, this.attackingCharacter);
}
if (Links.x.pocketWheel.rallyWheelOpen)
{
if (Links.x.pocketWheel.selectedRally.Contains("Both") || Links.x.pocketWheel.selectedRally.Contains("Crippl") || Links.x.pocketWheel.selectedRally.Contains("Wound"))
{
flag29 = false;
}
else
{
if (this.breakable && this.breakable.sheen == 1f)
{
flag29 = true;
}
if (this.chest && this.chest.sheen == 1f)
{
flag29 = true;
}
if (this.door && this.door.sheen == 1f)
{
flag29 = true;
}
}
}
else
{
bool flag30 = false;
if (this.breakable && (float)this.breakable.currentHealth < Records.x.ChargeAmount((float)this.attackingCharacter.stats.level))
{
flag30 = true;
}
if (Links.x.pocketWheel.Charming() || (Links.x.pocketWheel.selected == "Heavy Attack" && !flag30) || Links.x.pocketWheel.selected == "Medium Attack")
{
flag29 = false;
}
}
}
if (this.mk && flag29)
{
Vector3 vector2 = Vector3.zero;
if (this.breakable)
{
vector2 = this.breakable.gameObject.transform.position + new Vector3(0f, 2f, 0f);
}
if (this.chest)
{
vector2 = this.chest.gameObject.transform.position + new Vector3(0f, 2f, 0f);
}
if (this.door)
{
vector2 = this.door.gameObject.transform.position + new Vector3(0f, 2f, 0f);
}
if (this.puzzle)
{
vector2 = this.puzzle.gameObject.transform.position + new Vector3(0f, this.puzzle.interactionPointY, 0f);
}
GraphNode graphNode3 = Links.x.main.NearNode(vector2, false, 0, -1, 0);
if (graphNode3 != null && graphNode3.GraphIndex == 1U && Links.x.diorama.GetIndoorView().GetInteriorBoundsName((Vector3)graphNode3.position) != Links.x.main.indoorID)
{
flag29 = false;
this.breakable = null;
this.chest = null;
this.door = null;
this.puzzle = null;
this.hitInteractable = false;
}
}
}
else
{
flag29 = false;
}
if (flag29)
{
if (Records.x.pocketPause && this.joy && !Links.x.main.inAction && !Links.x.main.inRecovery && Links.x.pocketWheel.targetSelection)
{
this.joystickTarget.SetActive(true);
}
else if (this.joystickTarget.activeSelf)
{
this.joystickTarget.SetActive(false);
}
if (this.breakable)
{
if (this.breakable != this.prevBreakable && this.breakable)
{
if (this.breakable.breakable.armor > 0 && this.breakable.resourceLocation < 0)
{
Links.x.itemCard.StartHover(null, null, null, this.breakable, null);
}
this.breakable.HoverIn(true);
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBreakable(true, this.breakable);
}
else
{
Links.x.combat.HighlightBreakable(true, this.breakable);
}
}
else if (this.breakable == this.prevBreakable && Links.x.itemCard.savedHealth != this.breakable.currentHealth && this.breakable.breakable.armor > 0 && this.breakable.resourceLocation < 0)
{
Links.x.itemCard.StartHover(null, null, null, this.breakable, null);
}
if (Records.x.pocketPause && this.joy && Links.x.pocketWheel.targetSelection)
{
this.SetPositionAtWorldPoint(this.breakable.transform.position + new Vector3(0f, 1.5f, 0f), this.joystickTargetRT);
}
this.door = null;
this.chest = null;
this.puzzle = null;
}
if (this.door)
{
if (this.door != this.prevDoor)
{
Links.x.itemCard.StartHover(null, null, this.door, null, null);
this.door.HoverIn(true);
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightDoor(true, this.door);
}
else
{
Links.x.combat.HighlightDoor(true, this.door);
}
}
else if (Links.x.itemCard.savedHealth != this.door.currentHealth || Links.x.itemCard.savedLockState != this.door.door.locked)
{
Links.x.itemCard.StartHover(null, null, this.door, null, null);
}
if (Records.x.pocketPause && this.joy && Links.x.pocketWheel.targetSelection)
{
this.SetPositionAtWorldPoint(this.door.lockColliderPosition + new Vector3(0f, 0.5f, 0f), this.joystickTargetRT);
}
this.chest = null;
this.breakable = null;
this.puzzle = null;
}
if (this.puzzle != this.prevPuzzle && this.prevPuzzle)
{
this.prevPuzzle.HoverOut();
}
if (this.puzzle)
{
if (this.puzzle != this.prevPuzzle)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightPuzzle(false, this.prevPuzzle);
}
else
{
Links.x.combat.HighlightPuzzle(false, this.prevPuzzle);
}
Links.x.itemCard.StartHover(null, null, null, null, this.puzzle);
this.puzzle.HoverIn();
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightPuzzle(true, this.puzzle);
}
}
if (Records.x.pocketPause && this.joy && Links.x.pocketWheel.targetSelection)
{
this.SetPositionAtWorldPoint(this.puzzle.transform.position + new Vector3(0f, 1.5f, 0f), this.joystickTargetRT);
}
this.door = null;
this.chest = null;
this.breakable = null;
}
if (this.chest)
{
if (this.chest != this.prevChest)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightChest(false, this.prevChest);
}
else
{
Links.x.combat.HighlightChest(false, this.prevChest);
}
Links.x.itemCard.StartHover(null, this.chest, null, null, null);
this.chest.HoverIn(true);
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightChest(true, this.chest);
}
else
{
Links.x.combat.HighlightChest(true, this.chest);
}
}
else if (this.chest == this.prevChest && (Links.x.itemCard.savedHealth != this.chest.currentHealth || Links.x.itemCard.savedLockState != this.chest.chest.locked))
{
Links.x.itemCard.StartHover(null, this.chest, null, null, null);
}
if (Records.x.pocketPause && this.joy && Links.x.pocketWheel.targetSelection)
{
this.SetPositionAtWorldPoint(this.chest.transform.position + new Vector3(0f, 1.5f, 0f), this.joystickTargetRT);
}
this.door = null;
this.breakable = null;
this.puzzle = null;
}
if (this.door != this.prevDoor && this.prevDoor)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightDoor(false, this.prevDoor);
}
else
{
Links.x.combat.HighlightDoor(false, this.prevDoor);
}
this.prevDoor.HoverOut();
}
if (this.chest != this.prevChest && this.prevChest)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightChest(false, this.prevChest);
}
else
{
Links.x.combat.HighlightChest(false, this.prevChest);
}
this.prevChest.HoverOut();
}
this.prevDoor = this.door;
this.prevChest = this.chest;
this.prevPuzzle = this.puzzle;
this.prevBreakable = this.breakable;
this.hitInteractable = true;
}
}
}
if (this.hitInteractable)
{
bool flag31 = false;
if (this.breakable && this.breakable.breakable.armor > 0)
{
flag31 = true;
}
if (((this.mk && Input.GetMouseButtonDown(0)) || (this.joy && ((this.actionStart && Records.x.pocketPause && Links.x.pocketWheel.targetSelection && !this.waitingForActionUp) || (this.interactStart && !Records.x.pocketPause)))) && this.CanClick() && Links.x.hasMain && Links.x.main.IsSentient())
{
bool flag32 = this.joy;
if (this.breakable || this.chest || this.door || this.puzzle)
{
this.clickedCharacter = null;
this.WorldClick();
if (this.breakable)
{
this.currentInteractionNode = Links.x.main.NearNode(this.breakable.transform.position, false, 0, -1, 0);
}
else if (this.chest)
{
this.currentInteractionNode = Links.x.main.NearNode(this.chest.point.transform.position, false, 0, -1, 0);
}
else if (this.door)
{
if (this.door.node != null)
{
this.currentInteractionNode = this.door.node;
}
else
{
this.currentInteractionNode = this.door.GetNode();
}
}
else if (this.puzzle)
{
this.currentInteractionNode = Links.x.main.NearNode(this.puzzle.transform.position, false, 0, -1, 0);
this.puzzle.node = this.currentInteractionNode;
}
if ((this.mk || (this.joy && !Records.x.pocketPause)) && (this.currentInteractionNode != null || !this.closeTheGap))
{
Character character8 = Links.x.main;
if (Records.x.partySailing)
{
character8 = Links.x.gaia.boro;
}
if (this.closeTheGap)
{
if (!Records.x.pocketPause)
{
if (this.breakable)
{
if (this.breakable.breakable.armor == 0)
{
character8.StartGetPathToTarget(this.currentInteractionNode, null, null, this.breakable, null, null, null, null, character8, null, this.CanScatterPartyToMakePath("Breakable"), true, false, "Breakable", false);
}
}
else if (this.chest)
{
character8.StartGetPathToTarget(this.currentInteractionNode, null, null, null, this.chest, null, null, null, character8, null, this.CanScatterPartyToMakePath("Chest"), true, false, "Chest", false);
}
else if (this.door)
{
character8.StartGetPathToTarget(this.currentInteractionNode, null, null, null, null, this.door, null, null, character8, null, this.CanScatterPartyToMakePath("Door"), true, false, "Door", false);
}
else if (this.puzzle)
{
if (this.puzzle.id == "Break Circle")
{
this.PuzzleFinished(this.puzzle, Links.x.main);
}
else
{
character8.StartGetPathToTarget(this.currentInteractionNode, null, null, null, null, null, this.puzzle, null, character8, null, this.CanScatterPartyToMakePath("Puzzle"), true, false, "Puzzle", false);
}
}
}
}
else if (this.breakable)
{
if (this.breakable.breakable.armor == 0)
{
this.BreakableFinished(this.breakable, Links.x.main);
if (Links.x.joy)
{
this.waitingForActionUp = true;
}
}
}
else if (this.chest)
{
this.ChestFinished(this.chest, Links.x.main);
}
else if (this.door)
{
this.DoorFinished(this.door, Links.x.main);
}
else if (this.puzzle)
{
this.PuzzleFinished(this.puzzle, Links.x.main);
}
if (Input.GetMouseButtonDown(0))
{
this.clickStartOnUIHover = true;
}
}
}
if (flag27 && ((this.mk && Input.GetMouseButtonDown(0)) || (this.joy && !this.inPartyDock && this.actionStart && !this.waitingForActionUp && flag27 && Links.x.pocketWheel.targetSelection)) && this.CanClick() && Links.x.hasMain && !Records.x.typing)
{
Debug.Log(flag27.ToString() + " " + Links.x.main.CanAttack().ToString());
bool flag33 = false;
if (this.breakable && ((flag31 && Links.x.combat.BreakableIsNear(this.breakable, this.attackingCharacter)) || (flag27 && Links.x.combat.BreakableIsNear(this.breakable, this.attackingCharacter)) || (flag27 && Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.canTarget && Links.x.pocketWheel.rally1 && this.breakable.sheen == 1f)))
{
flag33 = true;
}
if (flag33 || this.chest || this.door)
{
this.AttackInteractive();
if (Links.x.joy)
{
this.waitingForActionUp = true;
}
if (Input.GetMouseButtonDown(0))
{
this.clickStartOnUIHover = true;
}
}
}
}
}
if (!this.hitInteractable)
{
if (this.prevBreakable)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBreakable(false, this.prevBreakable);
}
else
{
Links.x.combat.HighlightBreakable(false, this.prevBreakable);
}
if (this.prevBreakable.resourceLocation < 0)
{
Links.x.itemCard.EndHover(null, null, null, this.prevBreakable, null, true);
}
this.prevBreakable.HoverOut();
this.prevBreakable = null;
this.breakable = null;
if (!Links.x.pocketWheel.targetSelection || (this.joystickTarget.activeSelf && !this.domeParty && !this.domeEnemy))
{
this.joystickTarget.SetActive(false);
}
}
if (this.prevChest)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightChest(false, this.prevChest);
}
else
{
Links.x.combat.HighlightChest(false, this.prevChest);
}
Links.x.itemCard.EndHover(null, this.prevChest, null, null, null, true);
this.prevChest.HoverOut();
this.prevChest = null;
this.chest = null;
if (!Links.x.pocketWheel.targetSelection || (this.joystickTarget.activeSelf && !this.domeParty && !this.domeEnemy))
{
this.joystickTarget.SetActive(false);
}
}
if (this.prevDoor)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightDoor(false, this.prevDoor);
}
else
{
Links.x.combat.HighlightDoor(false, this.prevDoor);
}
Links.x.itemCard.EndHover(null, null, this.prevDoor, null, null, true);
this.prevDoor.HoverOut();
this.prevDoor = null;
this.door = null;
if (!Links.x.pocketWheel.targetSelection || (this.joystickTarget.activeSelf && !this.domeParty && !this.domeEnemy))
{
this.joystickTarget.SetActive(false);
}
}
if (this.prevPuzzle)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightPuzzle(false, this.prevPuzzle);
}
else
{
Links.x.combat.HighlightPuzzle(false, this.prevPuzzle);
}
Links.x.itemCard.EndHover(null, null, null, null, this.prevPuzzle, true);
this.prevPuzzle.HoverOut();
this.prevPuzzle = null;
this.puzzle = null;
if (!Links.x.pocketWheel.targetSelection || (this.joystickTarget.activeSelf && !this.domeParty && !this.domeEnemy))
{
this.joystickTarget.SetActive(false);
}
}
}
bool flag34 = false;
bool flag35 = false;
bool flag36 = false;
if (this.joy && Links.x.partyColliderAdventure.nearBeach)
{
if (Records.x.partySailing)
{
flag5 = true;
this.hitBeach = true;
}
else
{
flag3 = true;
this.hitWater = true;
}
}
if (!this.hitItem && !this.hitCharacter && !this.hitExit && !this.hitBoat && !this.hitInteractable && !this.clickedUpCharacter && this.CanClick() && (this.CanInteractWithWorld("Ground") || this.makeCircleMode) && !this.itemsDown && !Links.x.fellowship.drawingSquare)
{
if ((flag3 || flag4 || flag2 || flag5 || this.joy) && !flag15 && !this.spellTargetingParty && !this.spellTargetingEnemy)
{
if (Records.x.InCombat(false) && Links.x.fellowship.mouseNode != null)
{
flag34 = true;
}
if (this.spellTargetingGround)
{
if (this.repositionTargeting || this.defenseCircleTargeting)
{
this.ClearEffectTiles(true, null, true);
}
if (this.joy)
{
float num3 = Mathf.Abs(Links.x.fellowship.move.magnitude);
if (num3 > 0.1f)
{
this.targetGroundTime = Time.timeSinceLevelLoad;
Vector3 vector3 = this.joyPosition;
float num4 = Mathf.Atan2(Links.x.fellowship.move.x, Links.x.fellowship.move.y) / 3.1415927f * 180f;
if (num4 < 0f)
{
num4 += 360f;
}
float num5 = Links.x.worldCamera.transform.rotation.eulerAngles.y + Records.x.gridOffset;
Quaternion quaternion = Quaternion.Euler(new Vector3(0f, num4 + num5, 0f));
this.joyPosition = vector3 + quaternion * Vector3.forward * num3 * Time.deltaTime * 30f;
Vector3 vector4 = this.joyPosition - Links.x.main.tr.position;
Vector3 vector5 = Links.x.main.tr.position + Vector3.ClampMagnitude(vector4, Links.x.main.stats.SpellRadius(this.spellPaganRow));
this.SetControllerTargetingPosition(vector5);
this.joyPosition = vector5;
}
}
if ((this.mk && Input.GetMouseButtonUp(0)) || (this.joy && !this.inPartyDock && this.actionStart && !this.waitingForActionUp))
{
flag13 = true;
if (this.actionCharacter.hasActions)
{
if (this.actionCharacter.actions.channeling)
{
this.actionCharacter.actions.EndChanneling(false);
}
this.actionCharacter.actions.EndVine();
}
this.clickedCharacter = null;
this.WorldClick();
if (this.joy)
{
this.mousePoint = this.groundTargetingWaypoint.transform.position;
}
this.StartGroundTargetTiles(this.actionCharacter, this.mousePoint, false, this.tileEffectRadius, this.actionCharacter.stats.SpellRadius(this.spellPaganRow));
}
else
{
if (this.joy)
{
this.mousePoint = this.groundTargetingWaypoint.transform.position;
}
this.StartGroundTargetTiles(this.actionCharacter, this.mousePoint, true, this.tileEffectRadius, this.actionCharacter.stats.SpellRadius(this.spellPaganRow));
}
}
else if (Records.x.pocketPause || this.quickReposition || this.quickGroup || Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands")) || this.makeCircleMode)
{
if (this.mk && (Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Left")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Up")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Right")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Down"))))
{
this.PocketPause(false);
}
if ((this.quickReposition || this.quickGroup || this.makeCircleMode || Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands"))) && !Records.x.partySailing)
{
Vector3 vector6 = this.joyPosition;
if (this.mk)
{
Vector3 vector7 = this.mousePoint - Links.x.main.tr.position;
vector6 = Links.x.main.tr.position + Vector3.ClampMagnitude(vector7, Links.x.main.stats.SightRadius(false, false, false));
}
if (this.joy)
{
float num6 = Mathf.Abs(Links.x.fellowship.move.magnitude);
if (num6 > 0.1f)
{
this.targetGroundTime = Time.timeSinceLevelLoad;
Vector3 vector8 = this.joyPosition;
float num7 = Mathf.Atan2(Links.x.fellowship.move.x, Links.x.fellowship.move.y) / 3.1415927f * 180f;
if (num7 < 0f)
{
num7 += 360f;
}
float num8 = Links.x.worldCamera.transform.rotation.eulerAngles.y + Records.x.gridOffset;
Quaternion quaternion2 = Quaternion.Euler(new Vector3(0f, num7 + num8, 0f));
this.joyPosition = vector8 + quaternion2 * Vector3.forward * num6 * Time.deltaTime * 30f;
Vector3 vector9 = this.joyPosition - Links.x.main.tr.position;
vector6 = Links.x.main.tr.position + Vector3.ClampMagnitude(vector9, Links.x.main.stats.SightRadius(false, false, false));
RaycastHit raycastHit6;
if (Physics.Raycast(vector6 + new Vector3(0f, 100f, 0f), Vector3.up * -1f, out raycastHit6, 200f, Links.x.floor))
{
vector6 = raycastHit6.point;
}
}
}
bool flag37 = false;
GraphNode graphNode4 = Links.x.main.NearNode(vector6, false, 0, -1, 0);
if (graphNode4 != null && Links.x.main.node != null)
{
if (graphNode4.GraphIndex == 1U)
{
flag37 = !(Links.x.diorama.GetIndoorView().GetInteriorBoundsName((Vector3)graphNode4.position) != Links.x.main.indoorID) && Links.x.main.node.GraphIndex != 0U;
}
else
{
flag37 = graphNode4.GraphIndex != 0U || Links.x.main.node.GraphIndex != 1U;
}
}
if (Time.timeSinceLevelLoad > this.foundGroupTime + 0.15f)
{
this.foundGroupTime = 0f;
}
if (flag37 && (this.quickGroup || this.makeCircleMode || Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands"))))
{
if (!this.defenseCircleTargeting)
{
this.defenseCircleRotation = Quaternion.identity;
}
this.defenseCircleTargeting = true;
if (this.mk)
{
if (!this.messageDefenseHoldMK.activeSelf && Input.GetMouseButton(0))
{
this.messageDefenseHoldMK.SetActive(true);
this.messageDefenseHoldAnimMK.Play("ControlsSlideMK");
}
if (Input.GetMouseButtonDown(0))
{
this.defenseHoldTime = 0f;
}
if (Input.GetMouseButton(0) && this.defenseHoldTime == 0f)
{
this.defenseHoldTime = Time.timeSinceLevelLoad;
this.defenseCircleHoldPosition = vector6;
}
if (Input.GetMouseButtonDown(0) || (Input.GetMouseButton(0) && Time.timeSinceLevelLoad < this.defenseHoldTime + 0.3f))
{
vector6 = this.defenseCircleHoldPosition;
}
else if (Input.GetMouseButton(0) || Input.GetMouseButtonUp(0))
{
vector6 = this.defenseCircleHoldPosition;
}
else
{
this.defenseCircleHoldPosition = Vector3.zero;
this.defenseCircleRotation = Quaternion.identity;
this.defenseHoldTime = 0f;
}
}
else if (!this.messageDefenseHoldJoy.activeSelf)
{
this.messageDefenseHoldJoy.SetActive(true);
this.messageDefenseHoldAnimJoy.Play("ControlsSlideMK");
}
bool flag38 = true;
bool flag39 = false;
if (this.quickGroup && Input.GetMouseButtonUp(0))
{
flag39 = true;
flag38 = false;
}
this.StartGroundTargetTiles(Links.x.main, vector6, flag38, 4, Links.x.main.stats.SightRadius(false, false, false));
if ((Input.GetMouseButtonUp(0) && this.mk) || (this.actionStart && this.joy))
{
flag13 = true;
if (!flag39)
{
this.EndGroupCircle(vector6);
}
}
}
}
}
else if (!this.quickGroup && !this.quickReposition)
{
if (this.repositionTargeting || this.defenseCircleTargeting)
{
this.ClearEffectTiles(true, null, true);
}
if (Links.x.mk && Links.x.pathfind && !this.hitWater)
{
bool flag40 = false;
if (Input.GetMouseButtonDown(0))
{
bool flag41 = false;
GraphNode graphNode5 = Links.x.main.NearNode(this.mousePoint, false, 0, -1, 0);
if (graphNode5 != null && Links.x.main.node != null)
{
if (graphNode5.GraphIndex == 1U)
{
flag41 = !(Links.x.diorama.GetIndoorView().GetInteriorBoundsName((Vector3)graphNode5.position) != Links.x.main.indoorID) && Links.x.main.node.GraphIndex != 0U;
}
else
{
flag41 = graphNode5.GraphIndex != 0U || Links.x.main.node.GraphIndex != 1U;
}
}
if (flag41)
{
this.ClearSelectedActionTargets(Links.x.main);
this.clickedCharacter = null;
Links.x.gameplay.StoneSoundQuieter();
if (Links.x.main.actions && !Records.x.partySailing)
{
Links.x.main.actions.RemoveAbility();
}
if (this.spellTargetingGround || this.spellTargetingParty || this.spellTargetingEnemy)
{
this.ClearEffectTiles(true, null, false);
}
this.RemoveSpellTargets();
this.throwingElixir = false;
if (this.actionCharacter)
{
this.actionCharacter.portrait.skillBag.RemoveSelectedButton();
}
if (Records.x.InCombat(false))
{
Links.x.combat.ClickAwayFromCombat();
}
Links.x.fellowship.MakeWaypoints(this.mousePoint, null, flag40, flag3);
}
}
}
}
}
}
else if (this.repositionTargeting || this.defenseCircleTargeting)
{
this.ClearEffectTiles(true, null, true);
}
if ((!flag34 && !this.targetingCharacter) || this.spellTargetingGround)
{
this.TurnOffHoverTiles();
}
if (!Records.x.pocketPause && Links.x.main.IsSentient() && (this.joy || !flag14) && !Records.x.removeControls && !Records.x.inMenus && !this.spellTargetingGround && !this.spellTargetingParty && !this.spellTargetingEnemy && !this.clickedUpCharacter && !flag36 && !flag35 && !flag13 && !Records.x.typing && !this.makeCircleMode)
{
if ((!this.attackingCharacter.inAction && !this.attackingCharacter.inRecovery && !this.attackingCharacter.inQueuedAbility && this.mk && ((!Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands")) && Input.GetMouseButtonDown(1)) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Pocket")))) || (this.joy && !this.inPartyDock && this.actionStart && !this.waitingForActionUp && !this.itemsDown && !this.descWindowOpen && (Records.x.MenusCount() == 0 || (Records.x.MenusCount() == 1 && Records.x.FirstMenu() == Links.x.hudControl.gameFeedPopout))))
{
if (Links.x.main.attackTime < 1f)
{
MasterAudio.PlaySoundAndForget("Not ready", Random.Range(0.5f, 0.7f), new float?(Random.Range(0.9f, 1f)), 0f, "", null);
}
this.startPocketPause = true;
}
}
else if (!this.startPocketPause && Records.x.pocketPause && ((this.joy && this.cancelStart && !Links.x.pocketWheel.targetSelection) || (!this.hitItem && !this.hitExit && !this.hitInteractable && !flag14 && !this.hitCharacter && Input.GetMouseButtonDown(0)) || (Input.GetMouseButtonDown(1) && !this.spellcasting) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Right")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Left")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Up")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Down")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Pocket"))) && !Records.x.removeControls && !Records.x.inMenus && !this.spellTargetingGround && !this.spellTargetingParty && !this.spellTargetingEnemy && !Records.x.typing && !Links.x.pocketWheel.rallyWheelOpen && ((this.mk && ((Input.GetMouseButtonDown(0) && !this.quickCommandAttack && !this.quickReposition && !this.quickGroup) || (!this.spellcasting && Input.GetMouseButtonDown(1)) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Right")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Left")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Up")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Down")) || Input.GetKeyDown(Links.x.gameplay.keyControl.GetHotkey("Pocket")))) || (this.joy && this.cancelStart && !this.spellcasting && !Links.x.pocketWheel.spellbookWindow.gameObject.activeSelf)))
{
this.PocketPause(false);
}
if (Records.x.pocketPause && this.joy && !Links.x.pocketWheel.rallyWheelOpen && this.cancelStart)
{
if (!Links.x.pocketWheel.targetSelection && Links.x.pocketWheel.spellbookWindow.gameObject.activeSelf)
{
this.RemoveSpellTargets();
}
else if (Links.x.pocketWheel.targetSelection)
{
Links.x.rtsCamera.Zoom(false, "TargetSelect");
Links.x.rtsCamera.targetSelecting = false;
if (Links.x.main.attackTime >= 1f)
{
Links.x.pocketWheel.Open(Links.x.main);
}
if (this.spellcasting || this.spellTargetingGround)
{
this.RemoveSpellTargets();
}
}
else if (!this.startPocketPause)
{
this.PocketPause(false);
}
}
if (Records.x.pocketPause)
{
if (((this.mk && Input.GetMouseButtonDown(1)) || (this.joy && this.cancelStart)) && !this.character)
{
if (Links.x.combat.pickingRally && !this.spellcasting)
{
Links.x.combat.pickingRally = false;
if (Links.x.main.attackTime >= 1f)
{
Links.x.pocketWheel.Open(Links.x.main);
}
Shader.SetGlobalFloat("_Combat", 1f);
Links.x.main.portrait.AnimatorSynergyDone();
Links.x.combat.rallyCharacter.portrait.AnimatorSynergyDone();
Links.x.combat.rallyCharacter = null;
this.SetDomeSize();
if (this.joy)
{
this.GetControllerTarget(false);
}
}
if (this.spellcasting)
{
if (this.actionCharacter && this.actionCharacter.actions && this.actionCharacter.actions.spellCasterFX)
{
Links.x.cellar.ReturnPooledGameObject(69, this.actionCharacter.actions.spellCasterFX);
}
this.RemoveAbilityInfo();
}
if (this.actionCharacter)
{
Links.x.gameplay.ClearWaypointEffect(this.actionCharacter);
}
this.clickStartOnUIHover = false;
}
}
else if (this.mk && Input.GetMouseButtonDown(1) && this.spellcasting && !this.startPocketPause && this.spellcasting)
{
if (this.actionCharacter && this.actionCharacter.actions && this.actionCharacter.actions.spellCasterFX)
{
Links.x.cellar.ReturnPooledGameObject(69, this.actionCharacter.actions.spellCasterFX);
}
this.RemoveAbilityInfo();
}
}
if (!Records.x.pocketPause && (this.defenseCircleTargeting || this.repositionTargeting) && !this.quickGroup && !this.quickReposition && !this.makeCircleMode && !Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands")))
{
this.ClearEffectTiles(true, null, true);
}
}
}
else
{
if (this.mk)
{
if (Input.GetMouseButtonDown(0) && this.uiHover)
{
this.clickStartOnUIHover = true;
}
if (this.prevExit)
{
this.prevExit.Hover(false);
Links.x.hudControl.HighlightExit(false, this.prevExit);
this.prevExit = null;
this.exit = null;
this.mapDoor = null;
this.prevMapDoor = null;
}
this.targetingCharacter = null;
if (this.prevCharacter)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightCharacter(false, this.prevCharacter);
}
else
{
Links.x.combat.HighlightCharacter(false, this.prevCharacter);
}
this.prevCharacter.HoverOut(false);
this.prevCharacter = null;
this.character = null;
this.ClearInteractionNodes();
}
if (this.prevBreakable)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightBreakable(false, this.prevBreakable);
}
else
{
Links.x.combat.HighlightBreakable(false, this.prevBreakable);
}
Links.x.itemCard.EndHover(null, null, null, this.prevBreakable, null, true);
this.prevBreakable.HoverOut();
this.prevBreakable = null;
this.breakable = null;
}
if (this.prevChest)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightChest(false, this.prevChest);
}
else
{
Links.x.combat.HighlightChest(false, this.prevChest);
}
Links.x.itemCard.EndHover(null, this.prevChest, null, null, null, true);
this.prevChest.HoverOut();
this.prevChest = null;
this.chest = null;
}
if (this.prevDoor)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightDoor(false, this.prevDoor);
}
else
{
Links.x.combat.HighlightDoor(false, this.prevDoor);
}
Links.x.itemCard.EndHover(null, null, this.prevDoor, null, null, true);
this.prevDoor.HoverOut();
this.prevDoor = null;
this.door = null;
}
if (this.prevPuzzle)
{
if (!Records.x.pocketPause)
{
Links.x.hudControl.HighlightPuzzle(false, this.prevPuzzle);
}
else
{
Links.x.combat.HighlightPuzzle(false, this.prevPuzzle);
}
Links.x.itemCard.EndHover(null, null, null, null, this.prevPuzzle, true);
this.prevPuzzle.HoverOut();
this.prevPuzzle = null;
this.puzzle = null;
}
if (this.prevItem)
{
this.prevItem.HoverOut();
Links.x.itemCard.EndHover(this.prevItem, null, null, null, null, false);
this.prevItem = null;
}
}
if (this.prevGameCardCharacter)
{
Links.x.gameCard.EndHover(this.prevGameCardCharacter, false);
this.prevGameCardCharacter.body.Hover(false, true);
this.prevGameCardCharacter = null;
}
this.TurnOffHoverTiles();
}
if (this.joy)
{
if (!Records.x.typing && !Records.x.inMenus && Links.x.main && !Records.x.removeControls && Links.x.gaia.sceneLoaded && !Links.x.creation && !Links.x.pocketWheel.rallyWheelOpen && !Links.x.combat.inPocketAttack && !this.makeCircleMode)
{
if (Links.x.main.IsSentient() && (this.partyItems3Down || this.partyItems4Down) && !this.inPartyDock && !Links.x.pocketWheel.spellbook.activeSelf && !Links.x.pocketWheel.open && !this.gameFeedScrolling && !this.badgeScrolling)
{
this.inPartyDock = true;
Links.x.hudControl.ToggleBothCanvasGroup(true);
Links.x.hudControl.ToggleCanvasGroup(false);
EventSystem.current.SetSelectedGameObject(Links.x.main.portrait.skillBag.weaponTransform.GetChild(1).gameObject);
}
if (this.itemsDown && this.dockDown && Links.x.gameFeed.isOn)
{
if (this.currentEventObject != Links.x.gameFeed.scrollbar.gameObject)
{
EventSystem.current.SetSelectedGameObject(Links.x.gameFeed.scrollbar.gameObject);
this.gameFeedScrolling = true;
Links.x.hudControl.ToggleControllerItemsIcon(false);
if (this.badgeScrolling)
{
Links.x.hudControl.RemoveBadgeNavigation();
this.badgeScrolling = false;
}
}
Links.x.gameFeed.scrollRect.verticalNormalizedPosition += Links.x.fellowship.move.y * 7f * Time.deltaTime;
}
if (this.gameFeedScrolling && (!this.itemsDown || !this.dockDown))
{
EventSystem.current.SetSelectedGameObject(null);
Links.x.hudControl.JoyBox(false);
this.gameFeedScrolling = false;
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.aimHold && this.targetDodgeHold && Links.x.hudControl.GetFirstBadge())
{
if (this.currentEventObject == null || !this.badgeScrolling)
{
GameObject firstBadge = Links.x.hudControl.GetFirstBadge();
if (firstBadge)
{
EventSystem.current.SetSelectedGameObject(firstBadge);
}
}
this.badgeScrolling = true;
Links.x.hudControl.ToggleControllerItemsIcon(false);
this.gameFeedScrolling = false;
}
if (this.badgeScrolling && (!this.aimHold || !this.targetDodgeHold || this.gameFeedScrolling))
{
EventSystem.current.SetSelectedGameObject(null);
Links.x.hudControl.JoyBox(false);
this.badgeScrolling = false;
Links.x.hudControl.RemoveBadgeNavigation();
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.menusDown && Links.x.gameFeed.isOn)
{
Links.x.hudControl.MoveFeedAndNote();
}
}
if (Records.x.typing || Records.x.removeControls || Records.x.dialogue || Records.x.inMenus || !Links.x.gaia.sceneLoaded)
{
if (this.gameFeedScrolling)
{
this.gameFeedScrolling = false;
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.badgeScrolling)
{
this.badgeScrolling = false;
Links.x.hudControl.RemoveBadgeNavigation();
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
}
if (Records.x.inMenus || Records.x.removeControls || !Links.x.gaia.sceneLoaded || (!Records.x.inMenus && !this.makeCircleMode && (this.cancelStart || this.dockDown || this.gameFeedScrolling || (!Records.x.typing && (Links.x.fellowship.move.x != 0f || Links.x.fellowship.move.y != 0f || Links.x.fellowship.move.magnitude > 0.1f || Links.x.fellowship.direction.magnitude > 0.1f || this.party1Down || this.party2Down)))))
{
if (this.makeCircleMode)
{
Links.x.hudControl.ToggleStayBack();
}
if (this.tp1.open)
{
this.tp1.EndMenuStart();
}
if (this.tp2.open)
{
this.tp1.EndMenuStart();
}
if (this.tp3.open)
{
this.tp1.EndMenuStart();
}
if (this.tp4.open)
{
this.tp1.EndMenuStart();
}
if (!Records.x.miniGame && this.inPartyDock && !Records.x.inMenus && !this.descWindowOpen)
{
Links.x.main.portrait.skillBag.TooltipOff();
if (this.currentEventObject != Links.x.gameFeed.scrollbar)
{
EventSystem.current.SetSelectedGameObject(null);
Links.x.hudControl.JoyBox(false);
}
}
this.inPartyDock = false;
if (this.descWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
}
if (!Records.x.typing && !Records.x.inMenus && this.hudLeftStart && !Links.x.pocketWheel.rallyWheelOpen && !Links.x.combat.inPocketAttack)
{
Links.x.hudControl.ToggleLethalityJoystick();
if (Records.x.kill)
{
Links.x.main.StartQuip("Killing blows only");
}
else
{
Links.x.main.StartQuip("Just knock them out");
}
if (this.tp1.open)
{
this.tp1.EndMenuStart();
}
if (this.tp2.open)
{
this.tp1.EndMenuStart();
}
if (this.tp3.open)
{
this.tp1.EndMenuStart();
}
if (this.tp4.open)
{
this.tp1.EndMenuStart();
}
if (this.descWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
}
if (!Records.x.typing && !Records.x.inMenus && this.hudRightStart && !Links.x.pocketWheel.rallyWheelOpen && !Links.x.combat.inPocketAttack && !this.spellTargetingGround && !this.spellcasting && (!Links.x.pocketWheel.open || (Links.x.pocketWheel.open && !Links.x.pocketWheel.targetSelection)))
{
Links.x.hudControl.ToggleStayBack();
if (this.tp1.open)
{
this.tp1.EndMenuStart();
}
if (this.tp2.open)
{
this.tp1.EndMenuStart();
}
if (this.tp3.open)
{
this.tp1.EndMenuStart();
}
if (this.tp4.open)
{
this.tp1.EndMenuStart();
}
if (this.descWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
}
if (this.allMenusStart && !Links.x.spellcrafting.open && !Records.x.miniGame && !this.tp1.open && !this.tp2.open && !this.tp3.open && !this.tp4.open && !Links.x.pocketWheel.rallyWheelOpen && !Links.x.combat.inPocketAttack && !Links.x.questEnd.on && !Records.x.dialogue && !Records.x.inMenus)
{
if (this.gameFeedScrolling)
{
this.gameFeedScrolling = false;
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.badgeScrolling)
{
this.badgeScrolling = false;
Links.x.hudControl.RemoveBadgeNavigation();
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.tp1.open)
{
this.tp1.EndMenuStart();
}
if (this.tp2.open)
{
this.tp1.EndMenuStart();
}
if (this.tp3.open)
{
this.tp1.EndMenuStart();
}
if (this.tp4.open)
{
this.tp1.EndMenuStart();
}
if (this.descWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
string text = this.lastMenuOpened;
if (text == "" || text == null)
{
text = "Character Sheet";
}
if (Links.x.creation)
{
text = "Options";
}
if (text == "Rest")
{
if (Records.x.InCombat(false))
{
text = "Character Sheet";
this.lastMenuOpened = text;
}
else
{
Links.x.rest.StartMenu(true);
}
}
if (text == "Character Sheet")
{
Links.x.characterSheet.StartMenu(false);
}
if (text == "Journal")
{
Links.x.journal.StartMenu();
}
if (text == "Scene Map")
{
Links.x.sceneMap.OpenMenu();
}
if (text == "Options")
{
Links.x.saveLoad.OpenMenu();
}
if (text == "Formation")
{
Links.x.formation.StartMenu();
}
Links.x.hudControl.OpenMenuSwitcher(text);
}
if (Records.x.inMenus && !Records.x.typing && !Links.x.spellcrafting.open)
{
if (this.hudLeftOpen || this.hudRightOpen)
{
this.hudRightOpen = false;
this.hudLeftOpen = false;
this.ToggleControllerGlows();
Links.x.hudControl.ToggleCanvasGroup(false);
}
if (!this.cancelStart && (this.dockStart || this.itemsStart) && !Links.x.creation && !Links.x.characterSheet.levelUpMenu)
{
if (this.gameFeedScrolling)
{
this.gameFeedScrolling = false;
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
if (this.badgeScrolling)
{
this.badgeScrolling = false;
Links.x.hudControl.RemoveBadgeNavigation();
Links.x.hudControl.ToggleControllerItemsIcon(true);
}
string text2 = this.lastMenuOpened;
if (text2 == "" || text2 == null)
{
text2 = "Character Sheet";
}
if (this.dockStart)
{
if (text2 == "Character Sheet")
{
Links.x.sceneMap.OpenMenu();
}
if (text2 == "Scene Map")
{
Links.x.journal.StartMenu();
}
if (text2 == "Journal")
{
Links.x.formation.StartMenu();
}
if (text2 == "Formation")
{
if (Records.x.InCombat(false))
{
text2 = "Rest";
this.lastMenuOpened = text2;
}
else
{
Links.x.rest.StartMenu(true);
}
}
if (text2 == "Rest")
{
Links.x.saveLoad.OpenMenu();
}
if (text2 == "Options")
{
Links.x.characterSheet.StartMenu(false);
}
}
if (this.itemsStart)
{
if (text2 == "Scene Map")
{
Links.x.characterSheet.StartMenu(false);
}
if (text2 == "Journal")
{
Links.x.sceneMap.OpenMenu();
}
if (text2 == "Formation")
{
Links.x.journal.StartMenu();
}
if (text2 == "Rest")
{
Links.x.formation.StartMenu();
}
if (text2 == "Options")
{
if (Records.x.InCombat(false))
{
text2 = "Formation";
Links.x.formation.StartMenu();
this.lastMenuOpened = text2;
}
else
{
Links.x.rest.StartMenu(true);
}
}
if (text2 == "Character Sheet")
{
Links.x.saveLoad.OpenMenu();
}
}
Links.x.hudControl.MenuText();
}
}
}
if (this.joy && this.cancelStart && this.makeCircleMode)
{
Links.x.hudControl.ToggleStayBack();
}
bool inMenus = Records.x.inMenus;
float timeScale = Time.timeScale;
if (this.clickedUpCharacter && (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1) || !Input.GetMouseButton(0) || !Input.GetMouseButton(1)))
{
this.clickedUpCharacter = false;
}
if (this.doLookAt)
{
Vector3 vector10 = this.mousePoint;
vector10.y = Links.x.main.body.headBone.position.y + 0.1f;
this.lookAt.position = Vector3.Lerp(this.lookAt.position, vector10, Time.deltaTime * 30f);
Links.x.main.body.lookAtController.SetNewTarget(this.lookAt, 0f, 0f, false);
}
if (Input.GetMouseButtonUp(0) && this.mk)
{
this.clickStartOnUIHover = false;
}
else if (this.joy)
{
this.clickStartOnUIHover = false;
}
if (this.needsPathParty.Count > 0)
{
this.needsPathParty[0].DoPath(true);
this.needsPathParty.RemoveAt(0);
}
if (this.needsPath.Count > 0)
{
this.needsPath[0].DoPath(true);
this.needsPath.RemoveAt(0);
}
if (this.needsPath.Count > 0)
{
this.needsPath[0].DoPath(true);
this.needsPath.RemoveAt(0);
}
if (this.needsPath.Count > 0)
{
this.needsPath[0].DoPath(true);
this.needsPath.RemoveAt(0);
}
if (this.needsPath.Count > 0)
{
this.needsPath[0].DoPath(true);
this.needsPath.RemoveAt(0);
}
if (!Records.x.removeControls && Links.x.main)
{
Links.x.inventory.groundBag.CheckGroundAndClicks(false);
}
if (((this.mk && Input.GetKeyDown(this.keyCodes[10])) || (this.joy && this.itemsDown && !this.gameFeedScrolling && !Links.x.inventory.groundBag.toggle)) && this.CanInteractWithWorld("Item") && Links.x.hasMain && !Links.x.creation && !Records.x.typing)
{
Links.x.inventory.groundBag.RemoveLabels();
Links.x.inventory.groundBag.firstOpen = true;
Links.x.inventory.groundBag.toggle = true;
Links.x.inventory.groundBag.hudButton.SetImageFromSave();
if (Links.x.hasMain)
{
Links.x.inventory.groundBag.startPosY = Links.x.main.tr.position.y;
}
Links.x.inventory.groundBag.collectorUpdate = true;
Shader.SetGlobalFloat("_HoveringOnItem", 1f);
if (this.prevItem)
{
this.prevItem.HoverOut();
Links.x.itemCard.EndHover(this.prevItem, null, null, null, null, false);
this.prevItem = null;
}
Links.x.inventory.groundBag.CheckGroundAndClicks(true);
}
if ((this.mk && Input.GetKeyUp(this.keyCodes[10])) || (this.joy && (this.itemsUp || this.gameFeedScrolling)))
{
Links.x.inventory.groundBag.toggle = false;
Shader.SetGlobalFloat("_HoveringOnItem", 0f);
Links.x.inventory.groundBag.hudButton.SetImageFromSave();
if (Links.x.joy)
{
Links.x.inventory.groundBag.JoyRemoveToggle();
}
}
if ((this.mk && Input.GetKeyUp(this.keyCodes[33])) || (this.joy && this.itemsUp))
{
Links.x.inventory.groundBag.RemoveHoverTooltip();
}
if (!Records.x.removeControls && !Records.x.typing && !Records.x.mainMenuOpen && !Records.x.inOverworldMap && Links.x.gaia.sceneLoaded && !Links.x.hudControl.descriptionWindowOpen && !this.hudLeftOpen && !this.hudRightOpen && !Records.x.miniGame && !Links.x.pocketWheel.rallyWheelOpen && !Links.x.combat.inPocketAttack)
{
if (!this.uiHover || !this.mk)
{
this.settingFavorite = "";
}
if (this.mk && !Links.x.combat.inPocketAttack && !Records.x.typing)
{
for (int m = 0; m < this.keyCodes.Count; m++)
{
if (this.keyCodes[m] != KeyCode.None && this.keyConverted[m] != "null")
{
if (m == 44 && Input.GetKeyUp(this.keyCodes[m]))
{
Links.x.hudControl.HideShowHud(false);
}
if (Input.GetKeyDown(this.keyCodes[m]))
{
if (m >= 34 && m <= 43)
{
Links.x.pocketWheel.HitKey(m);
}
if (m == 44)
{
Links.x.hudControl.HideShowHud(true);
}
if (m == 0 && Links.x.characterSheet)
{
if (Links.x.characterSheet.contents1.activeSelf)
{
Links.x.characterSheet.StartEndMenu(false, true);
this.CloseDock();
}
else
{
this.openingAnotherMenu = true;
this.CloseAllMenus();
Links.x.characterSheet.StartMenu(false);
this.OpenDock();
}
}
if (m == 1)
{
this.QuickSave();
}
if (m == 6)
{
if (!Links.x.journal.contents1.activeSelf)
{
this.openingAnotherMenu = true;
this.CloseAllMenus();
Links.x.journal.StartMenu();
this.OpenDock();
}
else
{
Links.x.journal.StartEndMenu(true);
this.CloseDock();
}
}
if (m == 7)
{
if (Links.x.sceneMap.contents1.activeSelf)
{
Links.x.sceneMap.StartEndMenu(true);
this.CloseDock();
}
else
{
this.openingAnotherMenu = true;
this.CloseAllMenus();
Links.x.sceneMap.OpenMenu();
this.OpenDock();
}
}
if (m >= 13 && m <= 20 && !this.uiHover)
{
Links.x.hudControl.currentHotkeyButton;
}
}
}
}
}
else if (this.quickSaveStart)
{
this.QuickSave();
}
}
if (!Records.x.inOverworldMap)
{
if (this.coneCharacter)
{
bool flag42 = false;
for (int n = 0; n < this.party.Count; n++)
{
if (this.party[n].body.sneaking)
{
flag42 = true;
}
}
bool flag43 = flag42;
if (this.coneCharacter.dead || this.coneCharacter.stunned || !flag43 || Records.x.dialogue)
{
Links.x.lineOfSightCone.position = this.farPosition;
this.coneCharacter = null;
Links.x.coneEffects.enabled = false;
}
else if (this.coneCharacter)
{
if (this.coneCharacter.moveFollow)
{
Vector3 position = this.coneCharacter.tr.position;
position.y = this.coneCharacter.torsoPosition.y;
Links.x.lineOfSightCone.position = position;
Quaternion quaternion3 = this.coneCharacter.body.tr.rotation;
if (this.coneCharacter.moving)
{
quaternion3 = this.coneCharacter.tr.rotation;
}
Links.x.lineOfSightCone.rotation = Quaternion.Slerp(Links.x.lineOfSightCone.rotation, quaternion3, Time.deltaTime * 25f);
Links.x.coneEffects.enabled = true;
}
else
{
Links.x.lineOfSightCone.position = this.farPosition;
this.coneCharacter = null;
Links.x.coneEffects.enabled = false;
}
}
}
if ((!Records.x.pocketPause || !this.attackingCharacter.CanAttack() || Links.x.combat.inPocketAttack || !this.playerInAction) && Links.x.attackConeEffects.enabled)
{
Links.x.attackConeEffects.enabled = false;
Links.x.attackCone1.position = this.farPosition;
Links.x.attackCone2.position = this.farPosition;
}
}
bool flag44 = false;
if ((this.spellcasting || this.throwingElixir) && (!Records.x.InCombat(false) || (Records.x.InCombat(false) && Records.x.playerTurn) || !Records.x.turnBased) && !Records.x.removeControls)
{
flag44 = true;
if (!this.showingAbilityUI)
{
this.showingAbilityUI = true;
}
}
bool flag45 = !flag44 && flag44;
if (!Records.x.paused && !Records.x.dialogue && !Records.x.pocketPause)
{
float normalizedTime = this.sunlightAnimator.animator.GetCurrentAnimatorStateInfo(0).normalizedTime;
int num9 = (int)Mathf.Floor(this.gameHours);
this.gameMinutes = normalizedTime * 1440f;
this.gameSeconds = this.gameMinutes * 60f;
this.gameHours = this.gameMinutes / 60f;
if (num9 != (int)Mathf.Floor(this.gameHours) && Links.x.gaia.sceneLoaded)
{
if (this.gameHours == 0f)
{
this.SetNewDay();
}
this.NewHourMessages(false);
}
}
if (Input.GetKeyDown(KeyCode.O) && !Records.x.typing && (Records.x.secrets || Records.x.editor) && !Records.x.removeControls)
{
this.TogglePause(true);
this.AddHours();
this.TogglePause(false);
}
if (this.attacking && !this.uiHover && Input.GetMouseButtonUp(0))
{
this.attacking = false;
}
}
if (Links.x.gaia.sceneLoaded)
{
if (this.joy)
{
this.SetAdventureDomeSize();
if (Links.x.options.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.options.SetSlider();
}
if (Links.x.inventory.splitter.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.inventory.splitter.SetSlider();
}
if (Links.x.arrowKit.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.arrowKit.SetSlider();
}
if (Links.x.rest.on && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.rest.UpdateSlider();
}
if (Links.x.formation.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.formation.UpdateSlider();
}
if (Links.x.inventory.enchantMenu.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.inventory.enchantMenu.UpdateSlider();
}
if (Links.x.forfeits.on)
{
Links.x.forfeits.DoUpdate();
}
if (Links.x.spellcrafting.open && Links.x.fellowship.direction.magnitude > 0.25f)
{
Links.x.spellcrafting.UpdateSlider();
}
}
if (this.mk)
{
if (!this.uiHover && !Records.x.inOverworldMap && !this.resizing && !Links.x.hudControl.descriptionWindowOpen)
{
bool flag46 = true;
if (!Links.x.hasMain)
{
flag46 = false;
}
if (this.hitCharacter && this.character && flag46 && !this.charming)
{
bool flag47 = false;
if (!this.character.npc)
{
flag47 = true;
}
if (this.character.stunned && !Records.x.kill)
{
flag47 = true;
}
if (this.spellTargetingGround || this.targetingGroundCharacterHover)
{
flag47 = true;
}
if (!Records.x.pocketPause)
{
flag47 = true;
}
if (Records.x.pocketPause && !Links.x.combat.CanAttackTarget(this.character))
{
flag47 = true;
}
if (flag47 || (!Records.x.InCombat(false) && this.character.hostility < 2 && !Records.x.pocketPause && !this.character.attackingUntilBribe))
{
if (this.character.isBoro || (this.character.npc && this.character.hostility < 2 && !this.character.attackingUntilBribe && !this.character.sleeping && !this.character.dayNightVanishing && this.character.stats.dialogueFile != ""))
{
if (this.character.stats.dialogueFile != "Quip")
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Talk", false);
}
else
{
Links.x.SetCursor("TalkDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (this.spellcasting || (this.character.npc && this.spellTargetingEnemy) || (!this.character.npc && this.spellTargetingParty))
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Spell", false);
}
else
{
Links.x.SetCursor("SpellDown", false);
}
}
else if (flag47 || this.character.sleeping)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Point", false);
}
else
{
Links.x.SetCursor("PointDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (this.spellcasting || (this.character.npc && this.spellTargetingEnemy) || (!this.character.npc && this.spellTargetingParty))
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Spell", false);
}
else
{
Links.x.SetCursor("SpellDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Attack", false);
}
else
{
Links.x.SetCursor("AttackDown", false);
}
}
else if (this.hitItem)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (this.hitExit)
{
bool flag48 = true;
bool flag49 = false;
if (this.exit && (this.exit.mapExit.exitTo == MapExit.exitToNames.Interiors || this.exit.mapExit.exitTo == MapExit.exitToNames.Exterior))
{
flag49 = true;
flag48 = false;
}
if (flag49)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (flag48)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (this.hitInteractable)
{
if (this.spellcasting)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Spell", false);
}
else
{
Links.x.SetCursor("SpellDown", false);
}
}
else if (this.throwingElixir)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Elixir", false);
}
else
{
Links.x.SetCursor("ElixirDown", false);
}
}
else if (this.breakable)
{
if (this.breakable.resourceLocation == -1)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Attack", false);
}
else
{
Links.x.SetCursor("AttackDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (this.chest || this.door || this.puzzle)
{
if (!Records.x.pocketPause)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Interact", false);
}
else
{
Links.x.SetCursor("InteractDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Attack", false);
}
else
{
Links.x.SetCursor("AttackDown", false);
}
}
}
else if (this.charming)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Charm", false);
}
else
{
Links.x.SetCursor("CharmDown", false);
}
}
else if (!this.attacking && !this.spellcasting && !this.charming && !this.mouseWormVisible && !this.mouseVisible)
{
Links.x.SetCursor("NoSee", false);
}
else if (this.attacking && flag46)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Attack", false);
}
else
{
Links.x.SetCursor("AttackDown", false);
}
}
else if (this.spellcasting && flag46)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Spell", false);
}
else
{
Links.x.SetCursor("SpellDown", false);
}
}
else if (this.throwingElixir && flag46)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Elixir", false);
}
else
{
Links.x.SetCursor("ElixirDown", false);
}
}
else if (this.makeCircleMode)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Circle", false);
}
else
{
Links.x.SetCursor("CircleDown", false);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Point", false);
}
else
{
Links.x.SetCursor("PointDown", false);
}
}
else
{
bool flag50 = false;
if (!this.resizing)
{
if (Links.x.inventory.repairing)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Repair", true);
}
else
{
Links.x.SetCursor("RepairDown", true);
}
}
else if (Links.x.inventory.mineralizing)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Mineral", true);
}
else
{
Links.x.SetCursor("MineralDown", true);
}
}
else if (Records.x.portraitDragging || Links.x.inventory.dragging || Links.x.keyControl.dragging || Links.x.journal.dragging || Links.x.inventory.spinning || Links.x.formation.dragging)
{
if (!Input.GetMouseButtonUp(0))
{
Links.x.SetCursor("Use", true);
}
else
{
Links.x.SetCursor("UseDown", true);
}
}
else if (this.settingFavorite != "" && Links.x.currentSkillHover)
{
if (!Input.GetMouseButtonUp(0))
{
Links.x.SetCursor("SetFavorite", true);
}
else
{
Links.x.SetCursor("SetFavoriteDown", true);
}
}
else if (!Links.x.previousCursor.Contains("Resiz") && !Links.x.previousCursor.Contains("Window Drag"))
{
if ((flag50 || Records.x.typing) && !this.uiCanClick)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("Write", true);
}
else
{
Links.x.SetCursor("WriteDown", true);
}
}
else if (this.uiCanClick)
{
if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("UIInteract", true);
}
else
{
Links.x.SetCursor("UIInteractDown", true);
}
}
else if (!Input.GetMouseButton(0))
{
Links.x.SetCursor("UIPoint", true);
}
else
{
Links.x.SetCursor("UIPointDown", true);
}
}
}
}
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
else if (this.currentControllerCount > 0)
{
Cursor.visible = false;
if (Records.x.editor)
{
Cursor.lockState = CursorLockMode.Locked;
}
else
{
Cursor.lockState = CursorLockMode.Locked;
}
Links.x.SetCursor("EmptyCursor", true);
}
}
this.prevTriggerAction = this.triggerAction;
this.prevTriggerInteract = this.triggerInteract;
this.prevTriggerItems = this.triggerItems;
this.prevTriggerDodge = this.triggerDodge;
this.prevTriggerAim = this.triggerAim;
this.prevTriggerDock = this.triggerDock;
this.prevTriggerCancel = this.triggerCancel;
this.prevTriggerAllMenus = this.triggerAllMenus;
this.prevTriggerQuickSave = this.triggerQuickSave;
this.prevTriggerParty1 = this.triggerParty1;
this.prevTriggerParty2 = this.triggerParty2;
this.prevTriggerPartyItems3 = this.triggerPartyItems3;
this.prevTriggerPartyItems4 = this.triggerPartyItems4;
this.prevTriggerMenus = this.triggerMenus;
this.prevTriggerHudRight = this.triggerHudRight;
this.prevTriggerHudLeft = this.triggerHudLeft;
}
// Token: 0x0600075F RID: 1887 RVA: 0x000A664C File Offset: 0x000A484C
public void CheckIfAnythingShouldRedoMultiTargetHover()
{
if (Records.x.pocketPause && (Links.x.pocketWheel.selected.Contains("Light") || Links.x.pocketWheel.selected.Contains("Special")) && this.character)
{
this.character.body.Hover(true, true);
}
}
// Token: 0x06000760 RID: 1888 RVA: 0x000A66BA File Offset: 0x000A48BA
public void ChangeScene()
{
this.needsPath.Clear();
this.needsPathParty.Clear();
this.RemoveSpellTargets();
this.actionCharacter = null;
}
// Token: 0x06000761 RID: 1889 RVA: 0x000A66DF File Offset: 0x000A48DF
public void ToggleControllerGlows()
{
}
// Token: 0x06000762 RID: 1890 RVA: 0x000A66E1 File Offset: 0x000A48E1
private void AllOff()
{
}
// Token: 0x06000763 RID: 1891 RVA: 0x000A66E3 File Offset: 0x000A48E3
public void FindDockGlowParent()
{
}
// Token: 0x06000764 RID: 1892 RVA: 0x000A66E8 File Offset: 0x000A48E8
public void AttackInteractive()
{
if (!Records.x.pocketPause && Records.x.InCombat(false) && Links.x.combat.npcsInCombat)
{
this.PocketPause(true);
}
this.clickedCharacter = null;
this.WorldClick();
this.domeParty = null;
this.domeEnemy = null;
this.NewPaths();
this.ClearInteractionNodes();
this.targetingCharacter = null;
GameObject gameObject = null;
GraphNode graphNode = null;
Vector3 vector = Vector3.zero;
if (this.breakable)
{
gameObject = this.breakable.gameObject;
vector = gameObject.transform.position;
graphNode = this.breakable.node;
}
else if (this.chest)
{
gameObject = this.chest.gameObject;
vector = gameObject.transform.position;
graphNode = this.chest.node;
}
else if (this.puzzle)
{
gameObject = this.puzzle.gameObject;
vector = gameObject.transform.position;
graphNode = this.puzzle.node;
}
else if (this.door)
{
gameObject = this.door.gameObject;
vector = gameObject.transform.position;
if (this.door.node == null)
{
this.door.GetNode();
}
if (this.door.node != null)
{
graphNode = this.door.node;
vector = (Vector3)graphNode.position;
}
}
else if (this.mapDoor)
{
gameObject = this.mapDoor.gameObject;
vector = gameObject.transform.position;
if (this.mapDoor.node == null)
{
this.mapDoor.GetNode();
}
if (this.mapDoor.node != null)
{
graphNode = this.mapDoor.node;
vector = (Vector3)graphNode.position;
}
}
if (gameObject)
{
Character character = this.MakeObjectCharacter(graphNode, gameObject, vector);
Character character2 = Links.x.main;
if (Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.selectedRallyCharacter)
{
character2 = Links.x.pocketWheel.selectedRallyCharacter;
}
character2.UpdateLKP(character, character.node, "Attack", true);
if (!character2.hasActions)
{
Links.x.combat.GivePartyActions(character2, false);
if (!Records.x.combat)
{
Links.x.combat.StartCombat(null, character2, true, true);
}
}
if (Links.x.combat.inPocketAttack)
{
this.rallyTargetInteractiveSelected = gameObject;
}
else
{
if (Links.x.pocketWheel.rallyWheelOpen)
{
this.rallyTargetInteractiveSelected = gameObject;
}
if (Links.x.pocketWheel.selected == "Heavy Attack")
{
character2.actions.SelectCharge(character);
}
else
{
character2.actions.SelectActionRealTime(null, gameObject);
}
}
if (!character2.HasAmmoOrMelee(character2.invRow1, false))
{
Links.x.gameFeed.AddFeed(this.character.stats.displayName + " is out of " + character2.GetAmmoType());
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround || this.spellTargetingParty || this.spellTargetingEnemy)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
}
// Token: 0x06000765 RID: 1893 RVA: 0x000A6A5C File Offset: 0x000A4C5C
public Character MakeObjectCharacter(GraphNode nearNode, GameObject obj, Vector3 center)
{
Character character = obj.GetComponent<Character>();
if (!character)
{
character = obj.AddComponent<Character>();
character.enabled = false;
}
character.npc = true;
character.hostility = 2;
character.interactiveObject = true;
character.tr = obj.transform;
if (this.door)
{
if (!this.door.point)
{
this.door.SetupExits();
}
character.tr = this.door.point.transform;
}
if (this.mapDoor)
{
character.tr = this.mapDoor.point.transform;
}
character.attackRadius = 1f;
if (nearNode == null && character.node != null)
{
nearNode = character.node;
}
if (nearNode == null)
{
this.nodeConstraint.constrainWalkability = true;
this.nodeConstraint.walkable = true;
this.nodeConstraint.constrainPenalty = 0;
this.nodeConstraint.constrainTags = false;
this.nodeConstraint.checkCircleID = 0;
this.nodeConstraint.passID = 0;
this.nodeConstraint.passID2 = 0;
this.nodeConstraint.checkConnections = 0;
this.nodeConstraint.constrainToArea = -1;
nearNode = AstarPath.active.GetNearest(center, this.nodeConstraint).node;
}
character.currentPosition = center;
character.node = nearNode;
return character;
}
// Token: 0x06000766 RID: 1894 RVA: 0x000A6BC4 File Offset: 0x000A4DC4
public void RemoveSpellTargets()
{
this.spellTargetingGround = false;
this.spellcasting = false;
this.spellTargetingEnemy = false;
this.spellTargetingParty = false;
Shader.SetGlobalFloat("_TargetingParty", 0f);
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.spellPaganRow = null;
}
// Token: 0x06000767 RID: 1895 RVA: 0x000A6C12 File Offset: 0x000A4E12
private void LateUpdate()
{
this.SetJoystickTargetPosition();
if (this.startPocketPause)
{
this.PocketPause(true);
this.startPocketPause = false;
}
if (this.mk && Input.GetMouseButtonUp(0))
{
this.resizing = false;
}
}
// Token: 0x06000768 RID: 1896 RVA: 0x000A6C48 File Offset: 0x000A4E48
public bool WormVisible(Vector3 pt)
{
if (Links.x.rtsCamera.currentBoundsName == "")
{
return Links.x.fogOfWar.IsVisibleWorm(pt);
}
return Links.x.fogOfWarInterior.IsVisibleWorm(pt);
}
// Token: 0x06000769 RID: 1897 RVA: 0x000A6C9C File Offset: 0x000A4E9C
private bool CanInteractWithWorld(string type)
{
if (Links.x.rtsCamera.inspecting)
{
return false;
}
if (Links.x.rtsCamera.panning)
{
return false;
}
if (Records.x.dialogue)
{
return false;
}
if (Records.x.inMenus)
{
return false;
}
if (Links.x.fellowship.drawingSquare)
{
return false;
}
if (this.makeCircleMode)
{
return false;
}
if (this.resizing)
{
return false;
}
if (this.joy)
{
return !Records.x.typing;
}
return !this.uiHover && (!Records.x.removeControls || (Links.x.combat.inPocketAttack && Links.x.pocketWheel.rallyWheelOpen && (type == "Character" || type == "Interactive Object")));
}
// Token: 0x0600076A RID: 1898 RVA: 0x000A6D84 File Offset: 0x000A4F84
public void SetNewDay()
{
this.gameSeconds = 0f;
this.gameMinutes = 0f;
this.gameHours = 0f;
this.gameDays++;
this.GetTimeOfDay();
Debug.Log("New Day " + this.gameDays.ToString());
}
// Token: 0x0600076B RID: 1899 RVA: 0x000A6DE0 File Offset: 0x000A4FE0
public void GetTimeOfDay()
{
if ((this.gameHours >= 0f && this.gameHours < 4f) || this.gameHours >= 22f)
{
this.timeOfDay = "Morning";
}
if (this.gameHours >= 4f && this.gameHours < 10f)
{
this.timeOfDay = "Afternoon";
}
if (this.gameHours >= 10f && this.gameHours < 16f)
{
this.timeOfDay = "Evening";
}
if (this.gameHours >= 16f && this.gameHours < 22f)
{
this.timeOfDay = "Night";
}
Links.x.hudControl.SetTimeOfDay(Mathf.Floor(this.gameHours));
}
// Token: 0x0600076C RID: 1900 RVA: 0x000A6EA8 File Offset: 0x000A50A8
public bool IsNight()
{
return this.gameHours >= 16f && this.gameHours < 22f;
}
// Token: 0x0600076D RID: 1901 RVA: 0x000A6EC7 File Offset: 0x000A50C7
public bool IsEvening()
{
return this.gameHours >= 10f && this.gameHours < 16f;
}
// Token: 0x0600076E RID: 1902 RVA: 0x000A6EE6 File Offset: 0x000A50E6
public bool IsAfternoon()
{
return this.gameHours >= 4f && this.gameHours < 10f;
}
// Token: 0x0600076F RID: 1903 RVA: 0x000A6F08 File Offset: 0x000A5108
public bool IsDay()
{
return (this.gameHours >= 0f && this.gameHours < 4f) || this.gameHours >= 22f || (this.gameHours >= 4f && this.gameHours < 10f) || (this.gameHours >= 10f && this.gameHours < 16f) || this.gameHours < 16f || this.gameHours >= 22f;
}
// Token: 0x06000770 RID: 1904 RVA: 0x000A6F94 File Offset: 0x000A5194
public void LoadGameTime()
{
float num = this.sunlightAnimator.ChangeTime(this.gameSeconds);
this.gameMinutes = num * 1440f;
this.gameSeconds = this.gameMinutes * 60f;
this.gameHours = this.gameMinutes / 60f;
this.GetTimeOfDay();
this.UpdateTimeText();
}
// Token: 0x06000771 RID: 1905 RVA: 0x000A6FF0 File Offset: 0x000A51F0
public void UpdateTimeText()
{
this.str.Clear();
this.str.Append("Day ");
this.str.Append(this.gameDays);
this.str.Append(", ");
float num = Mathf.Floor(this.gameHours);
string text = this.ShowHour(num);
this.str.Append(text);
this.timeText.text = this.str.ToString();
}
// Token: 0x06000772 RID: 1906 RVA: 0x000A7074 File Offset: 0x000A5274
public string ShowHour(float h)
{
string text = "";
if (h == 22f)
{
text = "6 in the morning";
}
if (h == 23f)
{
text = "7 in the morning";
}
if (h == 0f)
{
text = "8 in the morning";
}
if (h == 1f)
{
text = "9 in the morning";
}
if (h == 2f)
{
text = "10 in the morning";
}
if (h == 3f)
{
text = "11 in the morning";
}
if (h == 4f)
{
text = "12 in the afternoon";
}
if (h == 5f)
{
text = "1 in the afternoon";
}
if (h == 6f)
{
text = "2 in the afternoon";
}
if (h == 7f)
{
text = "3 in the afternoon";
}
if (h == 8f)
{
text = "4 in the afternoon";
}
if (h == 9f)
{
text = "5 in the afternoon";
}
if (h == 10f)
{
text = "6 in the evening";
}
if (h == 11f)
{
text = "7 in the evening";
}
if (h == 12f)
{
text = "8 in the evening";
}
if (h == 13f)
{
text = "9 in the evening";
}
if (h == 14f)
{
text = "10 in the evening";
}
if (h == 15f)
{
text = "11 in the evening";
}
if (h == 16f)
{
text = "12 at night";
}
if (h == 17f)
{
text = "1 at night";
}
if (h == 18f)
{
text = "2 at night";
}
if (h == 19f)
{
text = "3 at night";
}
if (h == 20f)
{
text = "4 at night";
}
if (h == 21f)
{
text = "5 at night";
}
return text;
}
// Token: 0x06000773 RID: 1907 RVA: 0x000A71D8 File Offset: 0x000A53D8
public void AddHours()
{
int num = 1;
this.gameSeconds += 3600f * (float)num;
float num2 = this.sunlightAnimator.ChangeTime(this.gameSeconds);
this.gameMinutes = num2 * 1440f;
this.gameSeconds = this.gameMinutes * 60f;
this.gameHours = this.gameMinutes / 60f;
if (this.gameHours >= 24f)
{
this.gameHours = 0f;
this.SetNewDay();
}
if (Records.x.editor)
{
Debug.Log("Hour is " + this.GetCurrentGameTimeHours().ToString());
}
this.NewHourMessages(true);
}
// Token: 0x06000774 RID: 1908 RVA: 0x000A7290 File Offset: 0x000A5490
public void NewHourMessages(bool timeJump)
{
this.GetTimeOfDay();
Records.x.CheckHourForQuestTimers();
Records.x.CheckHourForStunnedBadges();
Links.x.diorama.ChangeTimeOfDay(true, timeJump);
Links.x.ChangeTimeOfDay();
this.UpdateTimeText();
Links.x.diorama.CheckQuestActivations();
Links.x.inventory.NewHour();
Links.x.hudControl.UpdateStunHours();
Links.x.hudControl.UpdateBribeHours();
if (timeJump)
{
Links.x.diorama.TimeJump();
}
}
// Token: 0x06000775 RID: 1909 RVA: 0x000A7326 File Offset: 0x000A5526
public int GetCurrentGameTime()
{
return 0 + this.gameDays * 24 * 60 * 60 + (int)Mathf.Floor(this.gameMinutes);
}
// Token: 0x06000776 RID: 1910 RVA: 0x000A7346 File Offset: 0x000A5546
public float Seconds()
{
return 0f + (float)this.gameDays * 24f * 60f * 60f + Mathf.Floor(this.gameSeconds);
}
// Token: 0x06000777 RID: 1911 RVA: 0x000A7373 File Offset: 0x000A5573
public int GetCurrentGameTimeHours()
{
return 0 + this.gameDays * 24 + (int)Mathf.Floor(this.gameHours);
}
// Token: 0x06000778 RID: 1912 RVA: 0x000A7390 File Offset: 0x000A5590
public void SelectRallyCharacter(Character c)
{
Links.x.combat.pickingRally = true;
Links.x.main.portrait.AnimatorSynergy();
c.portrait.AnimatorSynergy();
MasterAudio.PlaySoundAndForget("Synergy", 1f, new float?(1f), 0f, "", null);
Shader.SetGlobalFloat("_Combat", 2f);
Links.x.combat.rallyCharacter = c;
this.SetDomeSize();
Links.x.combat.UpdateRallyVisuals();
if (this.joy)
{
this.GetControllerTarget(false);
}
Links.x.pocketWheel.Select("Light Attack");
if (Links.x.mk)
{
Links.x.pocketWheel.Close(false);
}
}
// Token: 0x06000779 RID: 1913 RVA: 0x000A746C File Offset: 0x000A566C
public void GetControllerTarget(bool first)
{
bool flag = false;
if (Links.x.pocketWheel.selected == "Special Attack 1" && Links.x.pocketWheel.canTarget)
{
flag = true;
}
if (!flag && (Links.x.main.inAction || Links.x.main.inRecovery || Links.x.main.inQueuedAbility || !Links.x.main.CanAttack() || (Links.x.pocketWheel.selected == "Special Attack 1" && !Links.x.pocketWheel.canTarget)))
{
this.domeEnemy = null;
this.domeParty = null;
this.domeBreakable = null;
this.domeChest = null;
this.domePuzzle = null;
this.domeDoor = null;
return;
}
if ((!flag && !Links.x.main.CanAttack()) || (!(Links.x.pocketWheel.selected == "Light Attack") && !(Links.x.pocketWheel.selected == "Medium Attack") && !(Links.x.pocketWheel.selected == "Heavy Attack") && (!(Links.x.pocketWheel.selected == "Special Attack 1") || !Links.x.pocketWheel.canTarget) && !Links.x.pocketWheel.Charming() && (!(Links.x.pocketWheel.selected == "Spellbag") || (!this.spellTargetingParty && !this.spellTargetingEnemy))))
{
this.domeEnemy = null;
this.domeParty = null;
this.domeBreakable = null;
this.domeChest = null;
this.domePuzzle = null;
this.domeDoor = null;
return;
}
Links.x.combat.GetJoystickTarget(out this.domeEnemy, out this.domeParty, out this.domeBreakable, out this.domeChest, out this.domeDoor, out this.domePuzzle, new Vector2(0f, 0f), first);
if ((flag || Links.x.pocketWheel.targetSelection) && (this.domeEnemy || this.domeParty || this.domeBreakable || this.domeChest || this.domeDoor) && !this.joystickTarget.activeSelf)
{
this.joystickTarget.SetActive(true);
}
this.SetJoystickTargetPosition();
}
// Token: 0x0600077A RID: 1914 RVA: 0x000A7708 File Offset: 0x000A5908
public void SetJoystickTargetActive()
{
bool flag = false;
if (Links.x.pocketWheel.selected == "Special Attack 1" && Links.x.pocketWheel.canTarget)
{
flag = true;
}
if ((flag || Links.x.pocketWheel.targetSelection) && (this.domeEnemy || this.domeParty || this.domeBreakable || this.domeChest || this.domeDoor) && !this.joystickTarget.activeSelf)
{
this.joystickTarget.SetActive(true);
}
this.SetJoystickTargetPosition();
}
// Token: 0x0600077B RID: 1915 RVA: 0x000A77BC File Offset: 0x000A59BC
private void SetJoystickTargetPosition()
{
if (this.joystickTarget.activeSelf && Links.x.pocketWheel.targetSelection)
{
Vector3 vector = Vector3.zero;
GameObject gameObject = null;
float num = 0f;
if (!Links.x.worldCamera.orthographic)
{
num = -1f;
}
if (this.domeEnemy)
{
gameObject = this.domeEnemy.body.bracket;
vector = this.domeEnemy.body.GetNeck().position + new Vector3(0f, 2.1f, 0f);
Links.x.rtsCamera.joyTarget = this.domeEnemy.gameObject;
if (Links.x.gameCard.hoverCharacter == this.domeEnemy && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (this.domeParty)
{
gameObject = this.domeParty.body.bracket;
vector = this.domeParty.body.GetNeck().position + new Vector3(0f, 2.1f, 0f);
Links.x.rtsCamera.joyTarget = this.domeParty.gameObject;
if (Links.x.gameCard.hoverCharacter == this.domeEnemy && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (this.domeDoor)
{
gameObject = this.domeDoor.bracket;
vector = this.domeDoor.lockColliderPosition + new Vector3(0f, 0.5f, 0f);
Links.x.rtsCamera.joyTarget = this.domeDoor.gameObject;
if (Links.x.itemCard.hoverDoor == this.domeDoor && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (this.domeChest)
{
gameObject = this.domeChest.bracket;
vector = this.domeChest.transform.position + new Vector3(0f, 1.5f, 0f);
Links.x.rtsCamera.joyTarget = this.domeChest.gameObject;
if (Links.x.itemCard.hoverChest == this.domeChest && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (this.domeBreakable)
{
gameObject = this.domeBreakable.bracket;
vector = this.domeBreakable.transform.position + new Vector3(0f, 1.5f, 0f);
Links.x.rtsCamera.joyTarget = this.domeBreakable.gameObject;
if (Links.x.itemCard.hoverBreakable == this.domeBreakable && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (this.domePuzzle)
{
gameObject = this.domePuzzle.bracket;
vector = this.domePuzzle.transform.position + new Vector3(0f, 1.5f, 0f);
Links.x.rtsCamera.joyTarget = this.domePuzzle.gameObject;
if (Links.x.itemCard.hoverPuzzle == this.domePuzzle && Links.x.gameCard.controlsText.text != "")
{
num += 0.5f;
}
}
if (gameObject)
{
vector = Vector3.Lerp(gameObject.transform.GetChild(0).transform.position, gameObject.transform.GetChild(1).transform.position, 0.5f);
}
this.SetPositionAtWorldPoint(vector + new Vector3(0f, 1.5f + num, 0f), this.joystickTargetRT);
}
}
// Token: 0x0600077C RID: 1916 RVA: 0x000A7C60 File Offset: 0x000A5E60
public void PocketPause(bool state)
{
if (!state && (Links.x.combat.inPocketAttack || Links.x.combat.inRally))
{
return;
}
if (state && Records.x.miniGame)
{
return;
}
if (!state)
{
this.domeEnemy = null;
this.domeParty = null;
if (Records.x.pocketPause)
{
MasterAudio.PlaySoundAndForget("Remove Pause", 1f, new float?(1f), 0f, "", null);
}
if (Links.x.joy)
{
Links.x.rtsCamera.Zoom(false, "TargetSelect");
Links.x.rtsCamera.targetSelecting = false;
}
Records.x.pocketPause = false;
Links.x.hudControl.RemoveAllHighlights();
Links.x.cameraEffects.combatTime = 0f;
this.updateGameTime = Time.timeSinceLevelLoad + this.pausedTime;
Links.x.rtsCamera.joyTarget = null;
Links.x.attackDome.SetActive(false);
if (!Records.x.InCombat(false))
{
if (!Links.x.combat.attackingInteractiveOutsideOfCombat)
{
Links.x.hudControl.ToggleAttackTimer(false);
}
else
{
Links.x.hudControl.ToggleAttackTimer(true);
}
}
Links.x.main.body.lookAtController.EndLook();
this.doLookAt = false;
Links.x.combat.ClearPossibleTargets();
Links.x.cameraEffects.EndPocket();
Links.x.rtsCamera.Zoom(false, "Combat");
Links.x.partyColliderAdventure.gameObject.transform.localScale = new Vector3(1f, 1f, 1f);
Links.x.partyColliderAdventure.UpdatePocket();
this.joystickTarget.SetActive(false);
foreach (Character character in this.party)
{
if (!character.mainSelected)
{
character.body.SeeThroughColliders(false);
}
if (character.portrait)
{
character.portrait.skillBag.UpdateAbilityTriggers();
character.portrait.SetActionBar(character.attackTime);
character.portrait.skillBag.SetSelectedState();
}
character.body.CombatSheen(0);
}
this.SetDomeSize();
Shader.SetGlobalFloat("_Combat", 0f);
Links.x.main.body.CombatSheen(0);
if (Links.x.combat.inRally || Links.x.combat.pickingRally)
{
Links.x.main.portrait.AnimatorSynergyDone();
if (Links.x.combat.rallyCharacter)
{
Links.x.combat.rallyCharacter.portrait.AnimatorSynergyDone();
}
}
Links.x.combat.pickingRally = false;
Links.x.combat.inRally = false;
Links.x.combat.rallyCharacter = null;
if (!Records.x.InCombat(false))
{
Links.x.combat.pocketTarget = null;
}
Links.x.attackDomeMinimum.SetActive(false);
Links.x.main.animator.SetFloat("Combat Variation", 1f);
Links.x.pocketWheel.Close(false);
Links.x.main.portrait.SetActionBar(Links.x.main.attackTime);
if (!Records.x.InCombat(false))
{
Links.x.combat.ClearPossibleTargets();
Links.x.main.inAction = false;
Links.x.main.inRecovery = false;
}
Links.x.partyColliderAdventure.PocketEnd();
Shader.SetGlobalFloat("_AttackTime", 1f);
Links.x.sensory.SetUpPocketPause();
if (Links.x.main.timelineIcon)
{
Links.x.main.timelineIcon.overridePause = false;
}
Links.x.main.NeedToUpdateSailingAnimator(false);
}
else if (state)
{
Links.x.hudControl.ToggleAttackTimer(true);
Shader.SetGlobalFloat("_NoCharacterFX", 0f);
float num = Links.x.main.attackTime;
if (!Links.x.main.CanAttack())
{
num = 0f;
}
if (Links.x.combat.bubbleEvent)
{
num = 1f;
}
Shader.SetGlobalFloat("_AttackTime", num);
if (this.descWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
Links.x.combat.rallyCharacter = null;
Links.x.partyColliderAdventure.gameObject.transform.localScale = Vector3.zero;
if (!Records.x.pocketPause)
{
MasterAudio.PlaySoundAndForget("Pause", 1f, new float?(1f), 0f, "", null);
}
Records.x.pocketPause = true;
Links.x.hudControl.RemoveAllHighlights();
Links.x.cameraEffects.combatTime = 0f;
this.doLookAt = false;
this.pausedTime = Time.timeSinceLevelLoad - this.updateGameTime;
if ((!Links.x.combat.miniEvent || Links.x.combat.bubbleEvent) && !Links.x.combat.inPocketAttack && !Records.x.removeControls)
{
Links.x.attackDome.SetActive(true);
}
else
{
Links.x.attackDome.SetActive(false);
}
this.SetDomeSize();
Links.x.main.EndTurning(true);
Links.x.main.currentTargetIndex = -1;
if (this.joy)
{
this.joystickTargetIcon.text = "<sprite=" + this.GetControllerSprite("Action", Links.x.gameplay.controllerName).ToString() + ">";
}
Links.x.combat.GetTargets(true, false, null);
if (!Links.x.combat.miniEvent && this.joy)
{
this.GetControllerTarget(true);
}
foreach (Character character2 in this.party)
{
if (!this.spellTargetingParty && !Links.x.combat.CharacterHasSynergy(character2))
{
character2.body.SeeThroughColliders(false);
}
else
{
character2.body.SeeThroughColliders(true);
}
if (character2.portrait)
{
character2.portrait.SetActionBar(character2.attackTime);
character2.portrait.skillBag.UpdateAbilityTriggers();
character2.portrait.skillBag.SetSelectedState();
}
}
if (this.character && this.joy && Links.x.pocketWheel.targetSelection && !Links.x.combat.miniEvent && (this.domeEnemy || this.domeParty))
{
this.joystickTarget.SetActive(true);
if (this.domeEnemy)
{
this.SetPositionAtWorldPoint(this.domeEnemy.body.GetNeck().position + new Vector3(0f, 2.1f, 0f), this.joystickTargetRT);
}
else
{
this.SetPositionAtWorldPoint(this.domeParty.body.GetNeck().position + new Vector3(0f, 2.1f, 0f), this.joystickTargetRT);
}
}
if (!Links.x.combat.miniEvent)
{
Links.x.partyColliderAdventure.UpdatePocket();
Links.x.partyColliderAdventure.PocketStart();
Shader.SetGlobalFloat("_Combat", 1f);
Links.x.main.body.CombatSheen(1);
Links.x.main.animator.SetBool("Combat", true);
Links.x.main.animator.SetFloat("Combat Variation", 0f);
}
if (Links.x.main.moving)
{
Links.x.main.TargetReached();
}
if (Links.x.main.CanAttack() && !Links.x.combat.miniEvent)
{
Links.x.pocketWheel.Open(Links.x.main);
}
Links.x.main.portrait.SetActionBar(Links.x.main.attackTime);
if (this.gameFeedScrolling)
{
this.gameFeedScrolling = false;
}
if (this.badgeScrolling)
{
this.badgeScrolling = false;
Links.x.hudControl.RemoveBadgeNavigation();
}
if (!Links.x.domeAnimator.GetCurrentAnimatorStateInfo(0).IsName("DomeLoop"))
{
Links.x.domeAnimator.Play("DomeStart");
Links.x.domeAnimator.Update(0f);
}
Links.x.main.NeedToUpdateSailingAnimator(false);
}
Links.x.sensory.SetUpPocketPause();
}
// Token: 0x0600077D RID: 1917 RVA: 0x000A865C File Offset: 0x000A685C
public void SetDomeSize()
{
if (!Links.x.hasMain)
{
return;
}
if (Records.x.removeControls && !Links.x.combat.bubbleEvent)
{
return;
}
if (this.spellTargetingGround || this.spellTargetingParty || this.spellTargetingEnemy || Links.x.pocketWheel.Charming())
{
float num = Links.x.main.stats.SpellRadius(this.spellPaganRow);
Links.x.attackDome.transform.localScale = new Vector3(num, num, num);
Links.x.partyColliderCombat.SetRadius(num);
Shader.SetGlobalFloat("_BubbleSize", num);
if (Links.x.main)
{
Shader.SetGlobalVector("_BubblePosition", Links.x.main.tr.position + new Vector3(0f, 3f, 0f));
if (Records.x.pocketPause)
{
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
}
Links.x.attackDomeMinimum.SetActive(false);
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
else if (Links.x.combat.bubbleEvent)
{
float num2 = Links.x.combat.bubbleEventTarget.AttackRange();
Vector3 currentPosition = Links.x.combat.bubbleEventTarget.currentPosition;
Links.x.attackDome.transform.localScale = new Vector3(num2, num2, num2);
Shader.SetGlobalFloat("_BubbleSize", num2);
Shader.SetGlobalVector("_BubblePosition", currentPosition + new Vector3(0f, 3f, 0f));
Links.x.attackDome.transform.position = currentPosition;
Links.x.attackDomeMinimum.SetActive(false);
}
else if (Links.x.pocketWheel.selected.Contains("Medium Attack"))
{
float num3 = 3.5f;
Links.x.attackDome.transform.localScale = new Vector3(num3, num3, num3);
Links.x.partyColliderCombat.SetRadius(num3);
Shader.SetGlobalFloat("_BubbleSize", num3);
if (Links.x.main)
{
Shader.SetGlobalVector("_BubblePosition", Links.x.main.tr.position + new Vector3(0f, 3f, 0f));
if (Records.x.pocketPause)
{
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
}
Links.x.attackDomeMinimum.SetActive(false);
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
else if (Links.x.pocketWheel.selected.Contains("Heavy Attack"))
{
float num4 = 7f;
Links.x.attackDome.transform.localScale = new Vector3(num4, num4, num4);
Links.x.partyColliderCombat.SetRadius(num4);
Shader.SetGlobalFloat("_BubbleSize", num4);
if (Links.x.main)
{
Shader.SetGlobalVector("_BubblePosition", Links.x.main.tr.position + new Vector3(0f, 3f, 0f));
if (Records.x.pocketPause)
{
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
}
Links.x.attackDomeMinimum.SetActive(false);
Links.x.attackDome.transform.position = Links.x.main.tr.position;
}
else if (Links.x.combat.pickingRally)
{
float num5 = Links.x.combat.rallyCharacter.AttackRange() + Links.x.main.AttackRange();
if (Links.x.main.stats.race == "Varuchov" && Links.x.combat.rallyCharacter.stats.race == "Varuchov")
{
num5 = 50f;
}
Links.x.attackDome.transform.localScale = new Vector3(num5, num5, num5);
Links.x.partyColliderCombat.SetRadius(num5);
Shader.SetGlobalFloat("_BubbleSize", num5);
if (Records.x.pocketPause)
{
Vector3 vector = Vector3.Lerp(Links.x.combat.rallyCharacter.tr.position, Links.x.main.tr.position, 0.5f);
if ((Links.x.main.stats.race == "Varuchov" || Links.x.combat.rallyCharacter.stats.race == "Varuchov") && (!(Links.x.main.stats.race == "Varuchov") || !(Links.x.combat.rallyCharacter.stats.race == "Varuchov")))
{
if (Links.x.main.stats.race == "Varuchov")
{
if (Vector3.Distance(vector, Links.x.main.tr.position) > num5)
{
vector = Links.x.combat.rallyCharacter.tr.position;
}
}
else if (Vector3.Distance(Links.x.combat.rallyCharacter.tr.position, vector) > num5)
{
vector = Links.x.main.tr.position;
}
}
Links.x.attackDome.transform.position = vector;
Shader.SetGlobalVector("_BubblePosition", vector + new Vector3(0f, 3f, 0f));
Links.x.attackDomeMinimum.SetActive(false);
}
}
else
{
Character character = Links.x.main;
if (Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.selectedRallyCharacter)
{
character = Links.x.pocketWheel.selectedRallyCharacter;
}
Links.x.attackDome.transform.localScale = new Vector3(character.AttackRange(), character.AttackRange(), character.AttackRange());
Links.x.partyColliderCombat.SetRadius(character.AttackRange());
Shader.SetGlobalFloat("_BubbleSize", character.AttackRange());
if (character.tr)
{
Shader.SetGlobalVector("_BubblePosition", character.tr.position + new Vector3(0f, 3f, 0f));
}
if (Records.x.pocketPause)
{
Links.x.attackDome.transform.position = character.tr.position;
}
float num6 = character.invRow1._MeleeRangeStart * Records.x.nodeSize;
if (num6 > 0f && !Links.x.combat.miniEvent)
{
num6 += character.attackRadius;
num6 += Records.x.nodeSize / 2f;
num6 *= 2f;
if (Records.x.pocketPause)
{
Links.x.attackDomeMinimum.SetActive(true);
}
Links.x.attackDomeMinimum.transform.localScale = new Vector3(num6, num6, num6);
Links.x.attackDomeMinimum.transform.position = Links.x.attackDome.transform.position;
}
else
{
Links.x.attackDomeMinimum.SetActive(false);
}
Links.x.attackDome.transform.position = character.tr.position;
}
this.SetAdventureDomeSize();
}
// Token: 0x0600077E RID: 1918 RVA: 0x000A8F4C File Offset: 0x000A714C
public void SetAdventureDomeSize()
{
if (Links.x.main)
{
if (Links.x.mk)
{
if (Links.x.main.sailing)
{
Links.x.partyColliderAdventure.SetRadius(8f);
return;
}
Links.x.partyColliderAdventure.SetRadius(4f);
return;
}
else
{
if (Links.x.main.sailing)
{
Links.x.partyColliderAdventure.SetRadius(8f);
return;
}
Links.x.partyColliderAdventure.SetRadius(4f);
}
}
}
// Token: 0x0600077F RID: 1919 RVA: 0x000A8FF0 File Offset: 0x000A71F0
public void SetPartyColliders(bool state)
{
foreach (Character character in this.party)
{
character.body.SeeThroughColliders(state);
}
}
// Token: 0x06000780 RID: 1920 RVA: 0x000A9048 File Offset: 0x000A7248
public void CallBoro()
{
if (Links.x.gaia.boro)
{
if (!Records.x.InCombat(false))
{
bool flag = true;
Character character = Links.x.main;
if (!Links.x.gaia.boroControls.boroInvisible)
{
for (int i = 0; i < this.party.Count; i++)
{
if (this.party[i] && flag && this.party[i].mainSelected && !this.party[i].summoned && !this.party[i].isBoro && (this.party[i].tr.position - Links.x.gaia.boro.tr.position).sqrMagnitude < 100f)
{
flag = false;
}
}
}
bool flag2 = true;
if (Links.x.main.node.GraphIndex == 1U && flag)
{
flag2 = false;
for (int j = 0; j < this.party.Count; j++)
{
if (this.party[j] && flag && !flag2 && this.party[j].mainSelected && !this.party[j].summoned && !this.party[j].isBoro && this.party[j].node.GraphIndex == 0U)
{
flag2 = true;
character = this.party[j];
}
}
}
if (flag && flag2)
{
Links.x.gaia.boroControls.Call(character);
return;
}
if (flag2)
{
string text = Records.x.boroName + " is already nearby";
Links.x.gameFeed.AddFeed(text);
return;
}
string text2 = "Cannot call " + Records.x.boroName + " from here";
Links.x.gameFeed.AddFeed(text2);
if (!Links.x.gameFeed.isOn)
{
Links.x.gameFeed.ShowNotice(text2);
return;
}
}
else
{
string text3 = "Cannot call " + Records.x.boroName + " right now";
Links.x.gameFeed.AddFeed(text3);
if (!Links.x.gameFeed.isOn)
{
Links.x.gameFeed.ShowNotice(text3);
return;
}
}
}
else
{
string text4 = Records.x.boroName + " is is too far away";
Links.x.gameFeed.AddFeed(text4);
if (!Links.x.gameFeed.isOn)
{
Links.x.gameFeed.ShowNotice(text4);
}
}
}
// Token: 0x06000781 RID: 1921 RVA: 0x000A9344 File Offset: 0x000A7544
public void ToggleSlowTimeMode(bool state)
{
if (Records.x.inMenus || Records.x.removeControls || Records.x.paused || !Links.x.gaia.sceneLoaded || Records.x.typing || Records.x.dialogue || Records.x.mainCharacterDead)
{
state = false;
}
if (state && !Records.x.slowTimeMode)
{
Links.x.cameraEffects.PlayAnimation("CameraSlowStart");
}
if (!state && Records.x.slowTimeMode)
{
Links.x.cameraEffects.PlayAnimation("CameraSlowEnd");
}
Records.x.slowTimeMode = state;
}
// Token: 0x06000782 RID: 1922 RVA: 0x000A9400 File Offset: 0x000A7600
public void OpenDock()
{
if (!Records.x.inMenus)
{
if (Links.x.hudControl.descriptionWindowOpen)
{
Links.x.hudControl.CloseDescWindow();
}
Links.x.hudControl.ChangeHudVisibility(false, true);
Records.x.inMenus = true;
this.ToggleSlowTimeMode(false);
Links.x.hudControl.ToggleBothCanvasGroup(false);
Links.x.hudControl.SetModalWindowState(false, true);
if (this.prevGameCardCharacter)
{
Links.x.gameCard.EndHover(this.prevGameCardCharacter, false);
this.prevGameCardCharacter.body.Hover(false, true);
this.prevGameCardCharacter = null;
this.character = null;
this.gameCardCharacter = null;
}
if (Links.x.gameCard.hoverCharacter)
{
Links.x.gameCard.EndHover(Links.x.gameCard.hoverCharacter, false);
}
if (this.prevItem)
{
Links.x.inventory.groundBag.RemoveLabels();
this.prevItem.HoverOut();
Links.x.inventory.groundBag.SetCollectorUpdate();
Links.x.itemCard.EndHover(this.prevItem, null, null, null, null, false);
this.prevItem = null;
this.item = null;
}
if (this.prevBreakable)
{
this.prevBreakable.HoverOut();
this.prevBreakable = null;
this.breakable = null;
}
Links.x.hudControl.ToggleMenus();
this.ToggleControllerGlows();
Links.x.dialogue.ToggleTimeScale();
Links.x.cameraEffects.ToggleObscurance();
Links.x.hudControl.cinematicQuips.alpha = 0f;
}
this.openingAnotherMenu = false;
}
// Token: 0x06000783 RID: 1923 RVA: 0x000A95E0 File Offset: 0x000A77E0
public void CloseDock()
{
if (!this.openingAnotherMenu && Records.x.inMenus)
{
Links.x.hudControl.ChangeHudVisibility(true, true);
if (this.prevDockButton)
{
this.prevDockButton.canInteract = true;
this.prevDockButton.OnPointerExit(null);
}
this.prevDockButton = null;
this.dockOpen = false;
this.uiHover = false;
if (!Links.x.creation)
{
Links.x.hudControl.SetModalWindowState(true, true);
Links.x.hudControl.ToggleBothCanvasGroup(true);
Records.x.SetTypingState(false);
}
Records.x.inMenus = false;
Links.x.hudControl.CloseMenuSwitcher();
Links.x.hudControl.ToggleMenus();
Links.x.dialogue.ToggleTimeScale();
Links.x.cameraEffects.ToggleObscurance();
Links.x.hudControl.cinematicQuips.alpha = 1f;
}
this.openingAnotherMenu = false;
}
// Token: 0x06000784 RID: 1924 RVA: 0x000A96F8 File Offset: 0x000A78F8
public void StartHoverTimer(Item item)
{
if (Records.x.inMenus)
{
return;
}
if (Links.x.joy)
{
return;
}
if (Records.x.filming)
{
return;
}
Links.x.inventory.groundBag.AddPopItem(item);
if (this.routine != null)
{
base.StopCoroutine(this.routine);
this.routine = null;
}
this.routine = this.TimedShow();
base.StartCoroutine(this.routine);
}
// Token: 0x06000785 RID: 1925 RVA: 0x000A9775 File Offset: 0x000A7975
private IEnumerator TimedShow()
{
bool waitedForCombat = false;
while (Records.x.InCombat(false))
{
waitedForCombat = true;
yield return null;
}
if (waitedForCombat)
{
yield return new WaitForSeconds(4f);
}
Links.x.inventory.groundBag.timerItems = true;
this.timerHoverItem = this.item;
Links.x.inventory.groundBag.CheckGroundAndClicks(true);
float num = 4f;
yield return new WaitForSeconds(num);
Links.x.inventory.groundBag.timerItems = false;
yield return new WaitForSeconds(1f);
Links.x.inventory.groundBag.RemovePopItems();
this.routine = null;
yield break;
}
// Token: 0x06000786 RID: 1926 RVA: 0x000A9784 File Offset: 0x000A7984
public void ToggleAIFromButton()
{
}
// Token: 0x06000787 RID: 1927 RVA: 0x000A9786 File Offset: 0x000A7986
public void TogglePartyWait()
{
if (Records.x.partyWait)
{
Records.x.partyWait = false;
return;
}
Records.x.partyWait = true;
Links.x.fellowship.SetWaitPositions();
}
// Token: 0x06000788 RID: 1928 RVA: 0x000A97BA File Offset: 0x000A79BA
public void TogglePauseFromButton()
{
if (Records.x.paused)
{
this.TogglePause(false);
return;
}
this.TogglePause(true);
}
// Token: 0x06000789 RID: 1929 RVA: 0x000A97D8 File Offset: 0x000A79D8
public void TogglePause(bool state)
{
if (!Links.x.sensory)
{
return;
}
if (Records.x.inMenus)
{
state = true;
}
if (Records.x.dialogue)
{
state = false;
}
if (Links.x.creation)
{
state = false;
}
if (Records.x.filming)
{
state = false;
}
if (Records.x.paused != state)
{
Records.x.paused = state;
Links.x.dialogue.ToggleTimeScale();
Links.x.sensory.SetUpPause();
if (Records.x.paused)
{
MasterAudio.PauseSoundGroup("Instruments");
this.pausedTime = Time.timeSinceLevelLoad - this.updateGameTime;
Time.timeScale = 0f;
if (Records.x.InCombat(false))
{
Links.x.combat.GetTargets(false, false, null);
return;
}
}
else
{
Links.x.combat.ClearPossibleTargets();
MasterAudio.UnpauseSoundGroup("Instruments");
this.updateGameTime = Time.timeSinceLevelLoad + this.pausedTime;
Time.timeScale = 1f;
}
return;
}
}
// Token: 0x0600078A RID: 1930 RVA: 0x000A98FC File Offset: 0x000A7AFC
public void ToggleAI()
{
if (Records.x.ai == 1)
{
Records.x.ai = 0;
Links.x.gameFeed.AddFeed("The party will wait for actions");
return;
}
Records.x.ai = 1;
Links.x.gameFeed.AddFeed("The party will automatically attack");
}
// Token: 0x0600078B RID: 1931 RVA: 0x000A9958 File Offset: 0x000A7B58
public void RemoveAbilityInfo()
{
if (this.charming)
{
this.charming = false;
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
Links.x.gameplay.SetDomeSize();
if (this.actionCharacter)
{
if (this.actionCharacter.actions)
{
this.actionCharacter.actions.RemoveAbility();
}
this.actionCharacter.portrait.skillBag.RemoveSelectedButton();
this.actionCharacter.portrait.skillBag.selectedSkillButton = null;
if (Links.x.combat.preDome && this.combatStartedWithSkill)
{
this.combatStartedWithSkill = false;
Links.x.combat.EndCombat(false);
}
}
this.EndControllerTargeting();
}
// Token: 0x0600078C RID: 1932 RVA: 0x000A9A44 File Offset: 0x000A7C44
public void ClearEffectTiles(bool includeFarTile, Character characterToRemoveWaypoint, bool allCharacterWaypoints)
{
for (int i = 0; i < this.effectTiles.Count; i++)
{
Links.x.cellar.ReturnPooledGameObject(11, this.effectTiles[i]);
}
this.effectTiles.Clear();
if (allCharacterWaypoints)
{
for (int j = 0; j < this.effectTileWaypoints.Count; j++)
{
if (this.effectTileWaypoints[j].activeSelf)
{
this.effectTileWaypoints[j].SetActive(false);
}
}
}
if (!allCharacterWaypoints && characterToRemoveWaypoint)
{
this.ClearWaypointEffect(characterToRemoveWaypoint);
}
if (includeFarTile && this.effectTileTooFar.activeSelf)
{
this.effectTileTooFar.SetActive(false);
}
this.foundGroupTime = 0f;
if (this.messageDefenseHoldMK.activeSelf)
{
this.messageDefenseHoldMK.SetActive(false);
}
if (this.messageDefenseHoldJoy.activeSelf)
{
this.messageDefenseHoldJoy.SetActive(false);
}
}
// Token: 0x0600078D RID: 1933 RVA: 0x000A9B38 File Offset: 0x000A7D38
public void ClearWaypointEffect(Character character)
{
int portraitOrder = Links.x.GetPortraitOrder(character);
if (this.effectTileWaypoints[portraitOrder].activeSelf)
{
this.effectTileWaypoints[portraitOrder].SetActive(false);
}
}
// Token: 0x0600078E RID: 1934 RVA: 0x000A9B76 File Offset: 0x000A7D76
public void EndCombatTurn()
{
Links.x.combat.EndTurn(true, Links.x.protagonist, true);
}
// Token: 0x0600078F RID: 1935 RVA: 0x000A9B94 File Offset: 0x000A7D94
public void CheckTileEffects(Character source, GraphNode n, bool reRollAgainst)
{
if (n != null)
{
int count = this.currentTileEffects.Count;
for (int i = 0; i < count; i++)
{
if ((this.currentTileEffects[i].mainPosition - source.tr.position).sqrMagnitude < 2500f)
{
this.currentTileEffects[i].CheckTile(n, source, reRollAgainst);
}
}
}
}
// Token: 0x06000790 RID: 1936 RVA: 0x000A9C04 File Offset: 0x000A7E04
public void ClearSelectedActionTargets(Character character)
{
if (this.actionCharacter && this.actionCharacter.hasActions)
{
this.actionCharacter.actions.ClearSelectedActionRealTime();
}
if (character.hasActions && !character.actions.cannotInterrupt)
{
character.actions.ClearSelectedActionRealTime();
if (!Records.x.combat)
{
character.actions.EndActions();
}
}
}
// Token: 0x06000791 RID: 1937 RVA: 0x000A9C74 File Offset: 0x000A7E74
public void NewPaths()
{
for (int i = 0; i < this.party.Count; i++)
{
if (this.party[i])
{
this.party[i].pathTries = 0;
this.party[i].attackRadiusTries = 0;
}
}
}
// Token: 0x06000792 RID: 1938 RVA: 0x000A9CD0 File Offset: 0x000A7ED0
public bool ClickingOnInteractable()
{
return ((Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(0)) && (this.character || this.item || this.exit || this.breakable || this.chest || this.door || this.puzzle || this.boat)) || this.waitingForClickUpOnCharacter;
}
// Token: 0x06000793 RID: 1939 RVA: 0x000A9D64 File Offset: 0x000A7F64
public bool CanClick()
{
return Links.x.hasMain && (!this.mk || !Records.x.movingWindows) && (Records.x.removeControls || !Links.x.mk || true);
}
// Token: 0x06000794 RID: 1940 RVA: 0x000A9DB6 File Offset: 0x000A7FB6
public void TurnOffHoverTiles()
{
}
// Token: 0x06000795 RID: 1941 RVA: 0x000A9DB8 File Offset: 0x000A7FB8
public void FollowCharacterPathFinished(Character followTarget, Character party)
{
bool flag = true;
if (followTarget.hostility == 2 || followTarget.attackingUntilBribe)
{
flag = false;
}
if (flag)
{
this.StartDialogue(followTarget, party, null, null, followTarget.stats.dialogueFile);
return;
}
if (party.hasActions)
{
party.actions.AddTarget(followTarget);
party.actions.QueueIcon(true);
party.actions.readyToAttack = true;
party.actions.AddTarget(followTarget);
party.actions.StartAction("Attack");
}
}
// Token: 0x06000796 RID: 1942 RVA: 0x000A9E3B File Offset: 0x000A803B
public void StartDialogue(Character mainSpeaker, Character responder, Character mainSpeaker2, Character mainSpeaker3, string dialogueFile)
{
Links.x.dialogue.npc1 = mainSpeaker;
Links.x.dialogue.party = responder;
Links.x.dialogue.SetupConversation(dialogueFile, mainSpeaker, mainSpeaker2, mainSpeaker3, responder);
}
// Token: 0x06000797 RID: 1943 RVA: 0x000A9E74 File Offset: 0x000A8074
public void BreakableFinished(BreakableActions currentBreakable, Character breaker)
{
currentBreakable.ClickToBreak(breaker, false, true);
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
// Token: 0x06000798 RID: 1944 RVA: 0x000A9EE0 File Offset: 0x000A80E0
public void DoorFinished(DoorActions currentDoor, Character party)
{
currentDoor.ClickToOpen(party, false);
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
// Token: 0x06000799 RID: 1945 RVA: 0x000A9F4C File Offset: 0x000A814C
public void ChestFinished(ChestActions currentChest, Character party)
{
currentChest.ClickToOpen(party, false);
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
// Token: 0x0600079A RID: 1946 RVA: 0x000A9FB8 File Offset: 0x000A81B8
public void PuzzleFinished(PuzzleActions currentPuzzle, Character party)
{
currentPuzzle.Clicked(party);
if (this.spellcasting || this.throwingElixir)
{
Links.x.main.actions.RemoveAbility();
}
this.spellcasting = false;
this.throwingElixir = false;
if (this.spellTargetingGround)
{
this.ClearEffectTiles(true, this.actionCharacter, false);
}
this.RemoveSpellTargets();
this.EndControllerTargeting();
}
// Token: 0x0600079B RID: 1947 RVA: 0x000AA020 File Offset: 0x000A8220
public void BoatFollowFinished(Boat currentBoat)
{
currentBoat.OpenBag();
}
// Token: 0x0600079C RID: 1948 RVA: 0x000AA028 File Offset: 0x000A8228
public void MapExitFinished(MapExitActions moveToExit, Character c, bool fromTestMenu)
{
if (!Links.x.gaia.sceneLoaded)
{
return;
}
if (!Links.x.gaia.pathfindingReady)
{
return;
}
bool flag = true;
if (moveToExit)
{
if (moveToExit.sceneTo != "Interiors" && moveToExit.sceneTo != "Exterior" && Records.x.partyWait)
{
for (int i = 0; i < this.party.Count; i++)
{
if (this.party[i] && !this.party[i].isBoro)
{
Vector3 doorPoint = moveToExit.mapExit.doorPoint;
doorPoint.y = this.party[i].tr.position.y;
if ((this.party[i].tr.position - doorPoint).sqrMagnitude > 2500f)
{
flag = false;
}
}
}
}
if (!flag)
{
Links.x.gameFeed.ShowNotice("Cannot leave area while separated");
}
if (flag || fromTestMenu)
{
string sceneTo = moveToExit.sceneTo;
if (sceneTo == "OverworldMap")
{
Links.x.mapConfirm.currentExit = moveToExit;
Links.x.mapConfirm.StartMenu();
return;
}
if (sceneTo == "Interiors")
{
Links.x.gaia.Teleport(c, sceneTo, moveToExit.mapExit.interiorConnection, moveToExit.mapExit.exteriorConnection, true, moveToExit.mapExit);
return;
}
if (sceneTo == "Exterior")
{
Links.x.gaia.Teleport(c, sceneTo, moveToExit.mapExit.interiorConnection, moveToExit.mapExit.exteriorConnection, false, moveToExit.mapExit);
return;
}
for (int j = 0; j < this.party.Count; j++)
{
this.party[j].ClearMoveTargets();
}
if (!fromTestMenu)
{
Links.x.combat.SaveCombatants(Links.x.main.tr.position, true);
}
Links.x.gaia.exitPoint = moveToExit.mapExit.doorPoint;
moveToExit.mapExit.gameObject.GetComponent<MapExitActions>().Leave();
Links.x.gaia.ChangeScene(sceneTo, moveToExit.sceneFrom, moveToExit.subExit);
}
}
}
// Token: 0x0600079D RID: 1949 RVA: 0x000AA2AF File Offset: 0x000A84AF
public void ItemPathFinished(Item item, Character character)
{
if (character.mainSelected && Records.x.pocketPause)
{
this.PocketPause(false);
}
item.Clicked(character);
}
// Token: 0x0600079E RID: 1950 RVA: 0x000AA2D4 File Offset: 0x000A84D4
public bool CanScatterPartyToMakePath(string type)
{
return !Records.x.InCombat(false) || (Records.x.InCombat(false) && (type == "Breakable" || type == "Door" || type == "Chest" || type == "Dialogue" || type == "Item"));
}
// Token: 0x0600079F RID: 1951 RVA: 0x000AA33F File Offset: 0x000A853F
public void UpdateSelectedParty()
{
if (this.gatherNodesCoroutine == null)
{
this.ClearInteractionNodes();
}
}
// Token: 0x060007A0 RID: 1952 RVA: 0x000AA350 File Offset: 0x000A8550
public void SetHoverTile(int num)
{
for (int i = 0; i < this.hoverTilesNumbers.Count; i++)
{
this.hoverTilesNumbers[i].enabled = false;
if (i == num)
{
this.hoverTilesNumbers[i].enabled = true;
}
}
}
// Token: 0x060007A1 RID: 1953 RVA: 0x000AA39C File Offset: 0x000A859C
public void TurnOffHoverTile()
{
for (int i = 0; i < this.hoverTilesNumbers.Count; i++)
{
this.hoverTilesNumbers[i].enabled = false;
}
}
// Token: 0x060007A2 RID: 1954 RVA: 0x000AA3D1 File Offset: 0x000A85D1
public void TurnOffSelectionCircle()
{
this.selectionCircle.SetActive(false);
}
// Token: 0x060007A3 RID: 1955 RVA: 0x000AA3E0 File Offset: 0x000A85E0
public void SetSelectionCircle(Character character)
{
if (Links.x.gameplay.selectionCircle.activeSelf)
{
Links.x.gameplay.selectionCircle.SetActive(true);
Links.x.gameplay.selectionCircleAnimator.Play("selected", -1, 0f);
}
else
{
Links.x.gameplay.selectionCircle.SetActive(true);
}
this.selectionCircle.transform.position = character.tr.position;
}
// Token: 0x060007A4 RID: 1956 RVA: 0x000AA469 File Offset: 0x000A8669
public void SceneSwitch()
{
this.allCharacters = Links.x.diorama.characters;
this.foundGroupTime = 0f;
}
// Token: 0x060007A5 RID: 1957 RVA: 0x000AA48C File Offset: 0x000A868C
public void ClearInteractionNodes()
{
for (int i = 0; i < this.pickedInteractionNodes.Count; i++)
{
if (this.pickedInteractionNodes[i] != null)
{
this.pickedInteractionNodes[i].SetFlowerConnectionsPlanning(1, 0, 0);
}
}
this.pickedInteractionNodes.Clear();
}
// Token: 0x060007A6 RID: 1958 RVA: 0x000AA4DC File Offset: 0x000A86DC
public void QuickSave()
{
if (!Records.x.saving)
{
if (Records.x.CanSave())
{
Records.x.TriggerGlobalSave("QuickSave", true);
return;
}
if (Links.x.options.gameFeedState > 0)
{
Links.x.gameFeed.AddFeed("Cannot save at this time");
return;
}
Links.x.gameFeed.ShowNotice("Cannot save at this time");
}
}
// Token: 0x060007A7 RID: 1959 RVA: 0x000AA550 File Offset: 0x000A8750
public Vector3 GetHoverPosition()
{
if (this.character)
{
return this.character.currentPosition;
}
if (this.breakable)
{
return this.breakable.transform.position;
}
if (this.door)
{
return this.door.lockColliderPosition;
}
if (this.chest)
{
return this.chest.gameObject.transform.position;
}
return Vector3.zero;
}
// Token: 0x060007A8 RID: 1960 RVA: 0x000AA5D5 File Offset: 0x000A87D5
private IEnumerator ArcToTarget(Vector3 targetPosition)
{
if (this.quickCommandAttack)
{
this.GroupCommandAnim("Attack", targetPosition + new Vector3(0f, 2f, 0f));
}
else
{
targetPosition.y += 0.5f;
this.GroupCommandAnim("Move", targetPosition + new Vector3(0f, 2f, 0f));
}
this.arcTarget = targetPosition;
Shader.SetGlobalFloat("_LineFade", 1f);
int num2;
for (int i = 0; i < this.party.Count; i = num2 + 1)
{
Character character = this.party[i];
if (!character.mainSelected && character.IsSentient())
{
Vector3 startPosition = character.body.HeadPosition(-0.25f);
this.trajectoryModifier = 1;
this.initialVelocity = 0f;
Quaternion quaternion = this.GetBearing(startPosition, this.arcTarget);
if (!this.arcObject)
{
this.arcObject = new GameObject("Arc Object");
}
this.arcObject.transform.SetParent(base.gameObject.transform);
this.arcObject.transform.rotation = quaternion;
LineRenderer line = null;
if (this.openLineRenderers.Count > 0)
{
line = this.openLineRenderers[0];
this.usedLineRenderers.Add(line);
this.openLineRenderers.RemoveAt(0);
line.positionCount = 0;
}
else
{
GameObject gameObject = Object.Instantiate<GameObject>(this.lineRendererToDrawTrajectory);
gameObject.transform.SetParent(base.transform);
line = gameObject.GetComponent<LineRenderer>();
this.usedLineRenderers.Add(line);
line.positionCount = 0;
}
line.gameObject.SetActive(true);
float currentTime = -(1f / this.trajectoryPrecision);
bool hasImpacted = false;
int num = 0;
int lineCount = 0;
int min = 6;
for (int j = 0; j < this.maximumIterations; j = num2 + 1)
{
if (!hasImpacted)
{
currentTime += 1f / this.trajectoryPrecision;
Vector3 vector = startPosition + this.arcObject.transform.forward * this.initialVelocity * currentTime + 0.5f * this.gravity2 * Mathf.Pow(currentTime, 2f);
if (j > min)
{
line.positionCount = lineCount + 1;
line.SetPosition(lineCount, vector);
num2 = lineCount;
lineCount = num2 + 1;
}
if ((vector - this.arcTarget).sqrMagnitude < 0.25f)
{
hasImpacted = true;
line.positionCount = lineCount;
this.prevPos = vector;
}
if (num == 30)
{
yield return new WaitForSeconds(0.01f);
num = 0;
}
else
{
num++;
}
}
num2 = j;
}
this.arcObject.transform.rotation = Quaternion.identity;
startPosition = default(Vector3);
line = null;
}
num2 = i;
}
float startValue = 1f;
float endValue = 0f;
float timeToLerp = 1.5f;
float percentage = 0f;
float startTime = Time.time;
if (!Records.x.pocketPause)
{
timeToLerp = 0.25f;
}
while (percentage < 1f)
{
percentage = (Time.time - startTime) / timeToLerp;
float num3 = Mathf.Lerp(startValue, endValue, percentage);
Shader.SetGlobalFloat("_LineFade", num3);
yield return null;
}
this.ReturnLineRenderers();
this.arcCorout = null;
yield break;
}
// Token: 0x060007A9 RID: 1961 RVA: 0x000AA5EC File Offset: 0x000A87EC
private Quaternion GetBearing(Vector3 start, Vector3 targetPt)
{
this.bearing = Quaternion.Euler(Vector3.zero);
Vector3 vector = targetPt - start;
float num = Mathf.Sqrt(Mathf.Pow(vector.x, 2f) + Mathf.Pow(vector.z, 2f));
float num2 = -vector.y;
float num3 = this.gravity * (this.gravity * Mathf.Pow(num, 2f) + 2f * num2 * Mathf.Pow(this.initialVelocity, 2f));
float num4 = Mathf.Sqrt(Mathf.Pow(this.initialVelocity, 4f) - num3);
bool flag = float.IsNaN(num4);
if (!flag)
{
float num5 = (Mathf.Pow(this.initialVelocity, 2f) + (float)this.trajectoryModifier * num4) / (this.gravity * num);
float num6 = 57.29578f * Mathf.Atan(num5);
this.bearing = Quaternion.LookRotation(vector);
Vector3 eulerAngles = this.bearing.eulerAngles;
eulerAngles.x = num6;
this.bearing.eulerAngles = eulerAngles;
}
if (flag)
{
this.initialVelocity += 1f;
this.GetBearing(start, targetPt);
}
return this.bearing;
}
// Token: 0x060007AA RID: 1962 RVA: 0x000AA720 File Offset: 0x000A8920
private void ReturnLineRenderers()
{
for (int i = 0; i < this.usedLineRenderers.Count; i++)
{
this.usedLineRenderers[i].positionCount = 0;
this.openLineRenderers.Add(this.usedLineRenderers[i]);
this.usedLineRenderers[i].gameObject.SetActive(false);
}
this.usedLineRenderers.Clear();
}
// Token: 0x060007AB RID: 1963 RVA: 0x000AA78E File Offset: 0x000A898E
public void ClearGroundNodes()
{
this.pickedGroundNodes.Clear();
}
// Token: 0x060007AC RID: 1964 RVA: 0x000AA79B File Offset: 0x000A899B
public void AddGroundNode(GraphNode n)
{
this.pickedGroundNodes.Add(n);
}
// Token: 0x060007AD RID: 1965 RVA: 0x000AA7AC File Offset: 0x000A89AC
public void StartGroundTargetTiles(Character mainCharacter, Vector3 targetNode, bool previewPoints, int radius, float maxRadius)
{
if (this.gatherGroundNodesCoroutine == null)
{
if (this.clickGroundWait)
{
previewPoints = false;
}
this.gatherGroundNodesCoroutine = this.GetGroundTargetTiles(mainCharacter, targetNode, previewPoints, radius, maxRadius);
base.StartCoroutine(this.gatherGroundNodesCoroutine);
this.clickGroundWait = false;
return;
}
if (!previewPoints)
{
if (this.pickedGroundNodes.Count > 0 && mainCharacter.portrait.skillBag.selectedSkillButton && !this.quickGroup)
{
if (!this.character)
{
int portraitOrder = Links.x.GetPortraitOrder(mainCharacter);
this.effectTileWaypointAnimators[portraitOrder].Play("Clicked");
}
mainCharacter.portrait.skillBag.selectedSkillButton.SetActionAbility();
Vector3 zero = Vector3.zero;
mainCharacter.actions.CastSpell(this.character, false, this.pickedGroundNodes[this.pickedGroundNodes.Count - 1], zero, false, false);
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.RemoveSpellTargets();
return;
}
this.clickGroundWait = true;
}
}
// Token: 0x060007AE RID: 1966 RVA: 0x000AA8C4 File Offset: 0x000A8AC4
private IEnumerator GetGroundTargetTiles(Character mainCharacter, Vector3 targetNodePosition, bool previewPoints, int radius, float sightRadius)
{
bool flag = false;
GraphNode start = null;
bool inQuickGroup = this.quickGroup;
if (!mainCharacter)
{
flag = true;
}
if (!flag)
{
bool isCommand = false;
if (inQuickGroup || Input.GetKey(Links.x.gameplay.keyControl.GetHotkey("Commands")) || this.makeCircleMode)
{
isCommand = true;
}
if (this.spellTargetingGround)
{
isCommand = false;
}
if (!previewPoints && !isCommand)
{
this.nodeConstraint.constrainWalkability = true;
this.nodeConstraint.walkable = true;
this.nodeConstraint.passID = 0;
this.nodeConstraint.passID2 = 0;
this.nodeConstraint.constrainTags = false;
this.nodeConstraint.checkCircleID = 0;
if (this.currentAbility.Contains("Moss"))
{
this.nodeConstraint.constrainToEnvironment = 3;
}
else
{
this.nodeConstraint.constrainToEnvironment = 1;
if (mainCharacter.sailing)
{
this.nodeConstraint.constrainToEnvironment = 2;
}
}
this.nodeConstraint.constrainPenalty = 0;
this.nodeConstraint.checkConnections = -1;
GraphNode node = AstarPath.active.GetNearest(targetNodePosition, this.nodeConstraint).node;
if (node != null)
{
if (Vector3.Distance((Vector3)node.position, mainCharacter.tr.position) > sightRadius)
{
this.NoCircle();
}
else
{
if (!this.character)
{
int portraitOrder = Links.x.GetPortraitOrder(mainCharacter);
if (!this.effectTileWaypointAnimators[portraitOrder].gameObject.activeSelf)
{
this.effectTileWaypointAnimators[portraitOrder].gameObject.SetActive(true);
}
this.effectTileWaypointAnimators[portraitOrder].Play("Clicked");
}
if (!this.pickedGroundNodes.Contains(node))
{
this.pickedGroundNodes.Add(node);
}
if (!mainCharacter.inAction && !mainCharacter.inRecovery && !mainCharacter.inQueuedAbility && mainCharacter.attackTime >= 1f)
{
if (mainCharacter.portrait.skillBag.selectedSkillButton)
{
mainCharacter.portrait.skillBag.selectedSkillButton.SetActionAbility();
}
Vector3 zero = Vector3.zero;
mainCharacter.actions.CastSpell(this.character, false, this.pickedGroundNodes[this.pickedGroundNodes.Count - 1], zero, false, false);
}
this.ClearGroundNodes();
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.RemoveSpellTargets();
}
}
}
else
{
if (this.currentAbility.Contains("Moss"))
{
this.nodeConstraint.constrainToEnvironment = 3;
}
else
{
this.nodeConstraint.constrainToEnvironment = 1;
if (mainCharacter.sailing)
{
this.nodeConstraint.constrainToEnvironment = 2;
}
}
this.nodeConstraint.constrainTags = false;
this.nodeConstraint.checkCircleID = 0;
this.nodeConstraint.passID = 0;
this.nodeConstraint.passID2 = 0;
this.nodeConstraint.constrainPenalty = 0;
this.nodeConstraint.checkConnections = 0;
this.nodeConstraint.constrainToArea = -1;
GraphNode node2 = AstarPath.active.GetNearest(targetNodePosition, this.nodeConstraint).node;
if (node2 != null)
{
start = node2;
}
else
{
flag = true;
}
if (start != null)
{
Vector3 vector = (Vector3)start.position;
if (Vector3.Distance(vector, mainCharacter.tr.position) > sightRadius)
{
if (!previewPoints)
{
this.NoCircle();
}
this.ClearEffectTiles(false, null, false);
this.ClearWaypointEffect(mainCharacter);
if (!this.effectTileTooFar.activeSelf)
{
this.effectTileTooFar.SetActive(true);
}
this.effectTileTooFar.transform.position = vector;
RaycastHit raycastHit;
if (Physics.SphereCast(this.effectTileTooFar.transform.position + new Vector3(0f, 3f, 0f), 0.15f, Vector3.up * -1f, out raycastHit, 10f, 4194449))
{
Quaternion quaternion = Quaternion.Euler(Quaternion.FromToRotation(Vector3.up, raycastHit.normal).eulerAngles);
this.effectTileTooFar.transform.rotation = quaternion;
this.effectTileTooFar.transform.GetChild(0).localRotation = Quaternion.Euler(new Vector3(0f, 0f, 0f));
}
}
else
{
float num = (float)radius;
this.ClearGroundNodes();
float max = (num * Records.x.nodeSize + 0.05f) * (num * Records.x.nodeSize + 0.05f);
if (!flag && Links.x.gaia.pathfindingReady)
{
ConstantPath constPath = null;
this.nodeConstraint.constrainWalkability = false;
constPath = ConstantPath.ConstructFast(start, Records.x.GetConstantPathRadius(radius), null);
constPath.nnConstraint = this.nodeConstraint;
AstarPath.StartPath(constPath, false);
yield return base.StartCoroutine(constPath.WaitForPath());
this.nodeConstraint.constrainWalkability = true;
constPath.Claim(this);
this.allNodes = constPath.allNodes;
int count = this.allNodes.Count;
Vector3 position = mainCharacter.tr.position;
vector = (Vector3)start.position;
Vector3 vector2 = vector;
Vector3 vector3 = vector;
if (position != vector)
{
vector2 += Quaternion.LookRotation(position - vector) * Vector3.forward * -3.5f;
vector3 += Quaternion.LookRotation(position - vector) * Vector3.forward * 3.5f;
}
float sqrMagnitude = (position - vector2).sqrMagnitude;
float sqrMagnitude2 = (position - vector3).sqrMagnitude;
int num2 = 0;
bool flag2 = false;
if (this.currentAbility.Contains("VineWall"))
{
flag2 = true;
}
if (isCommand)
{
this.allNodesTaken.Clear();
for (int i = 0; i < count; i++)
{
this.allNodesTaken.Add(0);
}
for (int j = 0; j < 10; j++)
{
float num3 = 3f;
if (j == 1)
{
num3 = 3.6f;
}
if (j == 2)
{
num3 = 5.1f;
}
if (j == 3)
{
num3 = 7.1f;
}
if (j == 4)
{
num3 = 7.6f;
}
if (j == 5)
{
num3 = 10.6f;
}
if (j == 6)
{
num3 = 10.1f;
}
if (j == 7)
{
num3 = 14.1f;
}
if (j == 8)
{
num3 = 12.6f;
}
if (j == 9)
{
num3 = 17.6f;
}
float num4 = num3 * num3;
for (int k = 0; k < count; k++)
{
if (this.allNodesTaken[k] == 0 && (j <= 0 || num2 < 9) && ((Vector3)this.allNodes[k].position - vector).sqrMagnitude < num4 && this.allNodes[k].circle <= 1)
{
num2++;
this.pickedGroundNodes.Add(this.allNodes[k]);
this.allNodesTaken[k] = 1;
}
}
}
this.allNodesTaken.Clear();
int count2 = this.pickedGroundNodes.Count;
for (int l = 0; l < count2; l++)
{
this.allNodesTaken.Add(0);
}
for (int m = 0; m < count2; m++)
{
Vector3 vector4 = (Vector3)this.pickedGroundNodes[m].position;
bool flag3 = false;
for (int n = 0; n < count2; n++)
{
if (!flag3)
{
Vector3 vector5 = (Vector3)this.pickedGroundNodes[n].position;
vector5.y = vector4.y;
if ((vector5 - vector4).sqrMagnitude < 16f)
{
flag3 = true;
}
}
}
if (!flag3)
{
this.allNodesTaken[m] = 1;
}
}
bool flag4 = false;
for (int num5 = 0; num5 < count2; num5++)
{
if (this.allNodesTaken[num5] == 1)
{
this.pickedGroundNodes[num5] = null;
flag4 = true;
}
}
if (flag4)
{
this.pickedGroundNodes.RemoveAll((GraphNode item) => item == null);
}
}
else
{
for (int num6 = 0; num6 < count; num6++)
{
if (((Vector3)this.allNodes[num6].position - vector).sqrMagnitude < max)
{
if (flag2)
{
float sqrMagnitude3 = ((Vector3)this.allNodes[num6].position - position).sqrMagnitude;
if (sqrMagnitude3 >= sqrMagnitude2 && sqrMagnitude3 <= sqrMagnitude)
{
this.pickedGroundNodes.Add(this.allNodes[num6]);
}
}
else
{
num2++;
this.pickedGroundNodes.Add(this.allNodes[num6]);
}
}
}
}
int num7 = this.pickedGroundNodes.IndexOf(start);
if (num7 > -1)
{
this.pickedGroundNodes.RemoveAt(num7);
}
constPath.Release(this, false);
constPath = null;
}
if (this.spellTargetingGround)
{
int portraitOrder2 = Links.x.GetPortraitOrder(mainCharacter);
if (!this.effectTileWaypoints[portraitOrder2].activeSelf)
{
this.effectTileWaypoints[portraitOrder2].SetActive(true);
}
this.effectTileWaypoints[portraitOrder2].transform.position = vector;
if (this.character)
{
this.effectTileWaypoints[portraitOrder2].transform.position = this.farPosition;
}
else
{
this.effectTileWaypoints[portraitOrder2].transform.position = vector;
}
if (this.effectTileTooFar.activeSelf)
{
this.effectTileTooFar.SetActive(false);
}
RaycastHit raycastHit2;
if (Physics.SphereCast(this.effectTileWaypoints[portraitOrder2].transform.position + new Vector3(0f, 3f, 0f), 0.15f, Vector3.up * -1f, out raycastHit2, 10f, 4194449))
{
Quaternion quaternion2 = Quaternion.Euler(Quaternion.FromToRotation(Vector3.up, raycastHit2.normal).eulerAngles);
this.effectTileWaypoints[portraitOrder2].transform.rotation = quaternion2;
this.effectTileWaypoints[portraitOrder2].transform.GetChild(0).localRotation = Quaternion.Euler(new Vector3(0f, 0f, 0f));
}
}
else if (this.effectTileTooFar.activeSelf)
{
this.effectTileTooFar.SetActive(false);
}
if (!previewPoints && !isCommand)
{
if (!this.character)
{
int portraitOrder3 = Links.x.GetPortraitOrder(mainCharacter);
this.effectTileWaypointAnimators[portraitOrder3].Play("Clicked");
}
if (!this.pickedGroundNodes.Contains(start))
{
this.pickedGroundNodes.Add(start);
}
if (!mainCharacter.inAction && !mainCharacter.inRecovery && !mainCharacter.inQueuedAbility && mainCharacter.attackTime >= 1f)
{
mainCharacter.portrait.skillBag.selectedSkillButton.SetActionAbility();
Vector3 zero2 = Vector3.zero;
mainCharacter.actions.CastSpell(this.character, false, this.pickedGroundNodes[this.pickedGroundNodes.Count - 1], zero2, false, false);
}
this.ClearGroundNodes();
this.ClearEffectTiles(true, null, false);
this.EndControllerTargeting();
this.spellTargetingGround = false;
this.spellcasting = false;
this.throwingElixir = false;
}
else if (previewPoints)
{
if (isCommand)
{
this.pickedGroundNodes.Add(start);
}
Vector3 vector6 = new Vector3(0f, 0.3f, 0f);
for (int num8 = 0; num8 < this.pickedGroundNodes.Count; num8++)
{
if (this.spellTargetingGround || isCommand)
{
int count3 = this.effectTiles.Count;
GameObject gameObject;
if (num8 < count3)
{
gameObject = this.effectTiles[num8];
}
else
{
gameObject = Links.x.cellar.GetPooledGameObject(11);
this.effectTiles.Add(gameObject);
}
if (!gameObject.activeSelf)
{
gameObject.SetActive(true);
}
gameObject.transform.position = (Vector3)this.pickedGroundNodes[num8].position + vector6;
}
}
}
if (this.effectTiles.Count > this.pickedGroundNodes.Count)
{
for (int num9 = 0; num9 < this.effectTiles.Count; num9++)
{
if (num9 >= this.pickedGroundNodes.Count && this.effectTiles[num9].activeSelf)
{
this.effectTiles[num9].SetActive(false);
}
}
}
}
}
}
}
if (Links.x.pocketWheel.selected == "Command Group" || inQuickGroup || this.makeCircleMode)
{
if (Time.timeSinceLevelLoad > this.foundGroupTime + 0.2f || this.foundGroupTime == 0f)
{
this.circleTiles.Clear();
for (int num10 = 0; num10 < this.pickedGroundNodes.Count; num10++)
{
this.circleTiles.Add(this.pickedGroundNodes[num10]);
}
if (!this.circleTiles.Contains(start))
{
this.circleTiles.Add(start);
}
}
if (this.pickedGroundNodes.Count > 0)
{
if (!this.attackDirection.activeSelf && !this.uiHover && (Links.x.gameplay.seconds > Links.x.fellowship.timeToNextCircle + Links.x.fellowship.circleRecoverTime || Links.x.fellowship.timeToNextCircle == 0f))
{
this.attackDirection.SetActive(true);
}
if (this.joy)
{
this.attackDirection.transform.position = (Vector3)start.position + new Vector3(0f, 0.2f, 0f);
}
else
{
this.attackDirection.transform.position = targetNodePosition + new Vector3(0f, 0.2f, 0f);
}
Quaternion quaternion3 = this.attackDirection.transform.rotation;
if (this.defenseCircleRotation != Quaternion.identity && Time.timeSinceLevelLoad >= this.defenseHoldTime + 0.3f)
{
quaternion3 = this.defenseCircleRotation;
}
else
{
Vector3 vector7 = this.NearestEnemyClump(true, Links.x.main);
if (vector7 == Vector3.zero)
{
vector7 = Links.x.main.currentPosition;
}
if (vector7 != (Vector3)start.position)
{
quaternion3 = Quaternion.LookRotation(vector7 - (Vector3)start.position);
}
if (this.joy)
{
this.defenseCircleRotation = quaternion3;
}
}
this.attackDirection.transform.rotation = quaternion3;
if (this.mk)
{
if ((Input.GetMouseButton(0) || Input.GetMouseButtonUp(0)) && Time.timeSinceLevelLoad > this.defenseHoldTime + 0.3f)
{
if ((this.mousePoint - targetNodePosition).sqrMagnitude > 0.25f)
{
quaternion3 = Quaternion.LookRotation(this.mousePoint - targetNodePosition);
}
this.defenseCircleRotation = quaternion3;
}
}
else if (Mathf.Abs(Links.x.fellowship.direction.magnitude) > 0.1f)
{
float y = Links.x.worldCamera.transform.rotation.eulerAngles.y;
float num11 = Mathf.Atan2(Links.x.fellowship.direction.x, Links.x.fellowship.direction.y) / 3.1415927f * 180f;
if (num11 < 0f)
{
num11 += 360f;
}
quaternion3 = Quaternion.Euler(new Vector3(0f, num11 + y, 0f));
this.defenseCircleRotation = quaternion3;
}
RaycastHit raycastHit3;
if (Physics.Raycast(targetNodePosition + new Vector3(0f, 3f, 0f), Vector3.up * -1f, out raycastHit3, 10f, 4194449))
{
Quaternion quaternion4 = Quaternion.FromToRotation(mainCharacter.tr.up, raycastHit3.normal);
this.attackDirection.transform.rotation = quaternion4 * quaternion3;
}
if (!previewPoints || this.clickGroundWait)
{
this.EndGroupCircle(targetNodePosition);
this.clickGroundWait = false;
}
}
}
this.gatherGroundNodesCoroutine = null;
yield break;
}
// Token: 0x060007AF RID: 1967 RVA: 0x000AA8F8 File Offset: 0x000A8AF8
private void NoCircle()
{
}
// Token: 0x060007B0 RID: 1968 RVA: 0x000AA8FC File Offset: 0x000A8AFC
public void EndCircleMode()
{
if (this.makeCircleMode)
{
this.makeCircleMode = false;
if (!Records.x.circle)
{
Links.x.hudControl.SetFalseStayBack();
}
if (this.messageDefenseHoldQuickMK.activeSelf)
{
this.messageDefenseHoldQuickAnimMK.Play("ControlsSlideOutMK");
}
this.attackDirection.SetActive(false);
}
}
// Token: 0x060007B1 RID: 1969 RVA: 0x000AA95C File Offset: 0x000A8B5C
private void EndGroupCircle(Vector3 clampedPoint)
{
if (this.messageDefenseHoldQuickMK.activeSelf)
{
this.messageDefenseHoldQuickAnimMK.Play("ControlsSlideOutMK");
}
this.attackDirection.SetActive(false);
if (Links.x.gameplay.seconds < Links.x.fellowship.timeToNextCircle + Links.x.fellowship.circleRecoverTime)
{
this.NoCircle();
this.EndCircleMode();
return;
}
Records.x.circle = true;
this.EndCircleMode();
Links.x.hudControl.SetTrueStayBack();
Vector3 vector = clampedPoint + this.attackDirection.transform.rotation * Vector3.forward * 10f;
this.middleCircle = clampedPoint;
Vector3 vector2 = clampedPoint + this.attackDirection.transform.rotation * Vector3.forward * -10f;
float num = float.PositiveInfinity;
float num2 = float.PositiveInfinity;
for (int i = 0; i < this.circleTiles.Count; i++)
{
if (this.circleTiles[i] != null)
{
float num3 = ((Vector3)this.circleTiles[i].position - vector).sqrMagnitude;
if (num3 < num)
{
num = num3;
this.frontOfCircle = (Vector3)this.circleTiles[i].position;
}
num3 = ((Vector3)this.circleTiles[i].position - vector2).sqrMagnitude;
if (num3 < num2)
{
num2 = num3;
this.backOfCircle = (Vector3)this.circleTiles[i].position;
}
}
}
Shader.SetGlobalVector("_FrontOfCircle", this.frontOfCircle);
this.circleRotation = this.attackDirection.transform.rotation;
this.foundGroupTime = Time.timeSinceLevelLoad;
Links.x.cameraEffects.ClearPartyGroupTiles();
Links.x.fellowship.StartCircle(clampedPoint);
this.clickedCharacter = null;
Links.x.gameplay.StoneSoundQuieter();
Links.x.fellowship.MakeWaypoints(clampedPoint, null, false, false);
this.ClearGroundNodes();
for (int j = 0; j < this.party.Count; j++)
{
Character character = this.party[j];
if (character.commandMove != null)
{
character.commandMove = null;
character.ClearNodePath();
if (character.waypoint)
{
character.waypoint.transform.position = this.farPosition;
}
}
}
}
// Token: 0x060007B2 RID: 1970 RVA: 0x000AAC10 File Offset: 0x000A8E10
public void CircleFromLoad(Vector3 clampedPoint, Vector3 point1, Vector3 point2, Vector3 point3, Vector3 point4, Vector3 point5, Vector3 point6, Vector3 point7, Vector3 point8, Vector3 point9, Vector3 rot)
{
this.circleTiles.Clear();
GraphNode graphNode = Links.x.fellowship.NearNode(point1, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
if (point2 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point2, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point3 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point3, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point4 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point4, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point5 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point5, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point6 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point6, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point7 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point7, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point8 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point8, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
if (point9 != Vector3.zero)
{
graphNode = Links.x.fellowship.NearNode(point9, false, false, false, 0, -1);
if (graphNode != null)
{
this.circleTiles.Add(graphNode);
}
}
Links.x.hudControl.SetTrueStayBack();
Vector3 vector = clampedPoint + this.attackDirection.transform.rotation * Vector3.forward * 10f;
this.middleCircle = clampedPoint;
Vector3 vector2 = clampedPoint + this.attackDirection.transform.rotation * Vector3.forward * -10f;
float num = float.PositiveInfinity;
float num2 = float.PositiveInfinity;
for (int i = 0; i < this.circleTiles.Count; i++)
{
if (this.circleTiles[i] != null)
{
float num3 = ((Vector3)this.circleTiles[i].position - vector).sqrMagnitude;
if (num3 < num)
{
num = num3;
this.frontOfCircle = (Vector3)this.circleTiles[i].position;
}
num3 = ((Vector3)this.circleTiles[i].position - vector2).sqrMagnitude;
if (num3 < num2)
{
num2 = num3;
this.backOfCircle = (Vector3)this.circleTiles[i].position;
}
}
}
this.foundGroupTime = Time.timeSinceLevelLoad;
this.circleRotation = Quaternion.Euler(rot);
Links.x.cameraEffects.ClearPartyGroupTiles();
Links.x.fellowship.StartCircle(clampedPoint);
}
// Token: 0x060007B3 RID: 1971 RVA: 0x000AAF69 File Offset: 0x000A9169
public void BreakCircle()
{
this.circleBreakObject.SetActive(false);
Links.x.cameraEffects.ClearPartyGroupTiles();
}
// Token: 0x060007B4 RID: 1972 RVA: 0x000AAF86 File Offset: 0x000A9186
public void GroupCommandAnim(string type, Vector3 pt)
{
}
// Token: 0x060007B5 RID: 1973 RVA: 0x000AAF88 File Offset: 0x000A9188
public Vector3 NearestEnemyClump(bool lookForNPCs, Character main)
{
Vector3 vector = Vector3.zero;
if (this.combatCharacters == null)
{
this.combatCharacters = Links.x.diorama.characters;
}
int num = this.combatCharacters.Count;
this.clumps.Clear();
this.characters.Clear();
float num2 = 49f;
Vector3 currentPosition = main.currentPosition;
Vector3 vector2 = Vector3.zero;
float num3 = 30f;
for (int i = 0; i < num; i++)
{
Character character = this.combatCharacters[i];
if (character)
{
bool flag = false;
if (lookForNPCs && !character.dead && !character.stunned && (character.hostility >= 2 || character.attackingUntilBribe) && !character.inactive && character.npc)
{
flag = true;
}
if (!lookForNPCs && !character.dead && !character.stunned && !character.inactive && (!character.npc || main.stats.IsTargetAnEnemy(character.stats.allegiance)))
{
flag = true;
}
if (flag)
{
vector2 = character.currentPosition;
if (this.SubtractVectors(vector2, currentPosition).sqrMagnitude < num3 * num3)
{
this.characters.Add(character);
}
}
}
}
num = this.characters.Count;
for (int j = 0; j < num; j++)
{
Character character = this.characters[j];
vector2 = character.currentPosition;
int num4 = 1;
for (int k = 0; k < num; k++)
{
if (k != j && this.SubtractVectors(vector2, this.characters[k].currentPosition).sqrMagnitude <= num2)
{
num4++;
}
}
this.clumps.Add(num4);
}
int num5 = 0;
for (int l = 0; l < num; l++)
{
if (this.clumps[l] > num5)
{
num5 = this.clumps[l];
vector2 = this.characters[l].currentPosition;
}
}
int num6 = 0;
float num7 = 49f;
for (int m = 0; m < num; m++)
{
if (this.SubtractVectors(vector2, this.characters[m].currentPosition).sqrMagnitude <= num7)
{
vector += this.characters[m].currentPosition;
num6++;
}
}
if (vector != Vector3.zero)
{
vector /= (float)num6;
}
return vector;
}
// Token: 0x060007B6 RID: 1974 RVA: 0x000AB214 File Offset: 0x000A9414
private void SetControllerTargetingPosition(Vector3 position)
{
if (this.currentAbility.Contains("Moss"))
{
this.nodeConstraint.constrainToEnvironment = 3;
}
else
{
this.nodeConstraint.constrainToEnvironment = 1;
if (Links.x.main.sailing)
{
this.nodeConstraint.constrainToEnvironment = 2;
}
}
this.nodeConstraint.constrainTags = false;
this.nodeConstraint.checkCircleID = 0;
this.nodeConstraint.passID = 0;
this.nodeConstraint.passID2 = 0;
this.nodeConstraint.constrainPenalty = 0;
this.nodeConstraint.checkConnections = 0;
this.nodeConstraint.constrainToArea = -1;
GraphNode node = AstarPath.active.GetNearest(position, this.nodeConstraint).node;
if (node != null)
{
this.groundTargetingWaypoint.transform.position = (Vector3)node.position;
}
}
// Token: 0x060007B7 RID: 1975 RVA: 0x000AB2F4 File Offset: 0x000A94F4
public void StartControllerTargeting()
{
if (!this.makeCircleMode)
{
this.groundTargetingWaypoint.SetActive(true);
}
this.SetControllerTargetingPosition(Links.x.main.tr.position + Links.x.main.tr.forward * 4f);
this.joyPosition = Links.x.main.tr.position;
}
// Token: 0x060007B8 RID: 1976 RVA: 0x000AB36C File Offset: 0x000A956C
public void EndControllerTargeting()
{
this.groundTargetingWaypoint.SetActive(false);
}
// Token: 0x060007B9 RID: 1977 RVA: 0x000AB37C File Offset: 0x000A957C
public void GetDistances(Character pathfinder, Character target, out float bestDistance, out float maxDistance, out float minDistance)
{
bestDistance = (pathfinder.invRow1._MeleeRangeEnd * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius - 0.65f) * (pathfinder.invRow1._MeleeRangeEnd * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius - 0.65f);
maxDistance = (pathfinder.invRow1._MeleeRangeEnd * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius) * (pathfinder.invRow1._MeleeRangeEnd * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius);
minDistance = (pathfinder.invRow1._MeleeRangeStart * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius) * (pathfinder.invRow1._MeleeRangeStart * Records.x.nodeSize + pathfinder.attackRadius + target.attackRadius);
if (minDistance == maxDistance || pathfinder.invRow1._MeleeRangeStart == 0f)
{
minDistance = 0f;
}
if (bestDistance < minDistance)
{
bestDistance = minDistance;
}
}
// Token: 0x060007BA RID: 1978 RVA: 0x000AB4A6 File Offset: 0x000A96A6
public void AddLevelUp(Character character, int skillIndex)
{
this.levelUpCharacters.Add(character);
this.levelUpSkills.Add(skillIndex);
}
// Token: 0x060007BB RID: 1979 RVA: 0x000AB4C0 File Offset: 0x000A96C0
public void AddNeedsPath(Character addCharacter, bool topOfList)
{
if (addCharacter.npc)
{
if (this.needsPath.IndexOf(addCharacter) == -1)
{
if (topOfList)
{
this.needsPath.Insert(0, addCharacter);
return;
}
this.needsPath.Add(addCharacter);
return;
}
}
else if (this.needsPathParty.IndexOf(addCharacter) == -1)
{
if (topOfList)
{
this.needsPathParty.Insert(0, addCharacter);
return;
}
this.needsPathParty.Add(addCharacter);
}
}
// Token: 0x060007BC RID: 1980 RVA: 0x000AB530 File Offset: 0x000A9730
public void RemoveNeedsPath(Character c)
{
for (int i = 0; i < this.needsPath.Count; i++)
{
if (this.needsPath[i] == c)
{
this.needsPath[i] = null;
}
}
this.needsPath.RemoveAll((Character item) => item == null);
}
// Token: 0x060007BD RID: 1981 RVA: 0x000AB5A0 File Offset: 0x000A97A0
public bool InPathQueue(Character c)
{
for (int i = 0; i < this.needsPath.Count; i++)
{
if (this.needsPath[i] == c)
{
return true;
}
}
return false;
}
// Token: 0x060007BE RID: 1982 RVA: 0x000AB5DC File Offset: 0x000A97DC
public void CloseAllMenus()
{
Links.x.tooltip.EndHoverText(null, true);
if (Links.x.options.contents1.activeSelf)
{
Links.x.options.StartEndMenu(true);
return;
}
for (int i = this.openMenus.Count - 1; i >= 0; i--)
{
if (this.openMenus[i] == Links.x.formation.gameObject)
{
Links.x.formation.StartEndMenu(false);
return;
}
if (Links.x.characterSheet.levelUpMenu && this.openMenus[i] == Links.x.characterSheet.levelUpMenu.gameObject)
{
Links.x.characterSheet.levelUpMenu.CloseMenu();
return;
}
if (this.openMenus[i] == Links.x.characterSheet.gameObject)
{
Links.x.characterSheet.StartEndMenu(false, false);
return;
}
if (this.openMenus[i] == Links.x.forfeits.gameObject)
{
Links.x.forfeits.CloseMenu(false);
return;
}
if (this.openMenus[i] == Links.x.inventory.enchantMenu)
{
Links.x.inventory.enchantMenu.CloseMenu();
return;
}
if (this.openMenus[i] == Links.x.saveLoad.gameObject && !Links.x.saveLoad.characterDead)
{
Links.x.saveLoad.StartEndMenu(false);
return;
}
if (this.openMenus[i] == Links.x.sceneMap.gameObject)
{
Links.x.sceneMap.StartEndMenu(false);
return;
}
if (this.openMenus[i] == Links.x.journal.gameObject)
{
Links.x.journal.StartEndMenu(false);
return;
}
if (this.openMenus[i] == Links.x.hudControl.tipsMenu)
{
Links.x.hudControl.CloseTips();
return;
}
if (this.openMenus[i] == Links.x.forfeits.gameObject)
{
Links.x.forfeits.CloseMenu(false);
return;
}
if (this.openMenus[i] == Links.x.spellcrafting.gameObject)
{
Links.x.spellcrafting.StartEndMenu(false);
return;
}
if (this.openMenus[i] == Links.x.rest.gameObject)
{
Links.x.rest.CloseMenu(false);
return;
}
}
}
// Token: 0x060007BF RID: 1983 RVA: 0x000AB8D8 File Offset: 0x000A9AD8
public void SetControlsText(bool pocketTextOnly)
{
if (!Links.x.main)
{
return;
}
this.controllerName = "Xbox_Icons";
this.controllers = Input.GetJoystickNames();
if (this.controllers != null && this.controllers.Length != 0 && this.playerInput.devices.Count > 0)
{
string text = "Controllers: ";
InputDevice inputDevice = this.playerInput.devices[0];
Debug.Log(text + ((inputDevice != null) ? inputDevice.ToString() : null));
}
bool flag = false;
this.currentSpriteSheetAsset = 0;
foreach (string text2 in this.controllers)
{
if (!flag && this.joy)
{
Debug.Log("Controller name " + text2);
if (!Records.x.steamDeck && (text2.ToLower().Contains("box") || text2.ToLower().Contains("xinput")))
{
this.controllerName = "Xbox_Icons";
this.currentSpriteSheetAsset = 1;
flag = true;
}
else if (!Records.x.steamDeck && (text2.ToLower().Contains("tation") || text2.ToLower().Contains("dual")))
{
this.controllerName = "Playstation_Icons";
this.currentSpriteSheetAsset = 2;
flag = true;
}
else if (!Records.x.steamDeck && (text2.ToLower().Contains("witch") || text2.ToLower().Contains("pro")))
{
this.controllerName = "Switch_Icons";
this.currentSpriteSheetAsset = 3;
flag = true;
}
else if (text2.ToLower().Contains("team") || Records.x.steamDeck)
{
this.controllerName = "SteamDeck_Icons";
this.currentSpriteSheetAsset = 4;
flag = true;
}
else
{
this.controllerName = "Xbox_Icons";
this.currentSpriteSheetAsset = 1;
flag = true;
}
}
}
if (!Links.x.gaia.sceneLoaded && this.joy && this.controllers.Length != 0)
{
Links.x.hudControl.SwitchController(true);
}
this.joystickTargetIcon.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
Links.x.partyColliderAdventure.UpdateControlsText();
Links.x.hudControl.Controller();
this.skipTxt.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.str.Clear();
this.str.Append("Cancel ");
this.str.Append(" <voffset=.4em><size=50><sprite=");
if (Links.x.mk)
{
int keyIconIndex = Links.x.keyControl.GetKeyIconIndex("RMB");
this.str.Append(keyIconIndex);
this.str.Append("></size></voffset>");
}
else
{
int controllerSprite = Links.x.gameplay.GetControllerSprite("Cancel", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset>");
}
this.skipTxt.text = this.str.ToString();
this.SetConfirmText("Confirm");
bool flag2 = this.mk;
if (!pocketTextOnly)
{
if (this.joy)
{
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
int num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Exit");
this.exitMenuText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Continue");
this.continueText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Return");
this.exitText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Cancel");
this.cancelText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Navigate ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Select Letter ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Done");
this.keyboardText2 = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Navigate ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Select Letter ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Continue");
this.keyboardText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Navigate ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Select Letter ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Cancel ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("BtnNorth", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Confirm");
this.keyboardText3 = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=30><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>to label");
this.pinOpenText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset><cspace=.5em></cspace>Move Item ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset><cspace=.5em></cspace>Place Item");
this.dragJoystickText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Start Dragging");
this.formationText = this.str.ToString();
this.str.Clear();
this.itemHoverText = this.str.ToString();
this.itemHoverUseText = this.str.ToString();
this.str.Clear();
this.itemHoverSplitUseText = this.str.ToString();
this.str.Clear();
this.itemHoverSplitText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Grab equipped item");
this.equipText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Move / ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Change Item / ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Return");
this.equipBagText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Swap / ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Switch Item / ");
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Cancel", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset>Return");
this.equipBagDragText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Joystick", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset> Rotate");
this.equipSpinningText = this.str.ToString();
this.str.Clear();
this.str.Append("<voffset=.4em><size=40><sprite=");
num = this.GetControllerSprite("Action", this.controllerName);
this.str.Append(num);
this.str.Append("></size></voffset> Drag Portraits");
this.formationText = this.str.ToString();
}
else
{
this.dragJoystickText = "";
}
}
this.str.Clear();
if (Links.x.joy)
{
this.interactButton.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.itemButton.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.mapButton.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.actionButton.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.gatherItemsButton.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.quickSaveBtn.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.interactButton.text = "<sprite=" + this.GetControllerSprite("Interact", this.controllerName).ToString() + ">";
this.itemButton.text = "<sprite=" + this.GetControllerSprite("BtnNorth", this.controllerName).ToString() + ">";
this.mapButton.text = "<sprite=" + this.GetControllerSprite("Cancel", this.controllerName).ToString() + ">";
this.actionButton.text = "<sprite=" + this.GetControllerSprite("Attack", this.controllerName).ToString() + ">";
this.gatherItemsButton.text = "<sprite=" + this.GetControllerSprite("Show Items", this.controllerName).ToString() + ">";
this.quickSaveBtn.text = "<sprite=" + this.GetControllerSprite("Save", this.controllerName).ToString() + ">";
}
}
// Token: 0x060007C0 RID: 1984 RVA: 0x000AC790 File Offset: 0x000AA990
public int GetControllerSprite(string type, string controllerName)
{
if (type == "Cancel")
{
if (controllerName == "Switch_Icons")
{
return 0;
}
if (controllerName == "Xbox_Icons")
{
return 1;
}
if (controllerName == "Playstation_Icons")
{
return 0;
}
if (controllerName == "SteamDeck_Icons")
{
return 1;
}
}
if (type == "Attack" || type == "Action")
{
if (controllerName == "Switch_Icons")
{
return 1;
}
if (controllerName == "Xbox_Icons")
{
return 0;
}
if (controllerName == "Playstation_Icons")
{
return 1;
}
if (controllerName == "SteamDeck_Icons")
{
return 0;
}
}
if (type == "Dodge")
{
if (controllerName == "Xbox_Icons")
{
return 15;
}
if (controllerName == "Playstation_Icons")
{
return 15;
}
if (controllerName == "Switch_Icons")
{
return 18;
}
if (controllerName == "SteamDeck_Icons")
{
return 21;
}
}
if (type == "Synergy")
{
if (controllerName == "Xbox_Icons")
{
return 10;
}
if (controllerName == "Playstation_Icons")
{
return 8;
}
if (controllerName == "Switch_Icons")
{
return 12;
}
if (controllerName == "SteamDeck_Icons")
{
return 10;
}
}
if (type == "Party1")
{
if (controllerName == "Xbox_Icons")
{
return 3;
}
if (controllerName == "Playstation_Icons")
{
return 3;
}
if (controllerName == "Switch_Icons")
{
return 4;
}
if (controllerName == "SteamDeck_Icons")
{
return 4;
}
}
if (type == "Party2")
{
if (controllerName == "Xbox_Icons")
{
return 4;
}
if (controllerName == "Playstation_Icons")
{
return 4;
}
if (controllerName == "Switch_Icons")
{
return 5;
}
if (controllerName == "SteamDeck_Icons")
{
return 5;
}
}
if (type == "Party3")
{
if (controllerName == "Xbox_Icons")
{
return 5;
}
if (controllerName == "Playstation_Icons")
{
return 5;
}
if (controllerName == "Switch_Icons")
{
return 6;
}
if (controllerName == "SteamDeck_Icons")
{
return 6;
}
}
if (type == "Party4")
{
if (controllerName == "Xbox_Icons")
{
return 2;
}
if (controllerName == "Playstation_Icons")
{
return 2;
}
if (controllerName == "Switch_Icons")
{
return 3;
}
if (controllerName == "SteamDeck_Icons")
{
return 3;
}
}
if (type == "Dock")
{
if (controllerName == "Xbox_Icons")
{
return 12;
}
if (controllerName == "Playstation_Icons")
{
return 14;
}
if (controllerName == "Switch_Icons")
{
return 15;
}
if (controllerName == "SteamDeck_Icons")
{
return 20;
}
}
if (type == "Show Items")
{
if (controllerName == "Xbox_Icons")
{
return 7;
}
if (controllerName == "Playstation_Icons")
{
return 7;
}
if (controllerName == "Switch_Icons")
{
return 9;
}
if (controllerName == "SteamDeck_Icons")
{
return 9;
}
}
if (type == "Right Joystick")
{
if (controllerName == "Xbox_Icons")
{
return 14;
}
if (controllerName == "Playstation_Icons")
{
return 17;
}
if (controllerName == "Switch_Icons")
{
return 16;
}
if (controllerName == "SteamDeck_Icons")
{
return 25;
}
}
if (type == "Joystick")
{
if (controllerName == "Xbox_Icons")
{
return 9;
}
if (controllerName == "Playstation_Icons")
{
return 10;
}
if (controllerName == "Switch_Icons")
{
return 10;
}
if (controllerName == "SteamDeck_Icons")
{
return 14;
}
}
if (type == "Interact")
{
if (controllerName == "Xbox_Icons")
{
return 18;
}
if (controllerName == "Playstation_Icons")
{
return 20;
}
if (controllerName == "Switch_Icons")
{
return 22;
}
if (controllerName == "SteamDeck_Icons")
{
return 29;
}
}
if (type == "BtnNorth")
{
if (controllerName == "Xbox_Icons")
{
return 19;
}
if (controllerName == "Playstation_Icons")
{
return 22;
}
if (controllerName == "Switch_Icons")
{
return 21;
}
if (controllerName == "SteamDeck_Icons")
{
return 30;
}
}
if (type == "InteractItems")
{
if (controllerName == "Xbox_Icons")
{
return 19;
}
if (controllerName == "Playstation_Icons")
{
return 22;
}
if (controllerName == "Switch_Icons")
{
return 21;
}
if (controllerName == "SteamDeck_Icons")
{
return 30;
}
}
if (type == "InteractExits")
{
if (controllerName == "Xbox_Icons")
{
return 0;
}
if (controllerName == "Playstation_Icons")
{
return 1;
}
if (controllerName == "Switch_Icons")
{
return 1;
}
if (controllerName == "SteamDeck_Icons")
{
return 0;
}
}
if (type == "Open Menus")
{
if (controllerName == "Xbox_Icons")
{
return 11;
}
if (controllerName == "Playstation_Icons")
{
return 12;
}
if (controllerName == "Switch_Icons")
{
return 14;
}
if (controllerName == "SteamDeck_Icons")
{
return 2;
}
}
if (type == "Save")
{
if (controllerName == "Xbox_Icons")
{
return 17;
}
if (controllerName == "Playstation_Icons")
{
return 18;
}
if (controllerName == "Switch_Icons")
{
return 13;
}
if (controllerName == "SteamDeck_Icons")
{
return 27;
}
}
if (type == "Press Joystick Left")
{
if (controllerName == "Xbox_Icons")
{
return 8;
}
if (controllerName == "Playstation_Icons")
{
return 20;
}
if (controllerName == "Switch_Icons")
{
return 10;
}
if (controllerName == "SteamDeck_Icons")
{
return 13;
}
}
if (type == "Press Joystick Right")
{
if (controllerName == "Xbox_Icons")
{
return 13;
}
if (controllerName == "Playstation_Icons")
{
return 16;
}
if (controllerName == "Switch_Icons")
{
return 17;
}
if (controllerName == "SteamDeck_Icons")
{
return 24;
}
}
return 0;
}
// Token: 0x060007C1 RID: 1985 RVA: 0x000ACD90 File Offset: 0x000AAF90
public void SetConfirmText(string n)
{
this.confirmTxt.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.str.Clear();
this.str.Append(n);
this.str.Append(" <voffset=.4em><size=50><sprite=");
if (Links.x.mk)
{
int keyIconIndex = Links.x.keyControl.GetKeyIconIndex("LMB");
this.str.Append(keyIconIndex);
this.str.Append("></size></voffset>");
}
else
{
int controllerSprite = Links.x.gameplay.GetControllerSprite("Action", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset>");
}
this.confirmTxt.text = this.str.ToString();
}
// Token: 0x060007C2 RID: 1986 RVA: 0x000ACE84 File Offset: 0x000AB084
public void StoneSound()
{
string text = "Clicks Stone A";
int num = Random.Range(0, 5);
if (num == 1)
{
text = "Clicks Stone B";
}
else if (num == 2)
{
text = "Clicks Stone C";
}
else if (num == 3)
{
text = "Clicks Stone D";
}
else if (num == 4)
{
text = "Clicks Stone E";
}
MasterAudio.PlaySoundAndForget(text, Random.Range(0.6f, 0.8f), new float?(1f), 0f, "", null);
}
// Token: 0x060007C3 RID: 1987 RVA: 0x000ACF00 File Offset: 0x000AB100
public void StoneSoundQuieter()
{
string text = "Clicks Stone A";
int num = Random.Range(0, 5);
if (num == 1)
{
text = "Clicks Stone B";
}
else if (num == 2)
{
text = "Clicks Stone C";
}
else if (num == 3)
{
text = "Clicks Stone D";
}
else if (num == 4)
{
text = "Clicks Stone E";
}
MasterAudio.PlaySoundAndForget(text, Random.Range(0.25f, 0.4f), new float?(1f), 0f, "", null);
}
// Token: 0x060007C4 RID: 1988 RVA: 0x000ACF7C File Offset: 0x000AB17C
public void WorldClick()
{
if (Records.x.pocketPause)
{
MasterAudio.PlaySoundAndForget("Target Click", Random.Range(0.9f, 1f) * 1.5f, new float?(1f), 0f, "", null);
return;
}
MasterAudio.PlaySoundAndForget("World Click", Random.Range(0.9f, 1f), new float?(1f), 0f, "", null);
}
// Token: 0x060007C5 RID: 1989 RVA: 0x000AD00C File Offset: 0x000AB20C
public Vector3 SubtractVectors(Vector3 a, Vector3 b)
{
Vector3 vector;
vector.x = a.x - b.x;
vector.y = a.y - b.y;
vector.z = a.z - b.z;
return vector;
}
// Token: 0x060007C6 RID: 1990 RVA: 0x000AD058 File Offset: 0x000AB258
public float AngleDir(Vector3 fwd, Vector3 targetDir, Vector3 up)
{
float num = Vector3.Dot(Vector3.Cross(fwd, targetDir), up);
if (num > 0f)
{
return 1f;
}
if (num <= 0f)
{
return -1f;
}
return 1f;
}
// Token: 0x060007C7 RID: 1991 RVA: 0x000AD094 File Offset: 0x000AB294
public void SetPositionAtWorldPoint(Vector3 worldPoint, RectTransform rt)
{
Vector3 vector = Links.x.worldCamera.WorldToScreenPoint(worldPoint);
vector.z = 0f;
vector.x = vector.x * (1920f / (float)Screen.width) - 960f;
vector.y = vector.y * (Links.x.canvasRT.sizeDelta.y / (float)Screen.height) - Links.x.canvasRT.sizeDelta.y / 2f;
rt.localPosition = vector;
}
// Token: 0x04000A89 RID: 2697
[Header("GAMEPLAY SETTINGS")]
public float gameHours;
// Token: 0x04000A8A RID: 2698
public int gameDays;
// Token: 0x04000A8B RID: 2699
public float gameMinutes;
// Token: 0x04000A8C RID: 2700
public float gameSeconds;
// Token: 0x04000A8D RID: 2701
public float seconds;
// Token: 0x04000A8E RID: 2702
public string timeOfDay = "Morning";
// Token: 0x04000A8F RID: 2703
public string currentTimeBlock;
// Token: 0x04000A90 RID: 2704
public float testRadius = 100f;
// Token: 0x04000A91 RID: 2705
private float updateGameTime;
// Token: 0x04000A92 RID: 2706
private float pausedTime;
// Token: 0x04000A93 RID: 2707
public bool attacking;
// Token: 0x04000A94 RID: 2708
public bool spellcasting;
// Token: 0x04000A95 RID: 2709
public bool throwingElixir;
// Token: 0x04000A96 RID: 2710
public bool spellTargetingGround;
// Token: 0x04000A97 RID: 2711
public bool spellTargetingParty;
// Token: 0x04000A98 RID: 2712
public bool spellTargetingEnemy;
// Token: 0x04000A99 RID: 2713
public bool charming;
// Token: 0x04000A9A RID: 2714
private bool startCombatFromPause;
// Token: 0x04000A9B RID: 2715
public Sunlight sunlightAnimator;
// Token: 0x04000A9C RID: 2716
public TextMeshProUGUI timeText;
// Token: 0x04000A9D RID: 2717
private PointerEventData pointer;
// Token: 0x04000A9E RID: 2718
private List<RaycastResult> raycastResults = new List<RaycastResult>();
// Token: 0x04000A9F RID: 2719
public List<GameObject> effectTileWaypoints = new List<GameObject>();
// Token: 0x04000AA0 RID: 2720
public List<Animator> effectTileWaypointAnimators = new List<Animator>();
// Token: 0x04000AA1 RID: 2721
private int screenW;
// Token: 0x04000AA2 RID: 2722
private int screenH;
// Token: 0x04000AA3 RID: 2723
public bool closeTheGap;
// Token: 0x04000AA4 RID: 2724
public bool playerInAction;
// Token: 0x04000AA5 RID: 2725
public bool startPocketPause;
// Token: 0x04000AA6 RID: 2726
[Header("INPUTS")]
public KeyControl keyControl;
// Token: 0x04000AA7 RID: 2727
private List<string> keyConverted;
// Token: 0x04000AA8 RID: 2728
private List<KeyCode> keyCodes;
// Token: 0x04000AA9 RID: 2729
public string settingFavorite;
// Token: 0x04000AAA RID: 2730
public GameObject currentEventObject;
// Token: 0x04000AAB RID: 2731
public GameObject firstEventObject;
// Token: 0x04000AAC RID: 2732
private GameObject prevEventObject;
// Token: 0x04000AAD RID: 2733
private int clickCount;
// Token: 0x04000AAE RID: 2734
private float clickTime;
// Token: 0x04000AAF RID: 2735
private float clickUpTime;
// Token: 0x04000AB0 RID: 2736
private float startMouseDownTime;
// Token: 0x04000AB1 RID: 2737
private float groupMouseTime;
// Token: 0x04000AB2 RID: 2738
public bool doubleClick;
// Token: 0x04000AB3 RID: 2739
public bool holdingMouseButton;
// Token: 0x04000AB4 RID: 2740
[Header("MOUSE + CONTROLLER")]
private float mouseDown;
// Token: 0x04000AB5 RID: 2741
public bool mouseVisible;
// Token: 0x04000AB6 RID: 2742
public bool mouseWormVisible;
// Token: 0x04000AB7 RID: 2743
public bool hitWater;
// Token: 0x04000AB8 RID: 2744
public bool hitBeach;
// Token: 0x04000AB9 RID: 2745
public bool hitItem;
// Token: 0x04000ABA RID: 2746
public bool hitFloor;
// Token: 0x04000ABB RID: 2747
public bool hitCharacter;
// Token: 0x04000ABC RID: 2748
public bool hitGameCardHover;
// Token: 0x04000ABD RID: 2749
public bool hitExit;
// Token: 0x04000ABE RID: 2750
public bool hitInteractable;
// Token: 0x04000ABF RID: 2751
public bool hitBoat;
// Token: 0x04000AC0 RID: 2752
public bool uiCanClick;
// Token: 0x04000AC1 RID: 2753
public bool uiHover;
// Token: 0x04000AC2 RID: 2754
public bool clickStartOnUIHover;
// Token: 0x04000AC3 RID: 2755
public bool waitingForClickUpOnCharacter;
// Token: 0x04000AC4 RID: 2756
public Item prevItem;
// Token: 0x04000AC5 RID: 2757
public Item item;
// Token: 0x04000AC6 RID: 2758
public Boat prevBoat;
// Token: 0x04000AC7 RID: 2759
public Boat boat;
// Token: 0x04000AC8 RID: 2760
public BreakableActions breakable;
// Token: 0x04000AC9 RID: 2761
public BreakableActions prevBreakable;
// Token: 0x04000ACA RID: 2762
public BreakableActions domeBreakable;
// Token: 0x04000ACB RID: 2763
public ChestActions chest;
// Token: 0x04000ACC RID: 2764
public ChestActions prevChest;
// Token: 0x04000ACD RID: 2765
public ChestActions domeChest;
// Token: 0x04000ACE RID: 2766
public DoorActions door;
// Token: 0x04000ACF RID: 2767
public DoorActions prevDoor;
// Token: 0x04000AD0 RID: 2768
public DoorActions domeDoor;
// Token: 0x04000AD1 RID: 2769
public DoorActions mapDoor;
// Token: 0x04000AD2 RID: 2770
public DoorActions prevMapDoor;
// Token: 0x04000AD3 RID: 2771
public PuzzleActions puzzle;
// Token: 0x04000AD4 RID: 2772
public PuzzleActions prevPuzzle;
// Token: 0x04000AD5 RID: 2773
public PuzzleActions domePuzzle;
// Token: 0x04000AD6 RID: 2774
public Character prevCharacter;
// Token: 0x04000AD7 RID: 2775
public Character character;
// Token: 0x04000AD8 RID: 2776
public Character prevGameCardCharacter;
// Token: 0x04000AD9 RID: 2777
public Character gameCardCharacter;
// Token: 0x04000ADA RID: 2778
public Character clickedCharacter;
// Token: 0x04000ADB RID: 2779
public Character targetingCharacter;
// Token: 0x04000ADC RID: 2780
public Character coneCharacter;
// Token: 0x04000ADD RID: 2781
public Character talkCharacter;
// Token: 0x04000ADE RID: 2782
public Character domeParty;
// Token: 0x04000ADF RID: 2783
public Character domeEnemy;
// Token: 0x04000AE0 RID: 2784
public Character attackingCharacter;
// Token: 0x04000AE1 RID: 2785
public MapExitActions exit;
// Token: 0x04000AE2 RID: 2786
public MapExitActions prevExit;
// Token: 0x04000AE3 RID: 2787
public MapExitActions intersectingExit;
// Token: 0x04000AE4 RID: 2788
private Vector3 mouseDownPosition;
// Token: 0x04000AE5 RID: 2789
private bool alreadyClicked;
// Token: 0x04000AE6 RID: 2790
public GraphNode currentExitNode;
// Token: 0x04000AE7 RID: 2791
public GraphNode currentInteractionNode;
// Token: 0x04000AE8 RID: 2792
public float mouseColor;
// Token: 0x04000AE9 RID: 2793
public Vector3 farPosition = new Vector3(10000f, 0f, 0f);
// Token: 0x04000AEA RID: 2794
public bool gettingPartyNodes;
// Token: 0x04000AEB RID: 2795
public bool combatStartedWithSkill;
// Token: 0x04000AEC RID: 2796
public bool showingAbilityUI;
// Token: 0x04000AED RID: 2797
public GameObject effectsTilePrefab;
// Token: 0x04000AEE RID: 2798
public GameObject effectsTilePrefabTooFar;
// Token: 0x04000AEF RID: 2799
public GameObject effectTileTooFar;
// Token: 0x04000AF0 RID: 2800
public Ray ray;
// Token: 0x04000AF1 RID: 2801
public int tileEffectRadius;
// Token: 0x04000AF2 RID: 2802
public string currentAbility;
// Token: 0x04000AF3 RID: 2803
public Library.Pagan spellPaganRow;
// Token: 0x04000AF4 RID: 2804
public GameObject clickedUI;
// Token: 0x04000AF5 RID: 2805
public GameObject selectedUI;
// Token: 0x04000AF6 RID: 2806
public Vector3 mousePoint;
// Token: 0x04000AF7 RID: 2807
public Transform lookAt;
// Token: 0x04000AF8 RID: 2808
public bool doLookAt;
// Token: 0x04000AF9 RID: 2809
public TextMeshProUGUI interactButton;
// Token: 0x04000AFA RID: 2810
public TextMeshProUGUI itemButton;
// Token: 0x04000AFB RID: 2811
public TextMeshProUGUI mapButton;
// Token: 0x04000AFC RID: 2812
public TextMeshProUGUI actionButton;
// Token: 0x04000AFD RID: 2813
public TextMeshProUGUI gatherItemsButton;
// Token: 0x04000AFE RID: 2814
public TextMeshProUGUI quickSaveBtn;
// Token: 0x04000AFF RID: 2815
public string exitMenuText;
// Token: 0x04000B00 RID: 2816
public string continueText;
// Token: 0x04000B01 RID: 2817
public string cancelText;
// Token: 0x04000B02 RID: 2818
public string exitText;
// Token: 0x04000B03 RID: 2819
public string keyboardText;
// Token: 0x04000B04 RID: 2820
public string keyboardText2;
// Token: 0x04000B05 RID: 2821
public string keyboardText3;
// Token: 0x04000B06 RID: 2822
public string gameFeedText;
// Token: 0x04000B07 RID: 2823
public string dragText;
// Token: 0x04000B08 RID: 2824
public string dragJoystickText;
// Token: 0x04000B09 RID: 2825
public string pinOpenText;
// Token: 0x04000B0A RID: 2826
public string partySwitchText;
// Token: 0x04000B0B RID: 2827
public string targetSwitchText;
// Token: 0x04000B0C RID: 2828
public string npcHoverText;
// Token: 0x04000B0D RID: 2829
public string pocketText;
// Token: 0x04000B0E RID: 2830
public string dockText;
// Token: 0x04000B0F RID: 2831
public string pocketTextSpell;
// Token: 0x04000B10 RID: 2832
public string formationText;
// Token: 0x04000B11 RID: 2833
public string itemHoverText;
// Token: 0x04000B12 RID: 2834
public string itemHoverUseText;
// Token: 0x04000B13 RID: 2835
public string equipText;
// Token: 0x04000B14 RID: 2836
public string equipBagDragText;
// Token: 0x04000B15 RID: 2837
public string equipBagText;
// Token: 0x04000B16 RID: 2838
public string equipSpinningText;
// Token: 0x04000B17 RID: 2839
public string itemHoverSplitUseText;
// Token: 0x04000B18 RID: 2840
public string itemHoverSplitText;
// Token: 0x04000B19 RID: 2841
public GameObject selectionCircle;
// Token: 0x04000B1A RID: 2842
public Animator selectionCircleAnimator;
// Token: 0x04000B1B RID: 2843
public bool dockOpen;
// Token: 0x04000B1C RID: 2844
public string dockSelected;
// Token: 0x04000B1D RID: 2845
private float timeHeld;
// Token: 0x04000B1E RID: 2846
private float targetTime;
// Token: 0x04000B1F RID: 2847
public string lastMenu;
// Token: 0x04000B20 RID: 2848
public bool resizing;
// Token: 0x04000B21 RID: 2849
public bool sailing;
// Token: 0x04000B22 RID: 2850
private bool targetingGroundCharacterHover;
// Token: 0x04000B23 RID: 2851
public bool openingAnotherMenu;
// Token: 0x04000B24 RID: 2852
public Item timerHoverItem;
// Token: 0x04000B25 RID: 2853
private IEnumerator routine;
// Token: 0x04000B26 RID: 2854
private IEnumerator arcCorout;
// Token: 0x04000B27 RID: 2855
public GraphNode mouseNode;
// Token: 0x04000B28 RID: 2856
public bool clickedUpCharacter;
// Token: 0x04000B29 RID: 2857
public bool clickedDownWindows;
// Token: 0x04000B2A RID: 2858
private Vector2 prevClickPosition;
// Token: 0x04000B2B RID: 2859
public GameObject joystickTarget;
// Token: 0x04000B2C RID: 2860
public TextMeshProUGUI joystickTargetIcon;
// Token: 0x04000B2D RID: 2861
public RectTransform joystickTargetRT;
// Token: 0x04000B2E RID: 2862
public GameObject attackDirection;
// Token: 0x04000B2F RID: 2863
public Material attackDirectionMaterial;
// Token: 0x04000B30 RID: 2864
[Header("LISTS")]
private List<Character> needsPath = new List<Character>();
// Token: 0x04000B31 RID: 2865
private List<Character> needsPathParty = new List<Character>();
// Token: 0x04000B32 RID: 2866
private List<Character> closestCharacters = new List<Character>();
// Token: 0x04000B33 RID: 2867
private List<GameObject> openMenus;
// Token: 0x04000B34 RID: 2868
private List<Character> party;
// Token: 0x04000B35 RID: 2869
private List<Character> dioramaCharacters;
// Token: 0x04000B36 RID: 2870
private List<Character> characters = new List<Character>();
// Token: 0x04000B37 RID: 2871
private List<Character> combatCharacters;
// Token: 0x04000B38 RID: 2872
private List<int> clumps = new List<int>();
// Token: 0x04000B39 RID: 2873
public List<MeshRenderer> hoverTilesNumbers = new List<MeshRenderer>();
// Token: 0x04000B3A RID: 2874
public List<GameObject> effectTiles = new List<GameObject>();
// Token: 0x04000B3B RID: 2875
private List<TileEffects> currentTileEffects;
// Token: 0x04000B3C RID: 2876
private List<Character> allCharacters;
// Token: 0x04000B3D RID: 2877
private List<Character> talkCharacters = new List<Character>();
// Token: 0x04000B3E RID: 2878
private List<ChestActions> chests = new List<ChestActions>();
// Token: 0x04000B3F RID: 2879
private List<DoorActions> doors = new List<DoorActions>();
// Token: 0x04000B40 RID: 2880
private List<Character> levelUpCharacters = new List<Character>();
// Token: 0x04000B41 RID: 2881
private List<int> levelUpSkills = new List<int>();
// Token: 0x04000B42 RID: 2882
public List<GraphNode> circleTiles = new List<GraphNode>();
// Token: 0x04000B43 RID: 2883
[Header("AI")]
public IEnumerator gatherNodesCoroutine;
// Token: 0x04000B44 RID: 2884
[Header("AI")]
public IEnumerator gatherGroundNodesCoroutine;
// Token: 0x04000B45 RID: 2885
private bool clickWait;
// Token: 0x04000B46 RID: 2886
private bool clickGroundWait;
// Token: 0x04000B47 RID: 2887
private List<GraphNode> allNodes;
// Token: 0x04000B48 RID: 2888
private List<int> allNodesTaken = new List<int>();
// Token: 0x04000B49 RID: 2889
private List<GraphNode> targetingNodes = new List<GraphNode>();
// Token: 0x04000B4A RID: 2890
private List<int> nodeInRadius = new List<int>();
// Token: 0x04000B4B RID: 2891
public List<GraphNode> pickedInteractionNodes = new List<GraphNode>();
// Token: 0x04000B4C RID: 2892
public List<GraphNode> pickedGroundNodes = new List<GraphNode>();
// Token: 0x04000B4D RID: 2893
private NNConstraint nodeConstraint = new NNConstraint();
// Token: 0x04000B4E RID: 2894
private List<GraphNode> tempPath;
// Token: 0x04000B4F RID: 2895
private List<GraphNode> tempNodes = new List<GraphNode>();
// Token: 0x04000B50 RID: 2896
private List<GraphNode> savedNodes = new List<GraphNode>();
// Token: 0x04000B51 RID: 2897
private List<bool> targetingBool = new List<bool>();
// Token: 0x04000B52 RID: 2898
private List<float> targetingDist = new List<float>();
// Token: 0x04000B53 RID: 2899
private WaitForSeconds delayShort = new WaitForSeconds(0.001f);
// Token: 0x04000B54 RID: 2900
private WaitForSeconds delayHalfSecond = new WaitForSeconds(0.5f);
// Token: 0x04000B55 RID: 2901
private WaitForSeconds delaySecond = new WaitForSeconds(1f);
// Token: 0x04000B56 RID: 2902
public Character actionCharacter;
// Token: 0x04000B57 RID: 2903
private Item mouseDownItem;
// Token: 0x04000B58 RID: 2904
[Header("HOTKEYS")]
public bool mk;
// Token: 0x04000B59 RID: 2905
public bool joy;
// Token: 0x04000B5A RID: 2906
public string hotkey1;
// Token: 0x04000B5B RID: 2907
public string hotkey2;
// Token: 0x04000B5C RID: 2908
public string hotkey3;
// Token: 0x04000B5D RID: 2909
public string hotkey4;
// Token: 0x04000B5E RID: 2910
public string hotkey5;
// Token: 0x04000B5F RID: 2911
public string hotkey6;
// Token: 0x04000B60 RID: 2912
public string hotkey7;
// Token: 0x04000B61 RID: 2913
public string hotkey8;
// Token: 0x04000B62 RID: 2914
public string hotkey9;
// Token: 0x04000B63 RID: 2915
public string hotkey10;
// Token: 0x04000B64 RID: 2916
public string hotkey11;
// Token: 0x04000B65 RID: 2917
public string hotkey12;
// Token: 0x04000B66 RID: 2918
public string hotkeyCharacter1;
// Token: 0x04000B67 RID: 2919
public string hotkeyCharacter2;
// Token: 0x04000B68 RID: 2920
public string hotkeyCharacter3;
// Token: 0x04000B69 RID: 2921
public string hotkeyCharacter4;
// Token: 0x04000B6A RID: 2922
public string hotkeyCharacter5;
// Token: 0x04000B6B RID: 2923
public string hotkeyCharacter6;
// Token: 0x04000B6C RID: 2924
public string hotkeyCharacter7;
// Token: 0x04000B6D RID: 2925
public string hotkeyCharacter8;
// Token: 0x04000B6E RID: 2926
public string hotkeyCharacter9;
// Token: 0x04000B6F RID: 2927
public string hotkeyCharacter10;
// Token: 0x04000B70 RID: 2928
public string hotkeyCharacter11;
// Token: 0x04000B71 RID: 2929
public string hotkeyCharacter12;
// Token: 0x04000B72 RID: 2930
private StringFast str = new StringFast(64);
// Token: 0x04000B73 RID: 2931
[Header("CONTROLLER")]
private string[] controllers;
// Token: 0x04000B74 RID: 2932
private int prevControllerCount;
// Token: 0x04000B75 RID: 2933
public int currentControllerCount;
// Token: 0x04000B76 RID: 2934
public PlayerInput playerInput;
// Token: 0x04000B77 RID: 2935
public InputAction action;
// Token: 0x04000B78 RID: 2936
public InputAction move;
// Token: 0x04000B79 RID: 2937
public InputAction zoom;
// Token: 0x04000B7A RID: 2938
public InputAction interact;
// Token: 0x04000B7B RID: 2939
public InputAction showAllItems;
// Token: 0x04000B7C RID: 2940
public InputAction switchTarget;
// Token: 0x04000B7D RID: 2941
public InputAction aim;
// Token: 0x04000B7E RID: 2942
public InputAction dock;
// Token: 0x04000B7F RID: 2943
public InputAction cancel;
// Token: 0x04000B80 RID: 2944
public InputAction quickSave;
// Token: 0x04000B81 RID: 2945
public InputAction rightJoyStick;
// Token: 0x04000B82 RID: 2946
public InputAction allMenus;
// Token: 0x04000B83 RID: 2947
public InputAction switchPartyUp;
// Token: 0x04000B84 RID: 2948
public InputAction switchPartyDown;
// Token: 0x04000B85 RID: 2949
public InputAction partyItemsLeft;
// Token: 0x04000B86 RID: 2950
public InputAction partyItemsRight;
// Token: 0x04000B87 RID: 2951
public InputAction hudLeft;
// Token: 0x04000B88 RID: 2952
public InputAction hudRight;
// Token: 0x04000B89 RID: 2953
public InputAction spell3;
// Token: 0x04000B8A RID: 2954
public InputAction spell4;
// Token: 0x04000B8B RID: 2955
public InputAction menus;
// Token: 0x04000B8C RID: 2956
public Vector2 rightJoystick;
// Token: 0x04000B8D RID: 2957
public float triggerAction;
// Token: 0x04000B8E RID: 2958
public float triggerInteract;
// Token: 0x04000B8F RID: 2959
public float triggerItems;
// Token: 0x04000B90 RID: 2960
public float triggerDodge;
// Token: 0x04000B91 RID: 2961
public float triggerAim;
// Token: 0x04000B92 RID: 2962
public float triggerDock;
// Token: 0x04000B93 RID: 2963
public float triggerCancel;
// Token: 0x04000B94 RID: 2964
public float triggerQuickSave;
// Token: 0x04000B95 RID: 2965
public float triggerAllMenus;
// Token: 0x04000B96 RID: 2966
public float triggerParty1;
// Token: 0x04000B97 RID: 2967
public float triggerParty2;
// Token: 0x04000B98 RID: 2968
public float triggerPartyItems3;
// Token: 0x04000B99 RID: 2969
public float triggerPartyItems4;
// Token: 0x04000B9A RID: 2970
public float triggerMenus;
// Token: 0x04000B9B RID: 2971
public float triggerHudLeft;
// Token: 0x04000B9C RID: 2972
public float triggerHudRight;
// Token: 0x04000B9D RID: 2973
public float prevTriggerAction;
// Token: 0x04000B9E RID: 2974
public float prevTriggerInteract;
// Token: 0x04000B9F RID: 2975
public float prevTriggerItems;
// Token: 0x04000BA0 RID: 2976
public float prevTriggerDodge;
// Token: 0x04000BA1 RID: 2977
public float prevTriggerAim;
// Token: 0x04000BA2 RID: 2978
public float prevTriggerDock;
// Token: 0x04000BA3 RID: 2979
public float prevTriggerCancel;
// Token: 0x04000BA4 RID: 2980
public float prevTriggerQuickSave;
// Token: 0x04000BA5 RID: 2981
public float prevTriggerAllMenus;
// Token: 0x04000BA6 RID: 2982
public float prevTriggerParty1;
// Token: 0x04000BA7 RID: 2983
public float prevTriggerParty2;
// Token: 0x04000BA8 RID: 2984
public float prevTriggerPartyItems3;
// Token: 0x04000BA9 RID: 2985
public float prevTriggerPartyItems4;
// Token: 0x04000BAA RID: 2986
public float prevTriggerMenus;
// Token: 0x04000BAB RID: 2987
public float prevTriggerHudLeft;
// Token: 0x04000BAC RID: 2988
public float prevTriggerHudRight;
// Token: 0x04000BAD RID: 2989
public bool actionStart;
// Token: 0x04000BAE RID: 2990
public bool actionDown;
// Token: 0x04000BAF RID: 2991
public bool actionUp;
// Token: 0x04000BB0 RID: 2992
public bool interactStart;
// Token: 0x04000BB1 RID: 2993
public bool itemsDown;
// Token: 0x04000BB2 RID: 2994
public bool itemsStart;
// Token: 0x04000BB3 RID: 2995
public bool itemsUp;
// Token: 0x04000BB4 RID: 2996
public bool targetDodgeStart;
// Token: 0x04000BB5 RID: 2997
public bool targetDodgeDown;
// Token: 0x04000BB6 RID: 2998
public bool targetDodgeUp;
// Token: 0x04000BB7 RID: 2999
public bool aimStart;
// Token: 0x04000BB8 RID: 3000
public bool aimUp;
// Token: 0x04000BB9 RID: 3001
public bool aimHold;
// Token: 0x04000BBA RID: 3002
public bool targetDodgeHold;
// Token: 0x04000BBB RID: 3003
public bool dockStart;
// Token: 0x04000BBC RID: 3004
public bool dockUp;
// Token: 0x04000BBD RID: 3005
public bool dockDown;
// Token: 0x04000BBE RID: 3006
public bool cancelStart;
// Token: 0x04000BBF RID: 3007
public bool quickSaveStart;
// Token: 0x04000BC0 RID: 3008
public bool party1Down;
// Token: 0x04000BC1 RID: 3009
public bool party2Down;
// Token: 0x04000BC2 RID: 3010
public bool partyItems3Down;
// Token: 0x04000BC3 RID: 3011
public bool partyItems4Down;
// Token: 0x04000BC4 RID: 3012
public bool spell1Down;
// Token: 0x04000BC5 RID: 3013
public bool spell2Down;
// Token: 0x04000BC6 RID: 3014
public bool spell3Down;
// Token: 0x04000BC7 RID: 3015
public bool spell4Down;
// Token: 0x04000BC8 RID: 3016
public bool menusDown;
// Token: 0x04000BC9 RID: 3017
public bool zooming;
// Token: 0x04000BCA RID: 3018
public bool hudLeftStart;
// Token: 0x04000BCB RID: 3019
public bool hudRightStart;
// Token: 0x04000BCC RID: 3020
public bool allMenusStart;
// Token: 0x04000BCD RID: 3021
public bool allMenusDown;
// Token: 0x04000BCE RID: 3022
public bool allMenusUp;
// Token: 0x04000BCF RID: 3023
private int currentHudButton;
// Token: 0x04000BD0 RID: 3024
private float lastDockTime;
// Token: 0x04000BD1 RID: 3025
private float targetGroundTime;
// Token: 0x04000BD2 RID: 3026
private float portraitChangeTime;
// Token: 0x04000BD3 RID: 3027
private AnimateButton prevDockButton;
// Token: 0x04000BD4 RID: 3028
public GameObject groundTargetingWaypoint;
// Token: 0x04000BD5 RID: 3029
public string controllerName;
// Token: 0x04000BD6 RID: 3030
public int currentSpriteSheetAsset;
// Token: 0x04000BD7 RID: 3031
public bool hudRightOpen;
// Token: 0x04000BD8 RID: 3032
public bool hudLeftOpen;
// Token: 0x04000BD9 RID: 3033
public bool descWindowOpen;
// Token: 0x04000BDA RID: 3034
public bool endDockNavigation;
// Token: 0x04000BDB RID: 3035
public bool inPartyDock;
// Token: 0x04000BDC RID: 3036
public GameObject hudLeftButton;
// Token: 0x04000BDD RID: 3037
public GameObject hudRightButton;
// Token: 0x04000BDE RID: 3038
public GameObject lastDockButton;
// Token: 0x04000BDF RID: 3039
public TextParser tp1;
// Token: 0x04000BE0 RID: 3040
public TextParser tp2;
// Token: 0x04000BE1 RID: 3041
public TextParser tp3;
// Token: 0x04000BE2 RID: 3042
public TextParser tp4;
// Token: 0x04000BE3 RID: 3043
public string lastMenuOpened;
// Token: 0x04000BE4 RID: 3044
public bool waitingForActionUp;
// Token: 0x04000BE5 RID: 3045
private Vector3 joyPosition;
// Token: 0x04000BE6 RID: 3046
public bool gameFeedScrolling;
// Token: 0x04000BE7 RID: 3047
public bool badgeScrolling;
// Token: 0x04000BE8 RID: 3048
public TextMeshProUGUI skipTxt;
// Token: 0x04000BE9 RID: 3049
public TextMeshProUGUI confirmTxt;
// Token: 0x04000BEA RID: 3050
public GameObject skipText;
// Token: 0x04000BEB RID: 3051
public GameObject confirmText;
// Token: 0x04000BEC RID: 3052
[Header("COMMANDS")]
private float gravity = -9.81f;
// Token: 0x04000BED RID: 3053
private float initialVelocity = 3f;
// Token: 0x04000BEE RID: 3054
private Quaternion bearing;
// Token: 0x04000BEF RID: 3055
private int trajectoryModifier = 1;
// Token: 0x04000BF0 RID: 3056
private Vector3 projectileVelocity;
// Token: 0x04000BF1 RID: 3057
private Vector3 arcTarget;
// Token: 0x04000BF2 RID: 3058
public float trajectoryPrecision = 20f;
// Token: 0x04000BF3 RID: 3059
public int maximumIterations = 100;
// Token: 0x04000BF4 RID: 3060
private Vector3 gravity2 = new Vector3(0f, -9.81f, 0f);
// Token: 0x04000BF5 RID: 3061
public GameObject lineRendererToDrawTrajectory;
// Token: 0x04000BF6 RID: 3062
private List<LineRenderer> openLineRenderers = new List<LineRenderer>();
// Token: 0x04000BF7 RID: 3063
private List<LineRenderer> usedLineRenderers = new List<LineRenderer>();
// Token: 0x04000BF8 RID: 3064
private Vector3 prevPos;
// Token: 0x04000BF9 RID: 3065
private List<Vector3> arcPoints = new List<Vector3>();
// Token: 0x04000BFA RID: 3066
private int currentArcIndex;
// Token: 0x04000BFB RID: 3067
private Vector3 previousPosition;
// Token: 0x04000BFC RID: 3068
private GameObject arcObject;
// Token: 0x04000BFD RID: 3069
public bool repositionTargeting;
// Token: 0x04000BFE RID: 3070
public bool defenseCircleTargeting;
// Token: 0x04000BFF RID: 3071
public Quaternion defenseCircleRotation;
// Token: 0x04000C00 RID: 3072
private Vector3 defenseCircleHoldPosition;
// Token: 0x04000C01 RID: 3073
private float defenseHoldTime;
// Token: 0x04000C02 RID: 3074
private float foundGroupTime;
// Token: 0x04000C03 RID: 3075
public GameObject messageDefenseHoldMK;
// Token: 0x04000C04 RID: 3076
public GameObject messageDefenseHoldQuickMK;
// Token: 0x04000C05 RID: 3077
public GameObject messageDefenseHoldJoy;
// Token: 0x04000C06 RID: 3078
public Animator messageDefenseHoldAnimMK;
// Token: 0x04000C07 RID: 3079
public Animator messageDefenseHoldQuickAnimMK;
// Token: 0x04000C08 RID: 3080
public Animator messageDefenseHoldAnimJoy;
// Token: 0x04000C09 RID: 3081
public Vector3 frontOfCircle;
// Token: 0x04000C0A RID: 3082
public Vector3 middleCircle;
// Token: 0x04000C0B RID: 3083
public Vector3 backOfCircle;
// Token: 0x04000C0C RID: 3084
public bool quickGroup;
// Token: 0x04000C0D RID: 3085
public bool quickReposition;
// Token: 0x04000C0E RID: 3086
public bool quickCommandAttack;
// Token: 0x04000C0F RID: 3087
public Quaternion circleRotation;
// Token: 0x04000C10 RID: 3088
private Vector3 savedGroupCommandPoint;
// Token: 0x04000C11 RID: 3089
public GameObject circleBreakObject;
// Token: 0x04000C12 RID: 3090
public bool makeCircleMode;
// Token: 0x04000C13 RID: 3091
public Character rallyTargetSelected;
// Token: 0x04000C14 RID: 3092
public GameObject rallyTargetInteractiveSelected;
}