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

1595 lines
43 KiB
C#

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<SphereCollider>();
}
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("<voffset=.4em><size=30><sprite=");
int controllerSprite = Links.x.gameplay.GetControllerSprite("InteractExits", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset> ");
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("<voffset=.4em><size=30><sprite=");
int controllerSprite2 = Links.x.gameplay.GetControllerSprite("InteractExits", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite2);
this.str.Append("></size></voffset> ");
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("<voffset=.4em><size=30><sprite=");
int controllerSprite3 = Links.x.gameplay.GetControllerSprite("InteractItems", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite3);
this.str.Append("></size></voffset>");
if (flag8)
{
this.closestItem.GetLinkedCharacter();
this.str.Append("Buy ");
}
else if (flag9)
{
if (flag10)
{
this.str.Append("<color=#629AA4>Steal</color>");
}
else
{
this.str.Append("<color=#629AA4>Steal</color> <color=#BF493B>(Stealing will be seen or heard)</color> ");
}
}
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("<color=#BF493B> (");
}
else
{
this.str.Append("<color=#92C861> (");
}
this.str.Append(cost);
this.str.Append(" emerald");
if (cost != 1f)
{
this.str.Append("s");
}
this.str.Append(")</color> ");
}
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 = "<sprite=10>";
this.controllerWheelTextLabel.text = " Target";
return;
}
this.controllerWheelTextIcon.text = "";
this.controllerWheelTextLabel.text = " ";
return;
}
else
{
if (targetCount > 1)
{
this.controllerWheelTextIcon.text = "<sprite=8> <sprite=10>";
this.controllerWheelTextLabel.text = "+ Change Target";
return;
}
this.controllerWheelTextIcon.text = "<sprite=8>";
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<BreakableActions>();
if (component && !component.destroyed)
{
Links.x.combat.AddRemoveInteraction(true, component, null, null, null);
}
if (!component)
{
PuzzleActions component2 = gameObject.GetComponent<PuzzleActions>();
if (component2 && component2.canBreak)
{
Links.x.combat.AddRemoveInteraction(true, null, null, component2, null);
}
if (!component2)
{
ChestActions component3 = gameObject.transform.parent.gameObject.GetComponent<ChestActions>();
if (component3 && !component3.destroyed && !component3.open)
{
Links.x.combat.AddRemoveInteraction(true, null, component3, null, null);
}
}
}
}
if (gameObject.layer == 21)
{
DoorActions component4 = gameObject.GetComponent<DoorActions>();
if (component4 && !component4.destroyed)
{
Links.x.combat.AddRemoveInteraction(true, null, null, null, component4);
}
}
}
if (this.adventure)
{
if (gameObject.layer == 6)
{
Character component5 = gameObject.GetComponent<Character>();
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<Boat>();
if (component6)
{
Links.x.hudControl.AddRemoveInteraction(true, null, null, null, null, null, null, component6);
}
}
if (gameObject.layer == 16)
{
BreakableActions breakableActions = gameObject.GetComponent<BreakableActions>();
if (!breakableActions)
{
breakableActions = gameObject.transform.parent.gameObject.GetComponent<BreakableActions>();
}
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<PuzzleActions>();
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<ChestActions>();
if (component8)
{
Links.x.hudControl.AddRemoveInteraction(true, null, null, component8, null, null, null, null);
}
}
}
}
if (gameObject.layer == 21)
{
DoorActions component9 = gameObject.GetComponent<DoorActions>();
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<MapExitIcon>().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<BoxCollider>();
if (component10)
{
this.beachColliderCenter = gameObject.transform.TransformPoint(component10.center);
}
else
{
SphereCollider component11 = gameObject.GetComponent<SphereCollider>();
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<Character>();
if (component && !component.party)
{
Links.x.hudControl.AddRemoveInteraction(false, component, null, null, null, null, null, null);
}
}
if (gameObject.layer == 16)
{
BreakableActions breakableActions = gameObject.GetComponent<BreakableActions>();
if (!breakableActions)
{
breakableActions = gameObject.transform.parent.gameObject.GetComponent<BreakableActions>();
}
if (breakableActions)
{
Links.x.hudControl.AddRemoveInteraction(false, null, breakableActions, null, null, null, null, null);
}
if (!breakableActions)
{
PuzzleActions component2 = gameObject.GetComponent<PuzzleActions>();
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<ChestActions>();
if (component3)
{
Links.x.hudControl.AddRemoveInteraction(false, null, null, component3, null, null, null, null);
}
}
}
}
if (gameObject.layer == 21)
{
DoorActions component4 = gameObject.GetComponent<DoorActions>();
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<MapExitIcon>().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<Boat>();
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<BreakableActions>();
if (component6 && !component6.destroyed)
{
Links.x.combat.AddRemoveInteraction(false, component6, null, null, null);
}
if (!component6)
{
PuzzleActions component7 = gameObject.GetComponent<PuzzleActions>();
if (component7 && component7.canBreak)
{
Links.x.combat.AddRemoveInteraction(false, null, null, component7, null);
}
if (!component7)
{
ChestActions component8 = gameObject.transform.parent.gameObject.GetComponent<ChestActions>();
if (component8 && !component8.destroyed)
{
Links.x.combat.AddRemoveInteraction(false, null, component8, null, null);
}
}
}
}
if (gameObject.layer == 21)
{
DoorActions component9 = gameObject.GetComponent<DoorActions>();
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<SpriteRenderer>();
this.beachIcon.GetComponent<MapExitIcon>().mapExit = null;
this.beachIcon.GetComponent<MapExitIcon>().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<Item> hitItems;
// Token: 0x04000CA9 RID: 3241
private List<Character> nearTalkCharacters;
// Token: 0x04000CAA RID: 3242
private List<BreakableActions> nearBreakables;
// Token: 0x04000CAB RID: 3243
private List<ChestActions> nearChests;
// Token: 0x04000CAC RID: 3244
private List<PuzzleActions> nearPuzzles;
// Token: 0x04000CAD RID: 3245
private List<DoorActions> nearDoors;
// Token: 0x04000CAE RID: 3246
private List<Boat> nearBoats;
// Token: 0x04000CAF RID: 3247
private List<MapExitActions> 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;
}