using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; // Token: 0x0200003F RID: 63 public class PartyCollider : MonoBehaviour { // Token: 0x06000804 RID: 2052 RVA: 0x000AFD78 File Offset: 0x000ADF78 private void Start() { if (this.adventure) { this.hitItems = this.itemCollector.hitItems; this.UpdateControlsText(); this.nearTalkCharacters = Links.x.hudControl.nearTalkCharacters; this.nearBreakables = Links.x.hudControl.nearBreakables; this.nearChests = Links.x.hudControl.nearChests; this.nearPuzzles = Links.x.hudControl.nearPuzzles; this.nearDoors = Links.x.hudControl.nearDoors; this.nearBoats = Links.x.hudControl.nearBoats; this.nearMapExits = Links.x.hudControl.nearMapExits; if (this.exitsAnimator.gameObject.activeSelf && this.exitsAnimator.gameObject.activeInHierarchy) { this.exitsAnimator.Play("ControllerButtonDeactive"); this.defendAnimator.gameObject.SetActive(false); this.interactAnimator.Play("ControllerButtonDeactive"); this.controllerWheel3.SetActive(true); this.SetTargetText(0); this.menusAnimator.Play("ControllerButtonActivate"); this.menuNoticeOn = true; } } } // Token: 0x06000805 RID: 2053 RVA: 0x000AFEB9 File Offset: 0x000AE0B9 public void SetRadius(float size) { if (!this.coll) { this.coll = base.gameObject.GetComponent(); } this.coll.radius = size; } // Token: 0x06000806 RID: 2054 RVA: 0x000AFEE8 File Offset: 0x000AE0E8 public void UpdatePocket() { if (Records.x.pocketPause && this.adventure) { this.nearBreakables = Links.x.combat.nearBreakables; this.nearChests = Links.x.combat.nearChests; this.nearPuzzles = Links.x.combat.nearPuzzles; this.nearDoors = Links.x.combat.nearDoors; } if (!Records.x.pocketPause && this.adventure) { this.nearBreakables = Links.x.hudControl.nearBreakables; this.nearChests = Links.x.hudControl.nearChests; this.nearPuzzles = Links.x.hudControl.nearPuzzles; this.nearDoors = Links.x.hudControl.nearDoors; } } // Token: 0x06000807 RID: 2055 RVA: 0x000AFFC8 File Offset: 0x000AE1C8 public void UpdateControlsText() { this.exitsText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); this.interactText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); } // Token: 0x06000808 RID: 2056 RVA: 0x000B0020 File Offset: 0x000AE220 public void ToggleController() { this.exitsAnimator.Play("ControllerButtonDeactive"); this.noticeOn = false; this.defendAnimator.gameObject.SetActive(false); this.interactAnimator.Play("ControllerButtonDeactive"); this.actionAnimator.Play("ControllerButtonActivate"); this.actionNoticeOn = true; this.menuNoticeOn = true; this.menusAnimator.Play("ControllerButtonActivate"); } // Token: 0x06000809 RID: 2057 RVA: 0x000B0093 File Offset: 0x000AE293 public bool InRangeToHover(Boat c) { return true; } // Token: 0x0600080A RID: 2058 RVA: 0x000B0096 File Offset: 0x000AE296 public bool InRangeToHover(Character c) { bool aimHold = Links.x.gameplay.aimHold; return true; } // Token: 0x0600080B RID: 2059 RVA: 0x000B00A9 File Offset: 0x000AE2A9 public bool InRangeToHover(DoorActions d) { bool aimHold = Links.x.gameplay.aimHold; return true; } // Token: 0x0600080C RID: 2060 RVA: 0x000B00BC File Offset: 0x000AE2BC public bool InRangeToHover(PuzzleActions d) { return true; } // Token: 0x0600080D RID: 2061 RVA: 0x000B00BF File Offset: 0x000AE2BF public bool InRangeToHover(BreakableActions d) { if (!d) { return false; } if (d.breakable.armor > 0) { bool aimHold = Links.x.gameplay.aimHold; return true; } return true; } // Token: 0x0600080E RID: 2062 RVA: 0x000B00EC File Offset: 0x000AE2EC public bool InRangeToHover(ChestActions d) { bool aimHold = Links.x.gameplay.aimHold; return true; } // Token: 0x0600080F RID: 2063 RVA: 0x000B00FF File Offset: 0x000AE2FF public bool InRangeToHover(Item d) { return d && this.InRange(d.tr.position); } // Token: 0x06000810 RID: 2064 RVA: 0x000B011C File Offset: 0x000AE31C public bool InRangeToHover(MapExitActions d) { return true; } // Token: 0x06000811 RID: 2065 RVA: 0x000B011F File Offset: 0x000AE31F public bool InRange(Boat c) { return c && this.InRange(c.tr.position); } // Token: 0x06000812 RID: 2066 RVA: 0x000B013C File Offset: 0x000AE33C public bool InRange(Character c) { return c && ((!Records.x.partySailing && c.isBoro) || (c.hostility < 2 && !c.attackingUntilBribe && c.npc && !c.stats.animal && c.IsSentient() && !c.dayNightVanishing && !Records.x.InCombat(false) && c.stats.dialogueFile != "")) && this.InRange(c.currentPosition); } // Token: 0x06000813 RID: 2067 RVA: 0x000B01CF File Offset: 0x000AE3CF public bool InRange(DoorActions d) { return true; } // Token: 0x06000814 RID: 2068 RVA: 0x000B01D2 File Offset: 0x000AE3D2 public bool InRange(PuzzleActions d) { return true; } // Token: 0x06000815 RID: 2069 RVA: 0x000B01D5 File Offset: 0x000AE3D5 public bool InRange(BreakableActions d) { return true; } // Token: 0x06000816 RID: 2070 RVA: 0x000B01D8 File Offset: 0x000AE3D8 public bool InRange(ChestActions d) { return true; } // Token: 0x06000817 RID: 2071 RVA: 0x000B01DB File Offset: 0x000AE3DB public bool InRange(Item d) { return d && this.InRange(d.tr.position); } // Token: 0x06000818 RID: 2072 RVA: 0x000B01F8 File Offset: 0x000AE3F8 public bool InRange(MapExitActions d) { return true; } // Token: 0x06000819 RID: 2073 RVA: 0x000B01FB File Offset: 0x000AE3FB public bool InRange(Vector3 pt) { return this.DistCheck(pt) < 25f; } // Token: 0x0600081A RID: 2074 RVA: 0x000B0210 File Offset: 0x000AE410 private void Update() { if (this.adventure && Links.x.joy) { if ((!this.hitBeach && this.hitItems.Count == 0 && this.nearTalkCharacters.Count == 0 && this.nearBreakables.Count == 0 && this.nearChests.Count == 0 && this.nearPuzzles.Count == 0 && this.nearDoors.Count == 0 && this.nearBoats.Count == 0 && this.nearMapExits.Count == 0) || Records.x.removeControls || Records.x.pocketPause || Links.x.gameplay.inPartyDock || Links.x.gameplay.gameFeedScrolling || Links.x.gameplay.badgeScrolling || !Links.x.gaia.sceneLoaded || Links.x.gameplay.makeCircleMode) { this.closestItem = null; if (this.hitItems.Count == 0) { this.closestItem = null; } this.closestCharacter = null; this.closestBreakable = null; this.closestChest = null; this.closestDoor = null; this.closestMapExit = null; this.closestBoat = null; this.closestPuzzle = null; this.closestMapExit = null; this.nearBeach = null; this.prevBeach = null; if (this.mapNoticeOn) { this.exitsAnimator.Play("ControllerButtonDeactive"); this.mapNoticeOn = false; } if (this.interactNoticeOn) { this.interactAnimator.Play("ControllerButtonDeactive"); this.interactNoticeOn = false; } if (Links.x.main) { this.forw = Links.x.main.tr.forward; } } else { if (this.closestCharacter) { GameObject gameObject = this.closestCharacter.gameObject; } if (this.closestBreakable) { GameObject gameObject2 = this.closestBreakable.gameObject; } if (this.closestChest) { GameObject gameObject3 = this.closestChest.gameObject; } if (this.closestDoor) { GameObject gameObject4 = this.closestDoor.gameObject; } if (this.closestPuzzle) { GameObject gameObject5 = this.closestPuzzle.gameObject; } if (this.closestBoat) { GameObject gameObject6 = this.closestBoat.gameObject; } this.closestCharacter = null; this.closestBreakable = null; this.closestChest = null; this.closestDoor = null; this.closestMapExit = null; this.closestBoat = null; this.closestPuzzle = null; this.closestItem = null; this.nearBeach = null; this.main = Links.x.main.tr.position; this.mainSight = Links.x.main.tr.position; Vector2 move = Links.x.fellowship.move; float num = Mathf.Atan2(move.x, move.y) / 3.1415927f * 180f; if (num < 0f) { num += 360f; } if (Links.x.main) { this.forw = Links.x.main.tr.forward; } Vector3 vector = this.main + this.forw * 3f; Vector3 vector2 = this.mainSight + this.forw * 3f; if (!Links.x.gameplay.aimHold) { vector2 = this.mainSight + this.forw * 3f; } if (Mathf.Abs(move.magnitude) > 0.1f && Links.x.gameplay.aimHold && !Links.x.gameplay.gameFeedScrolling && !Links.x.gameplay.badgeScrolling) { this.forw = Quaternion.Euler(0f, num + Links.x.worldCamera.transform.rotation.eulerAngles.y, 0f) * Vector3.forward; float num2 = 4f; vector = this.main + this.forw * (num2 * Mathf.Abs(move.magnitude)); vector2 = this.mainSight + this.forw * (num2 * Mathf.Abs(move.magnitude)); } this.main = vector; this.mainSight = vector2; int num3 = 0; float num4 = 10000f; if (!Records.x.pocketPause) { for (int i = 0; i < this.hitItems.Count; i++) { if (this.InRangeToHover(this.hitItems[i])) { float num5 = this.Dist(this.hitItems[i].tr.position); if (num5 < num4) { this.closestItem = this.hitItems[i]; num4 = num5; num3++; } } if (this.InRange(this.hitItems[i])) { if (!this.hitItems[i].closeEnoughToPickup) { this.hitItems[i].ToggleCloseEnoughToPickup(true); } } else if (this.hitItems[i].closeEnoughToPickup) { this.hitItems[i].ToggleCloseEnoughToPickup(false); } } } num4 = 100000f; for (int j = 0; j < this.nearTalkCharacters.Count; j++) { if (this.InRangeToHover(this.nearTalkCharacters[j])) { float num6 = this.DistSight(this.nearTalkCharacters[j].currentPosition); if (num6 < num4 && !this.nearTalkCharacters[j].ambushing) { this.closestCharacter = this.nearTalkCharacters[j]; num4 = num6; num3++; } } } Character selectedRallyCharacter = Links.x.main; if (Links.x.pocketWheel.rallyWheelOpen && Links.x.pocketWheel.selectedRallyCharacter) { selectedRallyCharacter = Links.x.pocketWheel.selectedRallyCharacter; } num4 = 100000f; for (int k = 0; k < this.nearBreakables.Count; k++) { bool flag; if (Records.x.pocketPause) { flag = Links.x.combat.CheckInteractiveLineOfSight(this.nearBreakables[k], null, null, null, selectedRallyCharacter); } else { flag = this.InRangeToHover(this.nearBreakables[k]); } if (flag) { float num7; if (this.nearBreakables[k].breakable.armor > 0) { num7 = this.DistSight(this.nearBreakables[k].gameObject.transform.position); } else { num7 = this.Dist(this.nearBreakables[k].gameObject.transform.position); } if (num7 < num4) { this.closestBreakable = this.nearBreakables[k]; num4 = num7; num3++; } } } num4 = 100000f; for (int l = 0; l < this.nearChests.Count; l++) { bool flag2; if (Records.x.pocketPause) { flag2 = Links.x.combat.CheckInteractiveLineOfSight(null, null, this.nearChests[l], null, selectedRallyCharacter); } else { flag2 = this.InRangeToHover(this.nearChests[l]); } if (flag2) { float num8 = this.DistSight(this.nearChests[l].gameObject.transform.position); if (num8 < num4) { this.closestChest = this.nearChests[l]; num4 = num8; num3++; } } } num4 = 100000f; for (int m = 0; m < this.nearMapExits.Count; m++) { if (this.InRangeToHover(this.nearMapExits[m])) { float num9 = this.Dist(this.nearMapExits[m].mapExit.doorPoint); if (num9 < num4) { this.closestMapExit = this.nearMapExits[m]; num4 = num9; num3++; } } } num4 = 100000f; for (int n = 0; n < this.nearDoors.Count; n++) { bool flag3; if (Records.x.pocketPause) { flag3 = Links.x.combat.CheckInteractiveLineOfSight(null, this.nearDoors[n], null, null, selectedRallyCharacter); } else { flag3 = this.InRangeToHover(this.nearDoors[n]); } if (flag3) { float num10 = this.DistSight(this.nearDoors[n].lockColliderPosition); if (num10 < num4) { this.closestDoor = this.nearDoors[n]; num4 = num10; num3++; } } } num4 = 100000f; for (int num11 = 0; num11 < this.nearPuzzles.Count; num11++) { bool flag4; if (Records.x.pocketPause) { flag4 = Links.x.combat.CheckInteractiveLineOfSight(null, null, null, this.nearPuzzles[num11], selectedRallyCharacter); } else { flag4 = this.InRangeToHover(this.nearPuzzles[num11]); } if (flag4) { float num12 = this.Dist(this.nearPuzzles[num11].gameObject.transform.position); if (num12 < num4) { this.closestPuzzle = this.nearPuzzles[num11]; num4 = num12; num3++; } } } num4 = 100000f; for (int num13 = 0; num13 < this.nearBoats.Count; num13++) { if (this.InRangeToHover(this.nearBoats[num13])) { float num14 = this.Dist(this.nearBoats[num13].tr.position); if (num14 < num4) { this.closestBoat = this.nearBoats[num13]; num4 = num14; num3++; } } } num4 = 100000f; GameObject gameObject7 = null; int num15 = -1; for (int num16 = 0; num16 < 8; num16++) { float num17 = 100000f; if (num16 == 0 && this.closestItem) { num17 = this.Dist(this.closestItem.tr.position); } if (num16 == 1 && this.closestCharacter) { num17 = this.DistSight(this.closestCharacter.tr.position); } if (num16 == 2 && this.closestBreakable) { if (this.closestBreakable.breakable.armor > 0) { num17 = this.DistSight(this.closestBreakable.gameObject.transform.position); } else { num17 = this.Dist(this.closestBreakable.gameObject.transform.position); } } if (num16 == 3 && this.closestChest) { num17 = this.DistSight(this.closestChest.gameObject.transform.position); } if (num16 == 4 && this.closestDoor) { num17 = this.DistSight(this.closestDoor.lockColliderPosition); } if (num16 == 5 && this.closestMapExit) { num17 = this.Dist(this.closestMapExit.mapExit.doorPoint); } if (num16 == 6 && this.closestBoat) { num17 = this.Dist(this.closestBoat.tr.position); } if (num16 == 7 && this.closestPuzzle) { num17 = this.Dist(this.closestPuzzle.gameObject.transform.position); } if (num17 < num4) { num15 = num16; num4 = num17; } } this.SetTargetText(num3); if (Records.x.pocketPause) { num15 = -1; } bool flag5 = true; if (num15 > -1) { if (num15 == 1 && this.closestCharacter) { gameObject7 = this.closestCharacter.gameObject; flag5 = this.InRange(this.closestCharacter); this.closestBreakable = null; this.closestChest = null; this.closestDoor = null; this.closestBoat = null; this.closestPuzzle = null; this.closestMapExit = null; this.closestItem = null; if (this.closestCharacter.stats.dialogueFile != "") { this.interactText.text = ""; this.interactIcon.sprite = this.talkSprite; } else { this.interactText.text = ""; this.interactIcon.sprite = this.quipSprite; } } if (num15 == 2 && this.closestBreakable) { this.closestCharacter = null; gameObject7 = this.closestBreakable.gameObject; flag5 = this.InRange(this.closestBreakable); this.interactText.text = ""; this.closestChest = null; this.closestDoor = null; this.closestBoat = null; this.closestPuzzle = null; this.closestItem = null; this.closestMapExit = null; this.interactIcon.sprite = this.kickSprite; } if (num15 == 5 && this.closestMapExit) { this.closestCharacter = null; gameObject7 = this.closestMapExit.gameObject; flag5 = this.InRange(this.closestMapExit); this.interactText.text = ""; this.closestChest = null; this.closestDoor = null; this.closestBoat = null; this.closestPuzzle = null; this.closestItem = null; this.closestBreakable = null; } if (num15 == 0 && this.closestItem) { this.closestCharacter = null; gameObject7 = this.closestItem.gameObject; flag5 = this.InRange(this.closestItem); this.interactText.text = ""; this.closestChest = null; this.closestDoor = null; this.closestBoat = null; this.closestPuzzle = null; this.closestMapExit = null; this.closestBreakable = null; } if (num15 == 3 && this.closestChest) { this.closestCharacter = null; this.closestBreakable = null; gameObject7 = this.closestChest.gameObject; if (this.closestChest.HasKey(Links.x.main)) { this.interactIcon.sprite = this.keySprite; this.interactText.text = ""; } else { this.interactIcon.sprite = this.lockSprite; this.interactText.text = ""; } flag5 = this.InRange(this.closestChest); this.closestDoor = null; this.closestMapExit = null; this.closestItem = null; this.closestBoat = null; this.closestPuzzle = null; } if (num15 == 4 && this.closestDoor) { this.closestCharacter = null; this.closestBreakable = null; this.closestChest = null; gameObject7 = this.closestDoor.gameObject; if (!this.closestDoor.HasKey(Links.x.main)) { this.interactText.text = ""; this.interactIcon.sprite = this.lockSprite; } else { this.interactIcon.sprite = this.keySprite; this.interactText.text = ""; } flag5 = this.InRange(this.closestDoor); this.closestBoat = null; this.closestPuzzle = null; this.closestMapExit = null; this.closestItem = null; } if (num15 == 6 && this.closestBoat) { this.closestCharacter = null; this.closestBreakable = null; this.closestMapExit = null; this.closestItem = null; this.closestChest = null; this.closestDoor = null; gameObject7 = this.closestBoat.gameObject; flag5 = this.InRange(this.closestBoat); this.interactText.text = "Loot"; this.closestPuzzle = null; this.interactIcon.sprite = this.emptySprite; } if (num15 == 7 && this.closestPuzzle) { this.closestCharacter = null; this.closestBreakable = null; this.closestChest = null; this.closestDoor = null; this.closestBoat = null; gameObject7 = this.closestPuzzle.gameObject; flag5 = this.InRange(this.closestPuzzle); this.interactText.text = ""; this.interactIcon.sprite = this.useSprite; this.closestMapExit = null; this.closestItem = null; } } if (gameObject7 && flag5) { if (!this.interactNoticeOn && !Records.x.pocketPause) { this.interactAnimator.Play("ControllerButtonActivate"); this.interactNoticeOn = true; } } else if (this.interactNoticeOn) { this.interactAnimator.Play("ControllerButtonDeactive"); this.interactNoticeOn = false; } bool flag6 = false; if (gameObject7 && this.closestMapExit && gameObject7 == this.closestMapExit.gameObject) { flag6 = true; } bool flag7 = false; if (gameObject7 && this.closestItem && gameObject7 == this.closestItem.gameObject) { flag7 = true; } if (flag6 && this.closestMapExit != this.prevExit) { this.str.Clear(); this.str.Append(" "); if (this.closestMapExit.mapExit.exitTo == MapExit.exitToNames.Interiors || this.closestMapExit.mapExit.exitTo == MapExit.exitToNames.Exterior) { this.str.Append("Use doorway"); this.interactIcon.sprite = this.doorSprite; } else { this.str.Append("Exit map"); this.interactIcon.sprite = this.mapSprite; } this.interactText.text = ""; this.interactIconAddon.enabled = false; } this.prevExit = this.closestMapExit; if (false) { if (!this.closestMapExit && this.hitBeach && !Records.x.removeControls && !Records.x.InCombat(false)) { this.nearBeach = this.hitBeach; if (this.nearBeach != this.prevBeach) { this.str.Clear(); this.str.Append(" "); if (Records.x.partySailing) { this.str.Append("Beach boat"); this.exitsIcon.sprite = this.beachSprite; } else { this.str.Append("Sail"); this.exitsIcon.sprite = this.sailingSprite; } this.interactIconAddon.enabled = false; } } this.prevBeach = this.nearBeach; } if (Records.x.removeControls || (!this.closestMapExit && !this.nearBeach)) { this.nearBeach = null; this.prevBeach = null; } if (flag7 && this.closestItem != this.prevItem) { bool flag8 = this.closestItem.forSale; bool flag9 = false; bool flag10 = false; if (Links.x.main.body.sneaking) { flag9 = true; } if (flag9) { this.closestItem.GetLinkedCharacter(); if (this.closestItem.linkedCharacter) { flag10 = this.closestItem.CheckToSteal(false); } else { flag9 = false; } } if (this.closestItem.forSale) { this.closestItem.GetLinkedCharacter(); if (!this.closestItem.linkedCharacter) { this.closestItem.forSale = false; flag8 = false; } if (this.closestItem.linkedCharacter) { if (this.closestItem.linkedCharacter.dead) { this.closestItem.forSale = false; flag8 = false; } else if (this.closestItem.linkedCharacter.stunned) { flag8 = false; } } if (flag9) { flag8 = false; } } this.str.Clear(); this.str.Append(""); if (flag8) { this.closestItem.GetLinkedCharacter(); this.str.Append("Buy "); } else if (flag9) { if (flag10) { this.str.Append("Steal"); } else { this.str.Append("Steal (Stealing will be seen or heard) "); } } else { this.str.Append("Pick up "); } if (this.closestItem.stackSize > 1) { this.str.Append(this.closestItem.stackSize); this.str.Append(" "); } this.str.Append(this.closestItem.invRow._DisplayName); if (this.closestItem.stackSize > 1 && !this.closestItem.invRow._DisplayName.Contains("+")) { this.str.Append("s"); } if (flag8) { float cost = this.closestItem.GetCost(false, Links.x.main, this.closestItem.linkedCharacter); if ((float)Links.x.inventory.emeralds < cost) { this.str.Append(" ("); } else { this.str.Append(" ("); } this.str.Append(cost); this.str.Append(" emerald"); if (cost != 1f) { this.str.Append("s"); } this.str.Append(") "); } else { this.interactIconAddon.enabled = false; } this.interactIcon.sprite = Links.x.archives.GetItem(this.closestItem.invRow._UIModel); this.interactText.text = ""; } this.prevItem = this.closestItem; } } if (this.adventure && !Links.x.joy) { if (this.noticeOn) { this.noticeOn = false; this.defendAnimator.gameObject.SetActive(false); } if (this.mapNoticeOn) { this.exitsAnimator.Play("ControllerButtonDeactive"); this.mapNoticeOn = false; } if (this.interactNoticeOn) { this.interactAnimator.Play("ControllerButtonDeactive"); this.interactNoticeOn = false; } if (this.actionNoticeOn) { this.actionAnimator.Play("ControllerButtonDeactive"); this.actionNoticeOn = false; } } } // Token: 0x0600081B RID: 2075 RVA: 0x000B1A34 File Offset: 0x000AFC34 public void SetTargetText(int targetCount) { if (Records.x.pocketPause) { if (Links.x.pocketWheel.targetSelection) { this.controllerWheelTextIcon.text = ""; this.controllerWheelTextLabel.text = " Target"; return; } this.controllerWheelTextIcon.text = ""; this.controllerWheelTextLabel.text = " "; return; } else { if (targetCount > 1) { this.controllerWheelTextIcon.text = " "; this.controllerWheelTextLabel.text = "+ Change Target"; return; } this.controllerWheelTextIcon.text = ""; this.controllerWheelTextLabel.text = " Target"; return; } } // Token: 0x0600081C RID: 2076 RVA: 0x000B1AE8 File Offset: 0x000AFCE8 public void ToggleMenu(bool state) { if (state) { if (!this.menuNoticeOn) { this.menuNoticeOn = true; this.menusAnimator.Play("ControllerButtonActivate"); return; } } else if (this.menuNoticeOn) { this.menuNoticeOn = false; this.menusAnimator.Play("ControllerButtonDeactive"); } } // Token: 0x0600081D RID: 2077 RVA: 0x000B1B38 File Offset: 0x000AFD38 public void ToggleDefend() { if (!Links.x.gameplay.inPartyDock && Links.x.main.IsSentient() && Records.x.InCombat(false) && Links.x.joy) { if (!this.noticeOn) { this.defendAnimator.gameObject.SetActive(true); this.noticeOn = true; return; } } else if (this.noticeOn) { this.defendAnimator.gameObject.SetActive(false); this.noticeOn = false; } } // Token: 0x0600081E RID: 2078 RVA: 0x000B1BC4 File Offset: 0x000AFDC4 public void PocketStart() { if (Links.x.joy) { this.actionImage.sprite = this.pocketSprite; this.exitsIcon.sprite = this.cancelSprite; this.exitsAnimator.gameObject.SetActive(true); this.exitsAnimator.Play("ControllerButtonActivate"); if (!this.actionNoticeOn) { this.actionAnimator.Play("ControllerButtonActivate"); this.actionNoticeOn = true; } } } // Token: 0x0600081F RID: 2079 RVA: 0x000B1C40 File Offset: 0x000AFE40 public void ToggleAction(bool state) { if (state) { if (!this.actionNoticeOn) { this.actionAnimator.Play("ControllerButtonActivate"); this.actionNoticeOn = true; return; } } else if (this.actionNoticeOn) { this.actionAnimator.Play("ControllerButtonDeactive"); this.actionNoticeOn = false; } } // Token: 0x06000820 RID: 2080 RVA: 0x000B1C90 File Offset: 0x000AFE90 public void PocketEnd() { if (Links.x.joy) { this.actionImage.sprite = this.pocketSprite; if (!this.closestMapExit && !this.nearBeach) { this.exitsAnimator.Play("ControllerButtonDeactive"); this.mapNoticeOn = false; } if (!this.actionNoticeOn) { this.actionAnimator.Play("ControllerButtonActivate"); this.actionNoticeOn = true; } } } // Token: 0x06000821 RID: 2081 RVA: 0x000B1D0C File Offset: 0x000AFF0C private float DistCheck(Vector3 p1) { p1.y = Links.x.main.currentPosition.y; return (p1 - Links.x.main.currentPosition).sqrMagnitude; } // Token: 0x06000822 RID: 2082 RVA: 0x000B1D54 File Offset: 0x000AFF54 private float Dist(Vector3 p1) { p1.y = this.main.y; return (p1 - this.main).sqrMagnitude; } // Token: 0x06000823 RID: 2083 RVA: 0x000B1D88 File Offset: 0x000AFF88 private float DistSight(Vector3 p1) { p1.y = this.mainSight.y; return (p1 - this.mainSight).sqrMagnitude; } // Token: 0x06000824 RID: 2084 RVA: 0x000B1DBC File Offset: 0x000AFFBC private float Dot(Vector3 p1) { Vector3 vector = Vector3.Normalize(p1 - this.main); return Vector3.Dot(this.forw, vector); } // Token: 0x06000825 RID: 2085 RVA: 0x000B1DE8 File Offset: 0x000AFFE8 private float Dot(Vector3 p1, Vector3 f) { Vector3 vector = Vector3.Normalize(p1 - this.main); return Vector3.Dot(f, vector); } // Token: 0x06000826 RID: 2086 RVA: 0x000B1E10 File Offset: 0x000B0010 private void OnTriggerEnter(Collider other) { GameObject gameObject = other.gameObject; if (gameObject) { if (this.combat) { if (gameObject.layer == 16) { BreakableActions component = gameObject.GetComponent(); if (component && !component.destroyed) { Links.x.combat.AddRemoveInteraction(true, component, null, null, null); } if (!component) { PuzzleActions component2 = gameObject.GetComponent(); if (component2 && component2.canBreak) { Links.x.combat.AddRemoveInteraction(true, null, null, component2, null); } if (!component2) { ChestActions component3 = gameObject.transform.parent.gameObject.GetComponent(); if (component3 && !component3.destroyed && !component3.open) { Links.x.combat.AddRemoveInteraction(true, null, component3, null, null); } } } } if (gameObject.layer == 21) { DoorActions component4 = gameObject.GetComponent(); if (component4 && !component4.destroyed) { Links.x.combat.AddRemoveInteraction(true, null, null, null, component4); } } } if (this.adventure) { if (gameObject.layer == 6) { Character component5 = gameObject.GetComponent(); if (component5 && !component5.party && (!component5.summoned || component5.npc) && ((!Records.x.partySailing && component5.isBoro) || !component5.isBoro)) { Links.x.hudControl.AddRemoveInteraction(true, component5, null, null, null, null, null, null); } } if (gameObject.layer == 19) { Boat component6 = gameObject.GetComponent(); if (component6) { Links.x.hudControl.AddRemoveInteraction(true, null, null, null, null, null, null, component6); } } if (gameObject.layer == 16) { BreakableActions breakableActions = gameObject.GetComponent(); if (!breakableActions) { breakableActions = gameObject.transform.parent.gameObject.GetComponent(); } if (breakableActions && !breakableActions.destroyed && breakableActions.breakable.armor == 0) { Links.x.hudControl.AddRemoveInteraction(true, null, breakableActions, null, null, null, null, null); } if (!breakableActions) { PuzzleActions component7 = gameObject.GetComponent(); if (component7) { component7.InRange(); Links.x.hudControl.AddRemoveInteraction(true, null, null, null, component7, null, null, null); } if (!component7) { ChestActions component8 = gameObject.transform.parent.gameObject.GetComponent(); if (component8) { Links.x.hudControl.AddRemoveInteraction(true, null, null, component8, null, null, null, null); } } } } if (gameObject.layer == 21) { DoorActions component9 = gameObject.GetComponent(); if (component9 && !component9.destroyed) { Links.x.hudControl.AddRemoveInteraction(true, null, null, null, null, component9, null, null); } } if (gameObject.layer == 13 && gameObject != this.beachCollector.beachIcon) { MapExitActions mapExit = other.gameObject.GetComponent().mapExit; Links.x.gameplay.intersectingExit = mapExit; Links.x.gameplay.intersectingExit.Near(true); Links.x.hudControl.AddRemoveInteraction(true, null, null, null, null, null, mapExit, null); } } } if (gameObject.layer == 14 && Records.x.BoroInParty()) { if (Records.x.partySailing) { this.hitBeach = gameObject; } else { this.hitBeach = gameObject; } if (this.beach) { BoxCollider component10 = gameObject.GetComponent(); if (component10) { this.beachColliderCenter = gameObject.transform.TransformPoint(component10.center); } else { SphereCollider component11 = gameObject.GetComponent(); this.beachColliderCenter = gameObject.transform.TransformPoint(component11.center); } if (Records.x.partySailing) { this.waterToBeach = null; this.beachToWater = gameObject; } else { this.waterToBeach = gameObject; this.beachToWater = null; } this.Icon(); } } } // Token: 0x06000827 RID: 2087 RVA: 0x000B221C File Offset: 0x000B041C private void OnTriggerExit(Collider other) { GameObject gameObject = other.gameObject; if (gameObject) { if (this.adventure) { if (gameObject.layer == 6) { Character component = gameObject.GetComponent(); if (component && !component.party) { Links.x.hudControl.AddRemoveInteraction(false, component, null, null, null, null, null, null); } } if (gameObject.layer == 16) { BreakableActions breakableActions = gameObject.GetComponent(); if (!breakableActions) { breakableActions = gameObject.transform.parent.gameObject.GetComponent(); } if (breakableActions) { Links.x.hudControl.AddRemoveInteraction(false, null, breakableActions, null, null, null, null, null); } if (!breakableActions) { PuzzleActions component2 = gameObject.GetComponent(); if (component2) { component2.OutOfRange(); Links.x.hudControl.AddRemoveInteraction(false, null, null, null, component2, null, null, null); } if (!component2) { ChestActions component3 = gameObject.transform.parent.gameObject.GetComponent(); if (component3) { Links.x.hudControl.AddRemoveInteraction(false, null, null, component3, null, null, null, null); } } } } if (gameObject.layer == 21) { DoorActions component4 = gameObject.GetComponent(); if (component4) { Links.x.hudControl.AddRemoveInteraction(false, null, null, null, null, component4, null, null); } } if (gameObject.layer == 13 && gameObject != this.beachCollector.beachIcon) { MapExitActions mapExit = other.gameObject.GetComponent().mapExit; mapExit.Near(false); if (Links.x.gameplay.intersectingExit == mapExit) { Links.x.gameplay.intersectingExit.Near(false); Links.x.gameplay.intersectingExit = null; } Links.x.hudControl.AddRemoveInteraction(false, null, null, null, null, null, mapExit, null); } if (gameObject.layer == 19) { Boat component5 = gameObject.GetComponent(); if (component5) { Links.x.hudControl.AddRemoveInteraction(false, null, null, null, null, null, null, component5); } } } if (gameObject.layer == 14 && Links.x.gaia.boro) { this.hitBeach = null; this.nearBeach = null; if (this.beach) { if (Records.x.partySailing) { this.waterToBeach = null; this.beachToWater = null; } else { this.waterToBeach = null; this.beachToWater = null; } this.RemoveIcon(); } } if (this.combat) { if (gameObject.layer == 16) { BreakableActions component6 = gameObject.GetComponent(); if (component6 && !component6.destroyed) { Links.x.combat.AddRemoveInteraction(false, component6, null, null, null); } if (!component6) { PuzzleActions component7 = gameObject.GetComponent(); if (component7 && component7.canBreak) { Links.x.combat.AddRemoveInteraction(false, null, null, component7, null); } if (!component7) { ChestActions component8 = gameObject.transform.parent.gameObject.GetComponent(); if (component8 && !component8.destroyed) { Links.x.combat.AddRemoveInteraction(false, null, component8, null, null); } } } } if (gameObject.layer == 21) { DoorActions component9 = gameObject.GetComponent(); if (component9 && !component9.destroyed) { Links.x.combat.AddRemoveInteraction(false, null, null, null, component9); } } } } } // Token: 0x06000828 RID: 2088 RVA: 0x000B259C File Offset: 0x000B079C public void SwitchBeachCollider() { if (Records.x.partySailing) { this.waterToBeach = this.beachToWater; this.beachToWater = null; } else { this.beachToWater = this.waterToBeach; this.waterToBeach = null; } this.SetSprite(); } // Token: 0x06000829 RID: 2089 RVA: 0x000B25D8 File Offset: 0x000B07D8 private void Icon() { if (!this.beachIcon) { this.beachIcon = Links.x.cellar.GetPooledGameObject(134); } this.beachIcon.layer = 13; this.beachIconSprite = this.beachIcon.GetComponent(); this.beachIcon.GetComponent().mapExit = null; this.beachIcon.GetComponent().beach = true; this.beachIcon.transform.position = this.NormalIconPosition(); this.beachIcon.transform.parent = base.transform.parent; this.beachIcon.transform.parent = null; this.beachIcon.SetActive(true); this.SetSprite(); } // Token: 0x0600082A RID: 2090 RVA: 0x000B26A0 File Offset: 0x000B08A0 public void RemoveIcon() { this.beachIcon.SetActive(false); } // Token: 0x0600082B RID: 2091 RVA: 0x000B26AE File Offset: 0x000B08AE public Vector3 NormalIconPosition() { return this.beachColliderCenter + new Vector3(0f, 2f, 0f); } // Token: 0x0600082C RID: 2092 RVA: 0x000B26CF File Offset: 0x000B08CF public void SetSprite() { if (!this.beachIconSprite) { return; } if (!Records.x.partySailing) { this.beachIconSprite.sprite = this.sailSprite; return; } this.beachIconSprite.sprite = this.dockSprite; } // Token: 0x04000C74 RID: 3188 public bool adventure; // Token: 0x04000C75 RID: 3189 public bool beach; // Token: 0x04000C76 RID: 3190 public bool combat; // Token: 0x04000C77 RID: 3191 private StringFast str = new StringFast(32); // Token: 0x04000C78 RID: 3192 private SphereCollider coll; // Token: 0x04000C79 RID: 3193 public ItemCollector itemCollector; // Token: 0x04000C7A RID: 3194 public PartyCollider combatCollector; // Token: 0x04000C7B RID: 3195 public PartyCollider beachCollector; // Token: 0x04000C7C RID: 3196 public bool noticeOn; // Token: 0x04000C7D RID: 3197 public bool mapNoticeOn; // Token: 0x04000C7E RID: 3198 public bool interactNoticeOn; // Token: 0x04000C7F RID: 3199 public bool actionNoticeOn; // Token: 0x04000C80 RID: 3200 public bool menuNoticeOn; // Token: 0x04000C81 RID: 3201 public GameObject nearBeach; // Token: 0x04000C82 RID: 3202 public GameObject waterToBeach; // Token: 0x04000C83 RID: 3203 public GameObject beachToWater; // Token: 0x04000C84 RID: 3204 public Item closestItem; // Token: 0x04000C85 RID: 3205 public Character closestCharacter; // Token: 0x04000C86 RID: 3206 public BreakableActions closestBreakable; // Token: 0x04000C87 RID: 3207 public ChestActions closestChest; // Token: 0x04000C88 RID: 3208 public DoorActions closestDoor; // Token: 0x04000C89 RID: 3209 public MapExitActions closestMapExit; // Token: 0x04000C8A RID: 3210 public Boat closestBoat; // Token: 0x04000C8B RID: 3211 public PuzzleActions closestPuzzle; // Token: 0x04000C8C RID: 3212 public Animator defendAnimator; // Token: 0x04000C8D RID: 3213 public Animator menusAnimator; // Token: 0x04000C8E RID: 3214 public RectTransform itemPickupRT; // Token: 0x04000C8F RID: 3215 public Animator exitsAnimator; // Token: 0x04000C90 RID: 3216 public TextMeshProUGUI exitsText; // Token: 0x04000C91 RID: 3217 public Image exitsIcon; // Token: 0x04000C92 RID: 3218 public Animator interactAnimator; // Token: 0x04000C93 RID: 3219 public TextMeshProUGUI interactText; // Token: 0x04000C94 RID: 3220 public Animator actionAnimator; // Token: 0x04000C95 RID: 3221 public Image interactIcon; // Token: 0x04000C96 RID: 3222 public Image interactIconAddon; // Token: 0x04000C97 RID: 3223 public Sprite doorSprite; // Token: 0x04000C98 RID: 3224 public Sprite mapSprite; // Token: 0x04000C99 RID: 3225 public Sprite beachSprite; // Token: 0x04000C9A RID: 3226 public Sprite sailingSprite; // Token: 0x04000C9B RID: 3227 public Image actionImage; // Token: 0x04000C9C RID: 3228 public Sprite cancelSprite; // Token: 0x04000C9D RID: 3229 public Sprite pocketSprite; // Token: 0x04000C9E RID: 3230 public Sprite attackSprite; // Token: 0x04000C9F RID: 3231 public Sprite spellSprite; // Token: 0x04000CA0 RID: 3232 public Sprite emptySprite; // Token: 0x04000CA1 RID: 3233 public Sprite lockSprite; // Token: 0x04000CA2 RID: 3234 public Sprite keySprite; // Token: 0x04000CA3 RID: 3235 public Sprite kickSprite; // Token: 0x04000CA4 RID: 3236 public Sprite talkSprite; // Token: 0x04000CA5 RID: 3237 public Sprite quipSprite; // Token: 0x04000CA6 RID: 3238 public Sprite useSprite; // Token: 0x04000CA7 RID: 3239 public RectTransform exitsRT; // Token: 0x04000CA8 RID: 3240 private List hitItems; // Token: 0x04000CA9 RID: 3241 private List nearTalkCharacters; // Token: 0x04000CAA RID: 3242 private List nearBreakables; // Token: 0x04000CAB RID: 3243 private List nearChests; // Token: 0x04000CAC RID: 3244 private List nearPuzzles; // Token: 0x04000CAD RID: 3245 private List nearDoors; // Token: 0x04000CAE RID: 3246 private List nearBoats; // Token: 0x04000CAF RID: 3247 private List nearMapExits; // Token: 0x04000CB0 RID: 3248 private Vector3 main; // Token: 0x04000CB1 RID: 3249 private Vector3 mainSight; // Token: 0x04000CB2 RID: 3250 private Vector3 forw; // Token: 0x04000CB3 RID: 3251 private Item prevItem; // Token: 0x04000CB4 RID: 3252 private MapExitActions prevExit; // Token: 0x04000CB5 RID: 3253 private GameObject hitBeach; // Token: 0x04000CB6 RID: 3254 private GameObject prevBeach; // Token: 0x04000CB7 RID: 3255 public GameObject controllerWheel3; // Token: 0x04000CB8 RID: 3256 public TextMeshProUGUI controllerWheelTextIcon; // Token: 0x04000CB9 RID: 3257 public TextMeshProUGUI controllerWheelTextLabel; // Token: 0x04000CBA RID: 3258 public GameObject beachIcon; // Token: 0x04000CBB RID: 3259 private SpriteRenderer beachIconSprite; // Token: 0x04000CBC RID: 3260 private Vector3 beachColliderCenter; // Token: 0x04000CBD RID: 3261 public Sprite sailSprite; // Token: 0x04000CBE RID: 3262 public Sprite dockSprite; }