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

4316 lines
105 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using DarkTonic.MasterAudio;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
// Token: 0x020000CC RID: 204
public class Pocket : MonoBehaviour
{
// Token: 0x060012AA RID: 4778 RVA: 0x00168B00 File Offset: 0x00166D00
private void Awake()
{
this.spellbook.SetActive(false);
this.ControllerMessage(false);
this.controllerWheel2.SetActive(false);
this.controllerWheel4.SetActive(false);
this.arrow.enabled = false;
this.rallyWheel.SetActive(false);
this.selectedRallyRTs = this.selectedAmmoImage.GetComponentsInChildren<RectTransform>();
}
// Token: 0x060012AB RID: 4779 RVA: 0x00168B64 File Offset: 0x00166D64
private string GetSelected()
{
if (this.character == this.c1)
{
return this.selected1;
}
if (this.character == this.c2)
{
return this.selected2;
}
if (this.character == this.c3)
{
return this.selected3;
}
if (this.character == this.c4)
{
return this.selected4;
}
this.UpdateCharacterLists(false);
return "Light Attack";
}
// Token: 0x060012AC RID: 4780 RVA: 0x00168BE8 File Offset: 0x00166DE8
private void SaveSelected()
{
if (this.character == this.c1)
{
this.selected1 = this.selected;
return;
}
if (this.character == this.c2)
{
this.selected2 = this.selected;
return;
}
if (this.character == this.c3)
{
this.selected3 = this.selected;
return;
}
if (this.character == this.c4)
{
this.selected4 = this.selected;
return;
}
this.UpdateCharacterLists(true);
}
// Token: 0x060012AD RID: 4781 RVA: 0x00168C7C File Offset: 0x00166E7C
private void UpdateCharacterLists(bool save)
{
bool flag = false;
if (this.c1 == null)
{
this.c1 = this.character;
flag = true;
}
if (!flag && !this.c2)
{
this.c2 = this.character;
flag = true;
}
if (!flag && !this.c3)
{
this.c3 = this.character;
flag = true;
}
if (!flag && !this.c4)
{
this.c4 = this.character;
flag = true;
}
if (!flag)
{
if (!Links.x.portraitOrder.Contains(this.c1))
{
this.c1 = null;
}
if (!Links.x.portraitOrder.Contains(this.c2))
{
this.c2 = null;
}
if (!Links.x.portraitOrder.Contains(this.c3))
{
this.c3 = null;
}
if (!Links.x.portraitOrder.Contains(this.c4))
{
this.c4 = null;
}
if (this.c1 == null)
{
this.c1 = this.character;
flag = true;
}
if (!flag && !this.c2)
{
this.c2 = this.character;
flag = true;
}
if (!flag && !this.c3)
{
this.c3 = this.character;
flag = true;
}
if (!flag && !this.c4)
{
this.c4 = this.character;
flag = true;
}
}
if (save && flag)
{
this.SaveSelected();
}
}
// Token: 0x060012AE RID: 4782 RVA: 0x00168E00 File Offset: 0x00167000
private void SetPocketImg(GameObject go)
{
bool flag = true;
if (this.selected.Contains("Attack"))
{
if (Links.x.combat.ItemCardCount() == 0)
{
flag = false;
}
}
else if (this.selected.Contains("Charm") && Links.x.combat.TargetCount() == 0)
{
flag = false;
}
if (flag)
{
Links.x.partyColliderAdventure.actionImage.sprite = go.GetComponent<Image>().sprite;
Links.x.partyColliderAdventure.ToggleAction(true);
return;
}
Links.x.partyColliderAdventure.ToggleAction(false);
}
// Token: 0x060012AF RID: 4783 RVA: 0x00168E9E File Offset: 0x0016709E
public void SetDirection(string toBtn)
{
}
// Token: 0x060012B0 RID: 4784 RVA: 0x00168EA0 File Offset: 0x001670A0
public void UpdateRotation(float rotationAmount)
{
if (Links.x.gameplay.currentEventObject)
{
Links.x.hudControl.SetJoyBox(Links.x.gameplay.currentEventObject.GetComponent<UITriggerButton>());
}
}
// Token: 0x060012B1 RID: 4785 RVA: 0x00168EDB File Offset: 0x001670DB
public void GetSelectedFromRotatation()
{
}
// Token: 0x060012B2 RID: 4786 RVA: 0x00168EE0 File Offset: 0x001670E0
private void SelectJoyObject()
{
Button button = null;
if (this.selected == "Light Attack")
{
this.selectedLightAtk.enabled = true;
button = this.lightAtkBtn;
}
else
{
this.selectedLightAtk.enabled = false;
}
if (this.selected == "Special Attack 1" && this.special1.enabled)
{
this.selectedSpecial1.enabled = true;
button = this.specialBtn1;
}
else
{
this.selectedSpecial1.enabled = false;
}
if (this.selected == "Medium Attack")
{
this.selectedMediumAtk.enabled = true;
button = this.mediumAtkBtn;
}
else
{
this.selectedMediumAtk.enabled = false;
}
if (this.selected == "Heavy Attack")
{
this.selectedHeavyAtk.enabled = true;
button = this.heavyAtkBtn;
}
else
{
this.selectedHeavyAtk.enabled = false;
}
if (this.selected == "Item 1")
{
this.selectedItem1.enabled = true;
button = this.item1Btn;
}
else
{
this.selectedItem1.enabled = false;
}
if (this.selected == "Item 2")
{
this.selectedItem2.enabled = true;
button = this.item2Btn;
}
else
{
this.selectedItem2.enabled = false;
}
if (this.selected == "Item 3")
{
this.selectedItem3.enabled = true;
button = this.item3Btn;
}
else
{
this.selectedItem3.enabled = false;
}
if (this.selected == "Charm")
{
this.selectedCharm.enabled = true;
button = this.charmBtn;
}
else
{
this.selectedCharm.enabled = false;
}
if (this.selected == "Spellbag")
{
this.selectedSpells.enabled = true;
button = this.spellsBtn;
}
else
{
this.selectedSpells.enabled = false;
}
if (this.selected == "Shout")
{
this.selectedShout.enabled = true;
button = this.shoutBtn;
}
else
{
this.selectedShout.enabled = false;
}
if (this.selected == "Sneak")
{
this.selectedSneak.enabled = true;
button = this.sneakBtn;
}
else
{
this.selectedSneak.enabled = false;
}
if (button)
{
EventSystem.current.SetSelectedGameObject(button.gameObject);
Links.x.hudControl.SetJoyBox(button.gameObject.GetComponent<UITriggerButton>());
this.SetPocketImg(button.gameObject);
}
this.RemoveCommandUI();
}
// Token: 0x060012B3 RID: 4787 RVA: 0x00169174 File Offset: 0x00167374
private string GetJoystickDirection(float angle)
{
if (angle >= 0f && angle < 45f)
{
return "Up";
}
if (angle >= 315f && angle <= 360f)
{
return "Up";
}
if (angle >= 225f && angle < 315f)
{
return "Left";
}
if (angle >= 135f && angle < 225f)
{
return "Down";
}
if (angle >= 45f)
{
return "Right";
}
return "Right";
}
// Token: 0x060012B4 RID: 4788 RVA: 0x001691F4 File Offset: 0x001673F4
public void SetButtonsForCharacter()
{
int num = 5;
if (this.character.stats.HasSpellbook())
{
this.spellsGo.SetActive(true);
num++;
}
else
{
this.spellsGo.SetActive(false);
}
if (Links.x.fellowship.rally + Links.x.fellowship.rallyBoost >= Links.x.hudControl.rallyInterval)
{
this.specialGo.SetActive(true);
num++;
}
else
{
this.specialGo.SetActive(false);
}
this.items1Go.SetActive(this.item1.enabled);
if (this.item1.enabled)
{
num++;
}
this.items2Go.SetActive(this.item2.enabled);
if (this.item2.enabled)
{
num++;
}
this.items3Go.SetActive(this.item3.enabled);
if (this.item3.enabled)
{
num++;
}
}
// Token: 0x060012B5 RID: 4789 RVA: 0x001692F8 File Offset: 0x001674F8
public void HitKey(int i)
{
if (i == 34)
{
this.attackPointer.PointerDownAction();
}
if (i == 35)
{
this.pinPointer.PointerDownAction();
}
if (i == 36)
{
this.chargePointer.PointerDownAction();
}
if (i == 37)
{
this.rallyPointer.PointerDownAction();
}
if (i == 38)
{
this.spellsPointer.PointerDownAction();
}
if (i == 39)
{
this.sneakPointer.PointerDownAction();
}
if (i == 40)
{
this.talkPointer.PointerDownAction();
}
if (i == 41)
{
this.item1Pointer.PointerDownAction();
}
if (i == 42)
{
this.item2Pointer.PointerDownAction();
}
if (i == 43)
{
this.item3Pointer.PointerDownAction();
}
}
// Token: 0x060012B6 RID: 4790 RVA: 0x001693A8 File Offset: 0x001675A8
private void Update()
{
if (this.character)
{
Character character = this.character;
if ((!character.CanAttack() || character.attackTime < 1f || Links.x.gameplay.playerInAction) && this.selectedLightAtk.enabled)
{
this.selectedLightAtk.enabled = false;
this.selectedSpecial1.enabled = false;
this.selectedMediumAtk.enabled = false;
this.selectedHeavyAtk.enabled = false;
this.selectedItem1.enabled = false;
this.selectedItem2.enabled = false;
this.selectedItem3.enabled = false;
this.selectedCharm.enabled = false;
this.selectedSpells.enabled = false;
this.selectedShout.enabled = false;
this.selectedSneak.enabled = false;
this.spellsBtn.interactable = false;
this.item1Btn.interactable = false;
this.item2Btn.interactable = false;
this.item3Btn.interactable = false;
this.lightAtkBtn.interactable = false;
this.mediumAtkBtn.interactable = false;
this.heavyAtkBtn.interactable = false;
this.shoutBtn.interactable = false;
this.sneakBtn.interactable = false;
this.specialBtn1.interactable = false;
this.lightTrig.noIcon = true;
this.mediumTrig.noIcon = true;
this.heavyTrig.noIcon = true;
this.special1Trig.noIcon = true;
this.charmTrig.noIcon = true;
this.sneakTrig.noIcon = true;
this.talkTrig.noIcon = true;
this.item1Trig.noIcon = true;
this.item2Trig.noIcon = true;
this.item3Trig.noIcon = true;
this.spellTrig.noIcon = true;
}
if (character.CanAttack())
{
if (!this.spellsBtn.interactable)
{
this.spellsBtn.interactable = true;
this.item1Btn.interactable = true;
this.item2Btn.interactable = true;
this.item3Btn.interactable = true;
this.lightAtkBtn.interactable = true;
this.shoutBtn.interactable = true;
this.sneakBtn.interactable = true;
this.specialBtn1.interactable = true;
this.lightTrig.noIcon = false;
this.mediumTrig.noIcon = false;
this.special1Trig.noIcon = false;
this.charmTrig.noIcon = false;
this.sneakTrig.noIcon = false;
this.talkTrig.noIcon = false;
this.item1Trig.noIcon = false;
this.item2Trig.noIcon = false;
this.item3Trig.noIcon = false;
this.spellTrig.noIcon = false;
}
if (character.stats.stamina > 25f && !Records.x.partySailing)
{
if (!this.heavyAtkBtn.interactable)
{
this.heavyAtkBtn.interactable = true;
this.heavyTrig.noIcon = false;
}
}
else if (this.heavyAtkBtn.interactable)
{
this.heavyAtkBtn.interactable = false;
this.heavyTrig.noIcon = true;
}
if (character.stats.stamina > 15f && !Records.x.partySailing)
{
if (!this.mediumAtkBtn.interactable)
{
this.mediumAtkBtn.interactable = true;
this.mediumTrig.noIcon = false;
}
}
else if (this.mediumAtkBtn.interactable)
{
this.mediumAtkBtn.interactable = false;
this.mediumTrig.noIcon = true;
}
}
if (!this.specialGo.activeSelf && Links.x.fellowship.rally + Links.x.fellowship.rallyBoost >= Links.x.hudControl.rallyInterval && character)
{
this.Open(character);
}
}
if (Links.x.joy)
{
if (Records.x.pocketPause && (Links.x.combat.inPocketAttack || Links.x.main.CanAttack()))
{
this.joyOpen = true;
if (!this.controllerWheel1.activeSelf)
{
this.ControllerMessage(true);
}
}
else
{
this.joyOpen = false;
if (this.canvasGroup.alpha < 1f && !this.rallyWheelOpen && !Links.x.combat.inPocketAttack)
{
this.canvasGroup.interactable = true;
this.canvasGroup.alpha = 1f;
this.canvasGroup.blocksRaycasts = true;
}
if (this.controllerWheel1.activeSelf)
{
this.ControllerMessage(false);
}
}
}
if (Links.x.joy && (this.joyOpen || this.rallyWheelOpen) && !Records.x.inMenus && !Links.x.gameplay.tp1.open && !Links.x.gameplay.tp2.open && !Links.x.gameplay.tp3.open && !Links.x.gameplay.tp4.open && this.closeRoutine == null && this.openRoutine == null && (this.canvasGroup.interactable || this.rallyWheelOpen))
{
bool flag = false;
if (Links.x.gameplay.currentEventObject && Links.x.hudControl.joyRT.gameObject.activeSelf)
{
if (!Links.x.gameplay.currentEventObject.activeSelf || !Links.x.gameplay.currentEventObject.activeInHierarchy)
{
flag = true;
}
}
else
{
flag = true;
}
if (!this.spellbookWindow.gameObject.activeSelf && !this.rallyWheelOpen)
{
bool flag2 = false;
if (flag)
{
this.ToggleButtons(true);
if (flag)
{
flag2 = true;
}
if (Links.x.gameplay.currentEventObject)
{
if (Links.x.gameplay.currentEventObject.transform.parent && !Links.x.gameplay.currentEventObject.transform.parent.gameObject.name.Contains("Pocket Wheel"))
{
flag2 = true;
}
}
else
{
flag2 = true;
}
if (this.spellbookWindow.gameObject.activeSelf)
{
flag2 = false;
}
}
if (!flag2 && this.selected != "" && !flag && Mathf.Abs(Links.x.fellowship.move.magnitude) > 0.1f && !Links.x.gameplay.gameFeedScrolling && !Links.x.gameplay.dockDown && Time.timeSinceLevelLoad > this.lastChange + 0.2f)
{
bool flag3 = true;
if (Links.x.fellowship.move.x < 0f)
{
flag3 = false;
}
if (flag3)
{
string text = "";
if (this.selected == "Light Attack")
{
text = "Medium Attack";
}
if (this.selected == "Medium Attack")
{
text = "Heavy Attack";
}
if (this.selected == "Heavy Attack")
{
if (this.special1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Special Attack 1";
}
else if (this.spellTrig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Spellbag";
}
else
{
text = "Sneak";
}
}
if (this.selected == "Special Attack 1")
{
if (this.spellTrig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Spellbag";
}
else
{
text = "Sneak";
}
}
if (this.selected == "Spellbag")
{
text = "Sneak";
}
if (this.selected == "Sneak")
{
text = "Shout";
}
if (this.selected == "Shout")
{
if (this.item1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 1";
}
else if (this.item2Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 2";
}
else if (this.item3Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 3";
}
}
if (this.selected == "Item 1")
{
if (this.item2Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 2";
}
else if (this.item3Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 3";
}
}
if (this.selected == "Item 2" && this.item3Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text = "Item 3";
}
if (text != "")
{
this.lastChange = Time.timeSinceLevelLoad;
this.selected = text;
this.SelectJoyObject();
}
}
else
{
string text2 = "";
if (this.selected == "Medium Attack")
{
text2 = "Light Attack";
}
if (this.selected == "Heavy Attack")
{
text2 = "Medium Attack";
}
if (this.selected == "Special Attack 1")
{
text2 = "Heavy Attack";
}
if (this.selected == "Spellbag")
{
if (this.special1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Special Attack 1";
}
else
{
text2 = "Heavy Attack";
}
}
if (this.selected == "Sneak")
{
if (this.spellTrig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Spellbag";
}
else if (this.special1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Special Attack 1";
}
else
{
text2 = "Heavy Attack";
}
}
if (this.selected == "Shout")
{
text2 = "Sneak";
}
if (this.selected == "Item 1")
{
text2 = "Shout";
}
if (this.selected == "Item 2")
{
if (this.item1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Item 1";
}
else
{
text2 = "Shout";
}
}
if (this.selected == "Item 3")
{
if (this.item2Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Item 2";
}
else if (this.item1Trig.gameObject.transform.parent.gameObject.activeSelf)
{
text2 = "Item 1";
}
else
{
text2 = "Shout";
}
}
if (text2 != "")
{
this.lastChange = Time.timeSinceLevelLoad;
this.selected = text2;
this.SelectJoyObject();
}
}
this.GetSelectedFromRotatation();
}
if (flag2)
{
if (this.selected == "")
{
this.selected = "Light Attack";
}
this.SelectJoyObject();
if (flag)
{
this.SetDirection(this.selected);
}
}
Links.x.hudControl.ToggleBothCanvasGroup(false);
Links.x.hudControl.cardCanvasGroup.interactable = true;
if (Links.x.gameplay.actionStart && !this.targetSelection)
{
if (this.selected.Contains("Attack") || this.Charming() || Links.x.gameplay.spellTargetingParty || Links.x.gameplay.spellTargetingEnemy)
{
if (this.selected.Contains("Special"))
{
if (this.specialBtn1.interactable)
{
this.Select(this.selected);
}
}
else
{
this.Select(this.selected);
}
}
else if (this.spellbookWindow.gameObject.activeSelf)
{
if (Links.x.gameplay.spellTargetingGround)
{
}
}
else
{
this.Select(this.selected);
}
}
}
if (this.spellbookWindow.gameObject.activeSelf)
{
this.ToggleButtons(false);
if (Links.x.gameplay.cancelStart && this.selected == "Spellbag")
{
if (Links.x.joy)
{
this.skillBag.CloseSpells();
this.spellbook.SetActive(false);
}
Links.x.gameplay.RemoveSpellTargets();
}
}
if (this.rallyWheelOpen)
{
if (this.rallyCanvasGroup.interactable)
{
if (flag)
{
if (this.selectedRallyCharacter)
{
int num = this.party.IndexOf(this.selectedRallyCharacter);
EventSystem.current.SetSelectedGameObject(this.damageAttacksPaper[num].gameObject);
Links.x.hudControl.SetJoyBox(this.damageAttacksPaper[num].gameObject.GetComponent<UITriggerButton>());
}
else
{
GameObject firstOpenRallyButton = this.GetFirstOpenRallyButton();
EventSystem.current.SetSelectedGameObject(firstOpenRallyButton.gameObject);
if (firstOpenRallyButton)
{
Links.x.hudControl.SetJoyBox(firstOpenRallyButton.gameObject.GetComponent<UITriggerButton>());
}
}
}
else
{
GameObject currentEventObject = Links.x.gameplay.currentEventObject;
GameObject gameObject = null;
if (this.ammoOpen)
{
for (int i = 0; i < this.usedAmmos.Count; i++)
{
if (currentEventObject == this.usedAmmos[i])
{
gameObject = currentEventObject;
break;
}
}
}
for (int j = 0; j < this.damageAttacksPaper.Count; j++)
{
if (currentEventObject == this.damageAttacksPaper[j].gameObject)
{
gameObject = currentEventObject;
break;
}
}
if (!gameObject)
{
for (int k = 0; k < this.cripplingAttacksPaper.Count; k++)
{
if (currentEventObject == this.cripplingAttacksPaper[k].gameObject)
{
gameObject = currentEventObject;
break;
}
}
}
if (!gameObject)
{
for (int l = 0; l < this.bothAttacksPaper.Count; l++)
{
if (currentEventObject == this.bothAttacksPaper[l].gameObject)
{
gameObject = currentEventObject;
break;
}
}
}
if (gameObject)
{
this.prevSelectedObject = gameObject;
Links.x.hudControl.JoyBounds(gameObject.GetComponent<UITriggerButton>().rt, gameObject.GetComponent<UITriggerButton>().boxOffset, false);
if (Links.x.gameplay.actionStart)
{
gameObject.gameObject.GetComponent<Pointer>().PointerDownAction();
}
if (Links.x.gameplay.interactStart)
{
gameObject.gameObject.GetComponent<Pointer>().PointerDownInteract();
}
}
}
}
if (Links.x.gameplay.cancelStart)
{
if (!this.selectedAmmoImage.activeSelf)
{
if (this.ammoOpen)
{
this.CloseAmmo();
}
else
{
this.CloseRallyWheel(true);
}
}
else
{
this.StartFade(false);
}
}
}
}
if (Links.x.mk && this.open && !Records.x.inMenus && !Links.x.gameplay.tp1.open && !Links.x.gameplay.tp2.open && !Links.x.gameplay.tp3.open && !Links.x.gameplay.tp4.open && this.closeRoutine == null && this.openRoutine == null)
{
bool flag4 = false;
if (Links.x.gameplay.spellTargetingGround || Links.x.gameplay.spellTargetingEnemy || Links.x.gameplay.spellTargetingParty)
{
flag4 = true;
}
if ((this.spellbookWindow.gameObject.activeSelf || flag4) && Input.GetMouseButtonDown(1) && !Links.x.gameplay.uiHover && (this.selected == "Spellbag" || flag4))
{
Links.x.gameplay.RemoveAbilityInfo();
if (this.selected != "Spellbag")
{
Links.x.gameplay.PocketPause(false);
}
}
}
if (Links.x.mk && this.rallyWheelOpen && !Links.x.hudControl.descriptionWindowOpen && Input.GetMouseButtonUp(1))
{
if (!this.selectedAmmoImage.activeSelf)
{
this.CloseRallyWheel(true);
}
else
{
this.StartFade(false);
}
}
if (Links.x.gameplay.tp1.open || Links.x.gameplay.tp2.open || Links.x.gameplay.tp3.open || Links.x.gameplay.tp3.open || Records.x.inMenus)
{
this.ToggleButtons(false);
}
if ((this.open || this.rallyWheelOpen) && this.selectedAmmoImage.activeSelf && this.selectedRallyBtn)
{
this.selectedAmmoImage.transform.position = this.selectedRallyBtn.transform.position;
}
if (this.fading)
{
this.currentDither = Mathf.Lerp(this.startDither, this.endDither, this.fadeAmount);
if ((this.endDither > 0.9f && this.currentDither >= this.endDither) || (this.endDither == 0f && this.currentDither <= this.endDither))
{
this.fading = false;
}
this.fadeAmount += Time.deltaTime * 4f;
this.rallyCanvasGroup.alpha = 1f - this.currentDither;
}
}
// Token: 0x060012B7 RID: 4791 RVA: 0x0016A678 File Offset: 0x00168878
public void ToggleButtons(bool state)
{
this.spellsBtn.interactable = state;
this.lightAtkBtn.interactable = state;
this.mediumAtkBtn.interactable = state;
this.heavyAtkBtn.interactable = state;
this.charmBtn.interactable = state;
this.shoutBtn.interactable = state;
this.sneakBtn.interactable = state;
if (!state || (state && this.item1.enabled))
{
this.item1Btn.interactable = state;
}
if (!state || (state && this.item2.enabled))
{
this.item2Btn.interactable = state;
}
if (!state || (state && this.item3.enabled))
{
this.item3Btn.interactable = state;
}
}
// Token: 0x060012B8 RID: 4792 RVA: 0x0016A736 File Offset: 0x00168936
private void SetScale(bool allOff)
{
}
// Token: 0x060012B9 RID: 4793 RVA: 0x0016A738 File Offset: 0x00168938
public void SetHotkeys(bool mk)
{
if (mk)
{
this.attackKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Attack")).ToString() + ">";
this.pinKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Pin")).ToString() + ">";
this.chargeKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Charge")).ToString() + ">";
this.rallyKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Rally")).ToString() + ">";
this.spellsKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Spells")).ToString() + ">";
this.sneakKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Sneak")).ToString() + ">";
this.talkKey.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Talk")).ToString() + ">";
this.item1Key.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Item1")).ToString() + ">";
this.item2Key.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Item2")).ToString() + ">";
this.item3key.text = "<sprite=" + Links.x.keyControl.GetKeyIconIndex(Links.x.keyControl.GetHotkeyString("Item3")).ToString() + ">";
return;
}
this.attackKey.text = "";
this.pinKey.text = "";
this.chargeKey.text = "";
this.rallyKey.text = "";
this.spellsKey.text = "";
this.sneakKey.text = "";
this.talkKey.text = "";
this.item1Key.text = "";
this.item2Key.text = "";
this.item3key.text = "";
}
// Token: 0x060012BA RID: 4794 RVA: 0x0016AAA0 File Offset: 0x00168CA0
public void Open(Character c)
{
if (this.open && this.character)
{
this.SaveSelected();
this.skillBag.CloseSpells();
this.SetDirection(this.selected);
}
else
{
this.arrow.enabled = false;
}
this.character = c;
if (this.character.CanAttack())
{
this.halfOpen = false;
}
else
{
this.halfOpen = true;
}
Links.x.hudControl.ToggleControllerItemsIcon(false);
this.hoverField.text = "";
this.hoverFieldRally.text = "";
this.EnableBorder("");
this.SetScale(true);
this.CloseAmmo();
this.selectedRallyCharacter = null;
this.rallyWheelOpen = false;
if (this.character.portrait)
{
this.skillBag = this.character.portrait.skillBag;
}
this.rally1 = null;
this.rally2 = null;
if (this.character.IsSentient() && this.closeRoutine != null)
{
base.StopCoroutine(this.closeRoutine);
this.closeRoutine = null;
}
this.open = true;
Links.x.gameplay.joystickTarget.SetActive(false);
if (this.targetSelection)
{
Links.x.rtsCamera.Zoom(false, "TargetSelect");
Links.x.rtsCamera.targetSelecting = false;
}
this.targetSelection = false;
Links.x.partyColliderAdventure.SetTargetText(0);
this.SetupItems();
this.selected = this.GetSelected();
this.canTarget = false;
this.timeSinceOpen = Time.timeSinceLevelLoad;
this.SetRallyButtons();
Links.x.follow.position = c.tr.position + c.HeadHeight();
this.ToggleButtons(true);
if (!this.rallyWheelOpen && !Links.x.combat.inPocketAttack)
{
this.canvasGroup.interactable = true;
this.canvasGroup.alpha = 1f;
this.canvasGroup.blocksRaycasts = true;
}
this.targetSelection = false;
this.skillBag.SetSelectedState();
if (Links.x.joy)
{
this.ControllerMessage(true);
this.controllerWheel2.SetActive(false);
this.controllerWheel4.SetActive(false);
Links.x.partyColliderAdventure.SetTargetText(0);
}
else
{
this.ControllerMessage(false);
}
if (this.selected == "Light Attack" || this.selected == "Medium Attack" || this.selected == "Heavy Attack" || this.Charming() || (this.spellsBtn.interactable && this.selected == "Spellbag"))
{
this.EnableBorder(this.selected);
if (this.selected == "Spellbag")
{
this.Select("Spellbag");
}
if (Links.x.joy)
{
if (this.selected == "Light Attack" || this.selected == "Medium Attack" || this.selected == "Heavy Attack" || this.selected == "Charm")
{
this.ControllerSelect(this.selected, false, false);
}
else
{
this.ControllerSelect(this.selected, true, false);
}
}
}
else
{
this.selected = "Light Attack";
Debug.Log("Set as light attack");
this.EnableBorder("Light Attack");
if (Links.x.joy)
{
this.ControllerSelect(this.selected, false, false);
}
this.SetScale(false);
}
this.skillBag.TooltipOff();
if (Links.x.mk)
{
this.arrow.enabled = false;
this.spellbookTop.interactable = true;
this.closeSpellbook.gameObject.SetActive(false);
this.SetDirection(this.selected);
}
else
{
this.spellbookTop.interactable = false;
this.closeSpellbook.gameObject.SetActive(true);
this.closeSpellbook.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.closeSpellbook.text = Links.x.gameplay.cancelText;
this.SetDirection(this.selected);
}
this.openRoutine = null;
bool flag = false;
if (Links.x.joy && this.joyOpen)
{
this.SelectJoyObject();
if (Links.x.combat.ItemCardCount() == 0)
{
this.lightTrig.noIcon = true;
this.mediumTrig.noIcon = true;
this.heavyTrig.noIcon = true;
flag = true;
}
else
{
this.lightTrig.noIcon = false;
this.mediumTrig.noIcon = false;
this.heavyTrig.noIcon = false;
}
if (this.selected == "Light Attack")
{
this.SetHoverText(true, this.lightAtk.gameObject);
}
if (this.selected == "Special Attack 1")
{
this.SetHoverText(true, this.special1.gameObject);
}
if (this.selected == "Medium Attack")
{
this.SetHoverText(true, this.mediumAtk.gameObject);
}
if (this.selected == "Heavy Attack")
{
this.SetHoverText(true, this.heavyAtk.gameObject);
}
if (this.selected == "Spellbag")
{
this.SetHoverText(true, this.spells.gameObject);
}
if (this.selected == "Charm")
{
this.SetHoverText(true, this.charm.gameObject);
}
if (this.selected == "Item 1")
{
this.SetHoverText(true, this.item1.gameObject);
}
if (this.selected == "Item 2")
{
this.SetHoverText(true, this.item2.gameObject);
}
if (this.selected == "Item 3")
{
this.SetHoverText(true, this.item3.gameObject);
}
if (this.selected == "Shout")
{
this.SetHoverText(true, this.shoutBtn.gameObject);
}
if (this.selected == "Sneak")
{
this.SetHoverText(true, this.sneakBtn.gameObject);
}
this.SetScale(false);
}
this.SetButtonsForCharacter();
if (this.selected == "Spellbag" && Links.x.mk && this.spellsGo.activeSelf)
{
this.skillBag.OpenSpells();
}
else if (this.spellbook.activeSelf)
{
this.CloseSpellsAndSongs();
}
if (this.character.stats.stamina >= 25f && !flag)
{
this.heavyTrig.noIcon = false;
this.heavyAtkBtn.interactable = true;
}
else
{
this.heavyTrig.noIcon = true;
this.heavyAtkBtn.interactable = false;
if (this.selected == "Heavy Attack" && Links.x.joy)
{
this.SelectLightAttack();
Links.x.gameplay.SetDomeSize();
}
}
if (this.character.stats.stamina >= 15f && !flag)
{
this.mediumTrig.noIcon = false;
this.mediumAtkBtn.interactable = true;
return;
}
this.mediumTrig.noIcon = true;
this.mediumAtkBtn.interactable = false;
if (this.selected == "Medium Attack" && Links.x.joy)
{
this.SelectLightAttack();
Links.x.gameplay.SetDomeSize();
}
}
// Token: 0x060012BB RID: 4795 RVA: 0x0016B274 File Offset: 0x00169474
public void SetupItems()
{
if (this.skillBag)
{
for (int i = 0; i < 3; i++)
{
Image image = this.item1;
Image image2 = this.item1back;
TextMeshProUGUI textMeshProUGUI = this.item1stack;
Library.Inventory inventory = this.skillBag.beltItemRow1;
int num = this.skillBag.beltIndex1;
if (i == 1)
{
image = this.item2;
textMeshProUGUI = this.item2stack;
image2 = this.item2back;
num = this.skillBag.beltIndex2;
inventory = this.skillBag.beltItemRow2;
}
if (i == 2)
{
image = this.item3;
textMeshProUGUI = this.item3stack;
image2 = this.item3back;
num = this.skillBag.beltIndex3;
inventory = this.skillBag.beltItemRow3;
}
if (num > 1 && (inventory._RightClickAction == "Consume" || inventory._Tag.Contains("Scroll") || inventory._MainSkill.Contains("Charm")))
{
image.enabled = true;
string text = "";
if (i == 0)
{
image.sprite = this.skillBag.beltItem1Img.sprite;
text = this.skillBag.beltItem1text.text;
}
if (i == 1)
{
image.sprite = this.skillBag.beltItem2Img.sprite;
text = this.skillBag.beltItem2text.text;
}
if (i == 2)
{
image.sprite = this.skillBag.beltItem3Img.sprite;
text = this.skillBag.beltItem3text.text;
}
if (text == "1" || text == "" || inventory._Tag.Contains("Scroll"))
{
textMeshProUGUI.enabled = false;
image2.enabled = false;
}
else
{
textMeshProUGUI.enabled = true;
textMeshProUGUI.text = text;
image2.enabled = true;
}
}
else
{
image.enabled = false;
textMeshProUGUI.enabled = false;
image2.enabled = false;
}
}
this.dropItem1.gameObject.SetActive(this.item1.enabled);
this.dropItem2.gameObject.SetActive(this.item2.enabled);
this.dropItem3.gameObject.SetActive(this.item3.enabled);
this.item1Btn.enabled = this.item1.enabled;
this.item2Btn.enabled = this.item2.enabled;
this.item3Btn.enabled = this.item3.enabled;
}
}
// Token: 0x060012BC RID: 4796 RVA: 0x0016B50C File Offset: 0x0016970C
public void ControllerMessage(bool state)
{
RectOffset rectOffset = new RectOffset(this.glg.padding.left, this.glg.padding.right, this.glg.padding.top, this.glg.padding.bottom);
if (state)
{
rectOffset.right = -40;
}
else
{
rectOffset.right = 0;
}
rectOffset.left = 0;
this.glg.padding = rectOffset;
this.controllerWheel1.SetActive(state);
}
// Token: 0x060012BD RID: 4797 RVA: 0x0016B594 File Offset: 0x00169794
public void Close(bool showItem)
{
this.SaveSelected();
if (Links.x.joy)
{
this.spellbook.SetActive(false);
}
this.arrow.enabled = false;
this.ControllerMessage(false);
this.controllerWheel2.SetActive(false);
this.controllerWheel4.SetActive(false);
if (Links.x.joy)
{
Links.x.partyColliderAdventure.SetTargetText(0);
}
this.RemoveCommandUI();
if (this.selected == "Special Attack 1")
{
this.SelectLightAttack();
}
if (this.rallyWheelOpen)
{
this.CloseRallyWheel(false);
}
this.rallyWheelOpen = false;
this.CloseAmmo();
this.rallyText.SetActive(false);
if (Links.x.joy && this.targetSelection)
{
if (!Links.x.combat.inRally && !Links.x.combat.inPocketAttack)
{
Links.x.rtsCamera.Zoom(false, "TargetSelect");
}
Links.x.rtsCamera.targetSelecting = false;
Links.x.rtsCamera.joyTarget = null;
}
if (Links.x.joy && !Records.x.inMenus && !Links.x.gameplay.inPartyDock)
{
Links.x.hudControl.JoyBox(false);
}
if (this.rallyOpen != null)
{
base.StopCoroutine(this.rallyOpen);
this.rallyOpen = null;
}
this.rallyWheel.SetActive(false);
Links.x.hudControl.ToggleControllerItemsIcon(true);
if (Links.x.joy)
{
this.CloseSpellsAndSongs();
}
if (this.skillBag)
{
this.skillBag.SetSelectedState();
}
this.targetSelection = false;
this.EnableBorder("");
this.closeRoutine = null;
}
// Token: 0x060012BE RID: 4798 RVA: 0x0016B76C File Offset: 0x0016996C
public void Select(string type)
{
if (type == "" || type == "Close" || type.Contains("Portrait"))
{
return;
}
if (type.Contains("Rally Attack"))
{
this.SelectRally(type);
}
else
{
if (type == "Special Attack 1" && !this.specialBtn1.interactable)
{
return;
}
if (type.Contains("Ammo"))
{
return;
}
if (type == "Heavy Attack" && !this.heavyAtkBtn.interactable)
{
return;
}
if (type == "Light Attack" && !this.lightAtkBtn.interactable)
{
return;
}
if (type == "Medium Attack" && !this.mediumAtkBtn.interactable)
{
return;
}
if (type == "Sneak" && !this.sneakBtn.interactable)
{
return;
}
if (type == "Shout" && !this.shoutBtn.interactable)
{
return;
}
if (type == "Spellbag" && !this.spellsBtn.interactable)
{
return;
}
if (type == "Item 1" && !this.item1Btn.interactable)
{
return;
}
if (type == "Item 2" && !this.item2Btn.interactable)
{
return;
}
if (type == "Item 3" && !this.item3Btn.interactable)
{
return;
}
this.EnableBorder(type);
if (type == "Spellbook")
{
if (this.spells.material != this.noBook)
{
this.selected = type;
}
}
else
{
this.selected = type;
}
if (type == "Light Attack")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
}
if (type == "Special Attack 1" && this.specialBtn1.interactable)
{
this.canTarget = false;
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
if (Links.x.mk)
{
this.OpenRallyWheel(true);
}
else if (Links.x.joy && Links.x.gameplay.actionStart && !this.rallyWheelOpen)
{
this.OpenRallyWheel(true);
}
}
if (type == "Medium Attack")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
}
if (type == "Heavy Attack")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
}
if (type.Contains("Item"))
{
Library.Inventory inventory = this.skillBag.beltItemRow1;
if (type.Contains("2"))
{
inventory = this.skillBag.beltItemRow2;
}
if (type.Contains("3"))
{
inventory = this.skillBag.beltItemRow3;
}
if (inventory._MainSkill == "Charm")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
}
else
{
bool flag = false;
if (type == "Item 1")
{
this.skillBag.UseBeltItem1(true);
}
if (type == "Item 2")
{
this.skillBag.UseBeltItem2(true);
}
if (type == "Item 3")
{
this.skillBag.UseBeltItem3(true);
}
this.CloseSpellsAndSongs();
this.selected = "";
this.EnableBorder("");
this.SetupItems();
if (Links.x.joy && flag)
{
this.selected = "";
this.GetSelectedFromRotatation();
}
}
}
if (type == "Charm")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
}
if (this.spells.material != this.noBook && type == "Spellbag")
{
Links.x.gameplay.SetDomeSize();
Links.x.combat.GetTargets(false, false, null);
this.CloseSpellsAndSongs();
this.OpenSpells();
}
if (type == "Shout")
{
Links.x.gameplay.SetDomeSize();
this.skillBag.portrait.textParser.StartMenu(this.skillBag.portrait);
this.CloseSpellsAndSongs();
this.EndTurn(0.5f);
}
if (type == "Sneak")
{
Links.x.gameplay.SetDomeSize();
this.skillBag.Sneak();
this.EndTurn(0f);
this.CloseSpellsAndSongs();
}
}
this.RemoveCommandUI();
this.SetScale(false);
}
// Token: 0x060012BF RID: 4799 RVA: 0x0016BC74 File Offset: 0x00169E74
public bool StartPocket(string type)
{
if (type.Contains("Item"))
{
if (type.Contains("1") && !(this.skillBag.beltItemRow1._MainSkill == "Charm") && !this.skillBag.beltItemRow1._Tag.Contains("Scroll"))
{
return false;
}
if (type.Contains("2") && !(this.skillBag.beltItemRow2._MainSkill == "Charm") && !this.skillBag.beltItemRow2._Tag.Contains("Scroll"))
{
return false;
}
if (type.Contains("3") && !(this.skillBag.beltItemRow3._MainSkill == "Charm") && !this.skillBag.beltItemRow3._Tag.Contains("Scroll"))
{
return false;
}
}
if (type == "Shout" || type == "Sneak")
{
return false;
}
if (!Records.x.pocketPause)
{
Links.x.gameplay.PocketPause(true);
return false;
}
if (Records.x.pocketPause && type == this.selected && type != "Special Attack 1")
{
Links.x.gameplay.PocketPause(false);
this.CloseSpellsAndSongs();
return true;
}
return false;
}
// Token: 0x060012C0 RID: 4800 RVA: 0x0016BDE0 File Offset: 0x00169FE0
public void SelectLightAttack()
{
this.selected = "Light Attack";
this.EnableBorder("Light Attack");
if (Links.x.joy)
{
this.ControllerSelect(this.selected, false, false);
}
this.SetScale(false);
this.Select("Light Attack");
if (!this.open)
{
this.character = Links.x.main;
this.SaveSelected();
}
}
// Token: 0x060012C1 RID: 4801 RVA: 0x0016BE50 File Offset: 0x0016A050
public bool Charming()
{
if (this.selected.Contains("Item"))
{
if (this.selected == "Item 1" && this.skillBag.beltItemRow1._MainSkill == "Charm")
{
return true;
}
if (this.selected == "Item 2" && this.skillBag.beltItemRow2._MainSkill == "Charm")
{
return true;
}
if (this.selected == "Item 3" && this.skillBag.beltItemRow3._MainSkill == "Charm")
{
return true;
}
}
return false;
}
// Token: 0x060012C2 RID: 4802 RVA: 0x0016BF04 File Offset: 0x0016A104
public bool HasSpellScroll()
{
if (this.selected.Contains("Item"))
{
if (this.selected == "Item 1" && this.skillBag.beltItemRow1._Tag.Contains("Scroll"))
{
return true;
}
if (this.selected == "Item 2" && this.skillBag.beltItemRow2._Tag.Contains("Scroll"))
{
return true;
}
if (this.selected == "Item 3" && this.skillBag.beltItemRow3._Tag.Contains("Scroll"))
{
return true;
}
}
return false;
}
// Token: 0x060012C3 RID: 4803 RVA: 0x0016BFB8 File Offset: 0x0016A1B8
public void WaitForTargets()
{
bool flag = true;
if (this.selected.Contains("Attack"))
{
if (Links.x.combat.ItemCardCount() == 0)
{
flag = false;
}
}
else if (this.selected.Contains("Charm") && Links.x.combat.TargetCount() == 0)
{
flag = false;
}
if (Links.x.joy && Time.timeSinceLevelLoad > this.timeSinceOpen + 0.25f && !this.targetSelection && flag)
{
this.targetSelection = true;
this.canvasGroup.interactable = false;
this.canvasGroup.blocksRaycasts = false;
this.canvasGroup.alpha = 0.25f;
Links.x.hudControl.JoyBox(false);
Links.x.gameplay.waitingForActionUp = true;
this.prevSelectedObject = Links.x.gameplay.currentEventObject;
EventSystem.current.SetSelectedGameObject(null);
this.ControllerMessage(false);
if (this.selected != "Spellbag")
{
this.controllerWheel2.SetActive(true);
}
else if (Links.x.gameplay.spellTargetingGround)
{
this.controllerWheel4.SetActive(true);
}
else
{
this.controllerWheel2.SetActive(true);
}
Links.x.gameplay.GetControllerTarget(false);
Links.x.gameplay.SetJoystickTargetActive();
if (Links.x.joy)
{
Links.x.rtsCamera.Zoom(true, "TargetSelect");
Links.x.rtsCamera.targetSelecting = true;
}
Links.x.partyColliderAdventure.SetTargetText(Links.x.combat.ItemCardCount());
}
}
// Token: 0x060012C4 RID: 4804 RVA: 0x0016C174 File Offset: 0x0016A374
private void CloseSpellsAndSongs()
{
if (this.spellbook.activeSelf)
{
this.skillBag.CloseSpells();
this.spellbook.SetActive(false);
Links.x.gameplay.RemoveSpellTargets();
}
}
// Token: 0x060012C5 RID: 4805 RVA: 0x0016C1A9 File Offset: 0x0016A3A9
public void CloseSpellsFromButton()
{
this.CloseSpellsAndSongs();
this.SelectLightAttack();
}
// Token: 0x060012C6 RID: 4806 RVA: 0x0016C1B7 File Offset: 0x0016A3B7
public void OpenSongs()
{
}
// Token: 0x060012C7 RID: 4807 RVA: 0x0016C1B9 File Offset: 0x0016A3B9
public void OpenSpells()
{
if (!this.spellbook.activeSelf)
{
this.spellbook.SetActive(true);
this.skillBag.OpenSpells();
}
}
// Token: 0x060012C8 RID: 4808 RVA: 0x0016C1E0 File Offset: 0x0016A3E0
public void EndTurn(float attackTimeReduction)
{
EventSystem.current.SetSelectedGameObject(null);
if (this.character.actions)
{
this.character.actions.canEndAttackTime = true;
this.character.actions.EndAttackTime(attackTimeReduction);
}
else
{
if (Records.x.pocketPause && this.character.mainSelected)
{
Links.x.gameplay.PocketPause(false);
}
this.character.ZeroAttackTime(attackTimeReduction);
if (this.character.mainSelected)
{
this.character.body.CombatSheen(0);
Links.x.cameraEffects.RemoveCombatCharacters();
}
}
Links.x.hudControl.JoyBox(false);
this.Close(true);
}
// Token: 0x060012C9 RID: 4809 RVA: 0x0016C2A8 File Offset: 0x0016A4A8
public void EnableBorder(string type)
{
if (this.closeRoutine != null)
{
return;
}
if (type == "")
{
type = "Light Attack";
}
if (type == "Special Attack 1" && !this.specialBtn1.interactable)
{
this.selectedSpecial1.enabled = false;
return;
}
if (type == "Light Attack")
{
this.selectedLightAtk.enabled = true;
}
else
{
this.selectedLightAtk.enabled = false;
}
if (type == "Special Attack 1")
{
this.selectedSpecial1.enabled = true;
}
else
{
this.selectedSpecial1.enabled = false;
}
if (type == "Medium Attack")
{
this.selectedMediumAtk.enabled = true;
}
else
{
this.selectedMediumAtk.enabled = false;
}
if (type == "Heavy Attack")
{
this.selectedHeavyAtk.enabled = true;
}
else
{
this.selectedHeavyAtk.enabled = false;
}
if (type == "Item 1")
{
this.selectedItem1.enabled = true;
}
else
{
this.selectedItem1.enabled = false;
}
if (type == "Item 2")
{
this.selectedItem2.enabled = true;
}
else
{
this.selectedItem2.enabled = false;
}
if (type == "Item 3")
{
this.selectedItem3.enabled = true;
}
else
{
this.selectedItem3.enabled = false;
}
if (type == "Charm")
{
this.selectedCharm.enabled = true;
}
else
{
this.selectedCharm.enabled = false;
}
if (type == "Spellbag")
{
this.selectedSpells.enabled = true;
}
else
{
this.selectedSpells.enabled = false;
}
if (type == "Shout")
{
this.selectedShout.enabled = true;
}
else
{
this.selectedShout.enabled = false;
}
if (type == "Sneak")
{
this.selectedSneak.enabled = true;
return;
}
this.selectedSneak.enabled = false;
}
// Token: 0x060012CA RID: 4810 RVA: 0x0016C4A8 File Offset: 0x0016A6A8
public void ControllerSelect(string type, bool fromButton, bool confirm)
{
if (type == "" || type == "Close" || type.Contains("Portrait"))
{
return;
}
if (type.Contains("Rally Attack"))
{
this.SelectRally(type);
}
else
{
bool flag = false;
if (type.Contains("Item"))
{
if (type.Contains("1") && this.skillBag.beltItemRow1._MainSkill == "Charm")
{
flag = true;
}
if (type.Contains("2") && this.skillBag.beltItemRow2._MainSkill == "Charm")
{
flag = true;
}
if (type.Contains("3") && this.skillBag.beltItemRow3._MainSkill == "Charm")
{
flag = true;
}
}
if (type == "Special Attack 1" && !this.specialBtn1.interactable)
{
this.canTarget = false;
return;
}
if (type == "Heavy Attack" && !this.heavyAtkBtn.interactable)
{
return;
}
if (type.Contains("Ammo"))
{
return;
}
this.selected = type;
if ((type.Contains("Attack") || flag) && confirm)
{
this.WaitForTargets();
}
if (!type.Contains("Item") && !type.Contains("Shout") && !type.Contains("Sneak") && !type.Contains("Spellbag") && !type.Contains("Special Attack 1"))
{
this.Select(type);
}
else if (type.Contains("Special Attack 1"))
{
this.Select(type);
}
else
{
if (Links.x.joy)
{
Links.x.gameplay.GetControllerTarget(false);
}
Links.x.gameplay.SetDomeSize();
this.EnableBorder(type);
}
}
this.SetScale(false);
this.RemoveCommandUI();
}
// Token: 0x060012CB RID: 4811 RVA: 0x0016C692 File Offset: 0x0016A892
public bool CanOpenDescription(GameObject go)
{
return !go.name.Contains("Special") || this.specialBtn1.interactable;
}
// Token: 0x060012CC RID: 4812 RVA: 0x0016C6B8 File Offset: 0x0016A8B8
private void RemoveCommandUI()
{
if (this.selected != "Command Reposition" && Links.x.gameplay.repositionTargeting)
{
Links.x.gameplay.repositionTargeting = false;
Links.x.gameplay.ClearEffectTiles(true, null, true);
}
if (this.selected != "Command Group" && Links.x.gameplay.defenseCircleTargeting)
{
Links.x.gameplay.defenseCircleRotation = Quaternion.identity;
Links.x.gameplay.defenseCircleTargeting = false;
Links.x.gameplay.ClearEffectTiles(true, null, true);
Links.x.gameplay.messageDefenseHoldMK.SetActive(false);
Links.x.gameplay.messageDefenseHoldJoy.SetActive(false);
}
}
// Token: 0x060012CD RID: 4813 RVA: 0x0016C790 File Offset: 0x0016A990
public void SetHoverText(bool on, GameObject g)
{
string text = "";
if (g)
{
text = g.name;
}
if (on && this.window.dragging)
{
return;
}
if (text.Contains("Special Attack") && !this.specialBtn1.interactable)
{
on = false;
}
if (text.Contains("Damage Rally Attack") || text.Contains("Cripple Rally Attack") || text.Contains("Both Rally Attack"))
{
int num = 0;
if (text.Contains("2"))
{
num = 1;
}
if (text.Contains("3"))
{
num = 2;
}
if (text.Contains("4"))
{
num = 3;
}
if (on)
{
if ((text.Contains("Damage") && this.damageAttacksBtns[num].interactable) || (text.Contains("Both") && this.bothAttacksBtns[num].interactable) || (text.Contains("Cripple") && this.cripplingAttacksBtns[num].interactable))
{
Links.x.combat.hoverShowTargets = true;
Links.x.combat.hoverShowTargetsType = text;
Links.x.combat.hoverShowTargetCharacter = this.party[num];
Links.x.combat.GetTargets(false, true, this.party[num]);
}
}
else
{
Links.x.combat.hoverShowTargets = false;
Links.x.combat.GetTargets(false, true, this.party[num]);
}
on = false;
}
if (!on || !this.skillBag)
{
this.hoverFieldRally.text = "";
this.hoverField.text = "";
return;
}
this.str.Clear();
this.str.Append("<font=BoldOutline>");
bool flag = true;
if (Links.x.joy)
{
this.hoverField.gameObject.transform.SetParent(this.controllerWheel1.transform, true);
this.hoverFieldRT.anchoredPosition3D = this.hoverPositionJoy;
}
else
{
this.hoverField.gameObject.transform.SetParent(base.transform, true);
this.hoverFieldRT.anchoredPosition3D = this.hoverPositionMK;
}
if (text == "Light Attack")
{
this.str.Append("Attack");
}
if (text == "Special Attack 1")
{
this.str.Append("Rally Attacks");
}
if (text.Contains("Damage Rally Attack"))
{
this.str.Append(this.GetSpecialAttackText(1, g, out flag));
}
if (text.Contains("Cripple Rally Attack"))
{
this.str.Append(this.GetSpecialAttackText(2, g, out flag));
}
if (text.Contains("Both Rally Attack"))
{
this.str.Append(this.GetSpecialAttackText(3, g, out flag));
}
if (text.Contains("Portrait"))
{
flag = false;
int num2 = 0;
if (g.name.Contains("2"))
{
num2 = 1;
}
if (g.name.Contains("3"))
{
num2 = 2;
}
if (g.name.Contains("4"))
{
num2 = 3;
}
bool flag2 = this.open;
this.str.Append(this.party[num2].stats.GetName());
}
if (text == "Medium Attack")
{
this.str.Append("Pin");
if (!this.mediumAtkBtn.interactable && !Records.x.partySailing)
{
this.str.Append(" (Not enough stamina)");
}
}
if (text == "Heavy Attack")
{
this.str.Append("Knockback");
if (!this.heavyAtkBtn.interactable && !Records.x.partySailing)
{
this.str.Append(" (Not enough stamina)");
}
}
if (text == "Close")
{
this.str.Append("End Rally Combo");
}
if (text == "Item 1")
{
this.str.Append(this.skillBag.beltItem1Name);
}
if (text == "Item 2")
{
this.str.Append(this.skillBag.beltItem2Name);
}
if (text == "Item 3")
{
this.str.Append(this.skillBag.beltItem3Name);
}
if (text == "Charm")
{
this.str.Append("Bind");
}
if (text == "Shout")
{
this.str.Append("Say Something");
}
if (text == "Sneak")
{
this.str.Append("Sneak");
}
if (text == "Spellbag")
{
this.str.Append("Cast a spell");
}
this.hoverField.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
this.hoverFieldRally.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset);
if (this.ammoOpen && text.Contains("Ammo"))
{
int num3 = 0;
if (text == "Rare Ammo 1")
{
num3 = 1;
}
if (text == "Rare Ammo 2")
{
num3 = 2;
}
if (text == "Rare Ammo 3")
{
num3 = 3;
}
if (text == "Rare Ammo 4")
{
num3 = 4;
}
if (text == "Rare Ammo 5")
{
num3 = 5;
}
if (text == "Rare Ammo 6")
{
num3 = 6;
}
if (text == "Rare Ammo 7")
{
num3 = 7;
}
if (text == "Rare Ammo 8")
{
num3 = 8;
}
if (text == "Rare Ammo 9")
{
num3 = 9;
}
Library.Inventory invRow = Links.x.library.GetInvRow(this.ammos[num3]);
this.str.Append("Use ");
this.str.Append(invRow._DisplayName);
}
if (text != "Close" && flag)
{
if (Links.x.mk)
{
this.str.Append("</font><line-height=1.5em>");
this.str.Append("<size=.95em>\n<color=#878075>Details");
this.str.Append(" <voffset=.4em><size=20><sprite=");
int keyIconIndex = Links.x.keyControl.GetKeyIconIndex("RMB");
this.str.Append(keyIconIndex);
this.str.Append("></size></voffset></color>");
this.str.Append("</size></line-height>");
if (this.rallyWheelOpen)
{
this.hoverFieldRally.text = this.str.ToString();
return;
}
this.hoverField.text = this.str.ToString();
return;
}
else
{
this.str.Append("</font><line-height=1.5em>");
if (text.Contains("Item") || text.Contains("Song") || text.Contains("Spell") || text == "Shout" || text == "Sneak")
{
this.str.Append("<size=.7em>\n<size=.9em>");
}
else
{
bool flag3 = true;
if (text.Contains("Attack") && !text.Contains("Special"))
{
if (this.lightTrig.noIcon)
{
this.str.Append("<size=.7em>\n <size=1em>No targets in range to attack<size=.7em>\n\n <size=1em>");
flag3 = false;
}
}
else if (text.Contains("Charm") && this.charmTrig.noIcon)
{
if (Links.x.combat.charmFail == "Low Skill")
{
this.str.Append("<size=.7em>\n <size=1em>Targets in range would resist bind attempt<size=.7em>\n <size=1em>");
}
else if (Links.x.combat.charmFail == "No Beads")
{
this.str.Append("<size=.7em>\n <size=1em>Need Charm Bells to bind<size=.7em>\n <size=1em>");
}
else if (Links.x.combat.charmFail == "On water")
{
this.str.Append("<size=.7em>\n <size=1em>Cannot bind at sea<size=.7em>\n <size=1em>");
}
else
{
this.str.Append("<size=.7em>\n <size=1em>No targets in range to bind<size=.7em>\n <size=1em>");
}
flag3 = false;
}
if (flag3)
{
this.str.Append("<size=.7em>\n<size=.9em>");
}
}
this.str.Append("Details");
this.str.Append(" <voffset=.4em><size=40><sprite=");
int controllerSprite = Links.x.gameplay.GetControllerSprite("Interact", Links.x.gameplay.controllerName);
this.str.Append(controllerSprite);
this.str.Append("></size></voffset>");
this.str.Append("</size></line-height>");
if (this.rallyWheelOpen)
{
this.hoverFieldRally.text = this.str.ToString();
return;
}
this.hoverField.text = this.str.ToString();
return;
}
}
else
{
if (this.rallyWheelOpen)
{
this.hoverFieldRally.text = this.str.ToString();
return;
}
this.hoverField.text = this.str.ToString();
return;
}
}
// Token: 0x060012CE RID: 4814 RVA: 0x0016D110 File Offset: 0x0016B310
public void NewScene()
{
this.party.Clear();
if (!Records.x.mainMenuOpen)
{
this.portraitOrder = Links.x.portraitOrder;
foreach (Character character in this.portraitOrder.OrderByDescending((Character ch) => ch.stats.partyID))
{
this.party.Add(character);
}
int count = this.party.Count;
if (count > 1)
{
for (int i = count - 1; i >= 0; i--)
{
this.party.Add(this.party[i]);
}
if (count >= 1)
{
this.party.RemoveAt(0);
}
if (count >= 2)
{
this.party.RemoveAt(0);
}
if (count >= 3)
{
this.party.RemoveAt(0);
}
if (count >= 4)
{
this.party.RemoveAt(0);
}
}
}
}
// Token: 0x060012CF RID: 4815 RVA: 0x0016D228 File Offset: 0x0016B428
private void SelectRally(string type)
{
GameObject gameObject = null;
int num;
if (type == "Damage Rally Attack 1" || type == "Cripple Rally Attack 1" || type == "Both Rally Attack 1")
{
num = 0;
}
else if (type == "Damage Rally Attack 2" || type == "Cripple Rally Attack 2" || type == "Both Rally Attack 2")
{
num = 1;
}
else if (type == "Damage Rally Attack 3" || type == "Cripple Rally Attack 3" || type == "Both Rally Attack 3")
{
num = 2;
}
else
{
num = 3;
}
if (!this.damageAttacksBtns[num].interactable && !this.cripplingAttacksBtns[num].interactable)
{
return;
}
if (type.Contains("Cripple") && !this.cripplingAttacksBtns[num].interactable)
{
return;
}
if (type.Contains("Damag") && !this.damageAttacksBtns[num].interactable)
{
return;
}
if (type.Contains("Both") && !this.damageAttacksBtns[num].interactable)
{
return;
}
if (type.Contains("Cripple") && this.HasAmmo(this.party[num], false) && (this.party[num].invRow1._MainSkill == "Elixir" || this.party[num].invRow1._MainSkill == "Sling"))
{
this.selectedAmmoImage.SetActive(false);
this.selectedRally = "";
this.canTarget = false;
if (this.ammoOpen && this.party[num] == this.selectedRallyCharacter)
{
this.CloseAmmo();
}
else
{
this.CloseAmmo();
this.ShowAmmo(num);
}
this.selectedRallyCharacter = this.party[num];
}
else
{
this.CloseAmmo();
this.selectedRallyCharacter = this.party[num];
if (type.Contains("Damage"))
{
gameObject = this.damageAttacks[num].gameObject.transform.parent.gameObject;
this.selectedRally = "Damage";
}
if (type.Contains("Both"))
{
gameObject = this.bothAttacks[num].gameObject.transform.parent.gameObject;
this.selectedRally = "Both";
}
if (type.Contains("Cripp"))
{
gameObject = this.cripplingAttacks[num].gameObject.transform.parent.gameObject;
this.selectedRally = "Wound";
}
this.selectedAmmoImage.transform.position = gameObject.transform.position;
this.selectedAmmoImage.SetActive(true);
this.selectedRallyBtn = gameObject.gameObject;
this.canTarget = true;
this.StartFade(true);
string text;
if (type.Contains("Damage"))
{
bool flag;
text = this.GetSpecialAttackText(1, gameObject, out flag);
}
else
{
bool flag2;
text = this.GetSpecialAttackText(2, gameObject, out flag2);
}
Links.x.gameplay.SetConfirmText("Select target for " + text);
}
this.SetSelectedButtonSize(false);
this.SetRallyPortraits();
Links.x.gameplay.SetDomeSize();
if (Links.x.joy)
{
Links.x.hudControl.JoyBox(false);
Links.x.gameplay.GetControllerTarget(true);
this.WaitForTargets();
}
}
// Token: 0x060012D0 RID: 4816 RVA: 0x0016D5B4 File Offset: 0x0016B7B4
private void SetSelectedButtonSize(bool small)
{
foreach (RectTransform rectTransform in this.selectedRallyRTs)
{
if (rectTransform.gameObject != this.selectedAmmoImage)
{
if (small)
{
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, 120f);
}
else
{
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, 180f);
}
}
}
}
// Token: 0x060012D1 RID: 4817 RVA: 0x0016D628 File Offset: 0x0016B828
private void SetRallyPortraits()
{
}
// Token: 0x060012D2 RID: 4818 RVA: 0x0016D62C File Offset: 0x0016B82C
public void SetRallyButtons()
{
if (Links.x.fellowship.rally + Links.x.fellowship.rallyBoost >= Links.x.hudControl.rallyInterval)
{
int rallyAttackCosts = Records.x.GetRallyAttackCosts(1, this.character);
Records.x.GetRallyAttackCosts(2, this.character);
int num = 1;
if (Links.x.fellowship.rally + Links.x.fellowship.rallyBoost >= Links.x.hudControl.rallyInterval * 2f)
{
num = 2;
}
if (Links.x.fellowship.rally + Links.x.fellowship.rallyBoost >= Links.x.hudControl.rallyInterval * 3f)
{
num = 3;
}
this.SetSpecialAttackSprite();
if (rallyAttackCosts <= num)
{
this.specialBtn1.interactable = true;
this.special1Trig.noIcon = false;
this.special1.enabled = true;
}
else
{
this.specialBtn1.interactable = false;
this.special1Trig.noIcon = true;
this.special1.enabled = false;
}
}
else
{
this.specialBtn1.interactable = false;
this.special1Trig.noIcon = true;
this.special1.enabled = false;
}
this.dropSpecial1.gameObject.SetActive(this.specialBtn1.interactable);
}
// Token: 0x060012D3 RID: 4819 RVA: 0x0016D795 File Offset: 0x0016B995
public void OpenRallyWheel(bool select)
{
base.gameObject.SetActive(true);
this.rallyOpen = this.RallyOpen(select);
base.StartCoroutine(this.rallyOpen);
}
// Token: 0x060012D4 RID: 4820 RVA: 0x0016D7BD File Offset: 0x0016B9BD
private IEnumerator RallyOpen(bool select)
{
this.canvasGroup.alpha = 0f;
this.canvasGroup.interactable = false;
this.canvasGroup.blocksRaycasts = false;
this.arrow.enabled = false;
this.rallyWheelOpen = true;
Links.x.hudControl.ChangeHudVisibility(false, true);
this.selectedRallyCharacter = null;
this.selectedAmmoImage.SetActive(false);
this.selectedRally = "";
this.selected = "Special Attack 1";
this.rallyCanvasGroup.alpha = 1f;
this.rallyCanvasGroup.interactable = true;
this.rallyCanvasGroup.blocksRaycasts = true;
this.fading = false;
Links.x.gameplay.confirmText.SetActive(false);
this.ControllerMessage(false);
this.controllerWheel2.SetActive(false);
this.controllerWheel4.SetActive(false);
Links.x.partyColliderAdventure.SetTargetText(0);
this.arrow.enabled = false;
Links.x.hudControl.JoyBox(false);
this.targetSelection = false;
Links.x.gameCard.badgesCanvasGroup.interactable = false;
Links.x.gameCard.badgesCanvasGroup.alpha = 0f;
for (int i = 0; i < this.party.Count; i++)
{
Links.x.renderPortraits.FreshBlinks(this.party[i]);
}
MasterAudio.PlaySoundAndForget("Feedback", 1f, new float?(1f), 0f, "Bff_Sounds_RallyMenuOpenPortraits", null);
this.SetHoverText(false, null);
this.SetSpecialAttackSprite();
yield return new WaitForSeconds(0.1f);
Links.x.renderPortraits.FaceForward();
this.rallyWheel.SetActive(true);
if (Links.x.fellowship.rallyAttacks < 4f)
{
this.rallyWheelAnimator.Play("RallySelect");
}
else
{
this.rallyWheelAnimator.Play("RallySelectThree");
}
Links.x.gameplay.skipText.SetActive(true);
if (Links.x.joy)
{
Links.x.hudControl.ToggleControllerControls(false);
}
if (select)
{
this.selectedRally = "";
this.selectedRallyCharacter = null;
this.selectedAmmoImage.SetActive(false);
this.SetRallyPortraits();
}
else
{
this.selectedRally = "";
this.selectedRallyCharacter = null;
this.selectedAmmoImage.SetActive(false);
this.SetRallyPortraits();
}
yield return new WaitForSeconds(0.1f);
Links.x.hudControl.ScaleRallyBar(true);
this.rallyText.SetActive(true);
if (Links.x.combat.inPocketAttack)
{
this.rallyTextAnimator.Play("RallyTextAnim_RallyChain");
}
else
{
this.rallyTextAnimator.Play("RallyTextAnim_Rally");
}
if (Links.x.joy)
{
GameObject firstOpenRallyButton = this.GetFirstOpenRallyButton();
EventSystem.current.SetSelectedGameObject(firstOpenRallyButton.gameObject);
if (firstOpenRallyButton)
{
Links.x.hudControl.SetJoyBox(firstOpenRallyButton.gameObject.GetComponent<UITriggerButton>());
}
}
this.rallyOpen = null;
yield break;
}
// Token: 0x060012D5 RID: 4821 RVA: 0x0016D7D4 File Offset: 0x0016B9D4
public void CloseRallyWheel(bool returnToPocket)
{
this.rallyWheel.SetActive(false);
this.rallyWheelOpen = false;
if (Links.x.joy)
{
Links.x.hudControl.ToggleControllerControls(true);
}
this.open = false;
Links.x.gameplay.skipText.SetActive(false);
Links.x.gameplay.confirmText.SetActive(false);
Links.x.renderPortraits.FaceSide();
Links.x.hudControl.ScaleRallyBar(false);
if (!Records.x.removeControls && !Links.x.combat.inPocketAttack)
{
Links.x.hudControl.ChangeHudVisibility(true, true);
}
this.rallyText.SetActive(false);
Links.x.gameCard.badgesCanvasGroup.interactable = true;
if (!Links.x.combat.inPocketAttack)
{
Links.x.gameCard.badgesCanvasGroup.alpha = 1f;
}
if (Links.x.combat.inPocketAttack)
{
returnToPocket = false;
}
else
{
this.canvasGroup.alpha = 1f;
this.canvasGroup.interactable = true;
this.canvasGroup.blocksRaycasts = true;
}
if (returnToPocket)
{
this.Open(this.character);
return;
}
this.Close(false);
}
// Token: 0x060012D6 RID: 4822 RVA: 0x0016D930 File Offset: 0x0016BB30
public void SetSpecialAttackSprite()
{
if (!this.open && !this.rallyWheelOpen)
{
return;
}
for (int i = 0; i < this.party.Count; i++)
{
Character character = this.party[i];
Library.Inventory invRow = character.invRow1;
string text = invRow._UIModel;
if (invRow._ID <= 1)
{
text = "fist";
}
Sprite item = Links.x.archives.GetItem(text);
Image image = this.damageAttacks[i];
Image image2 = this.cripplingAttacks[i];
Image image3 = this.bothAttacks[i];
Image image4 = this.damageAttacksWpns[i];
Image image5 = this.cripplingAttacksWpns[i];
Image image6 = this.bothAttacksWpns[i];
if (invRow._MainSkill == "Scepter")
{
image.sprite = this.scepterAtk1;
image2.sprite = this.scepterAtk2;
image3.sprite = this.scepterAtk3;
}
if (invRow._MainSkill == "Whip")
{
image.sprite = this.whipAtk1;
image2.sprite = this.whipAtk2;
image3.sprite = this.whipAtk3;
}
if (invRow._MainSkill == "Pole")
{
image.sprite = this.poleAtk1;
image2.sprite = this.poleAtk2;
image3.sprite = this.poleAtk3;
}
if (invRow._MainSkill == "ShortSword")
{
image.sprite = this.swordAtk1;
image2.sprite = this.swordAtk2;
image3.sprite = this.swordAtk3;
}
if (invRow._MainSkill == "Sword")
{
image.sprite = this.longSwordAtk1;
image2.sprite = this.longSwordAtk2;
image3.sprite = this.longSwordAtk3;
}
if (invRow._MainSkill == "Sling")
{
image.sprite = this.slingAtk1;
image2.sprite = this.slingAtk2;
image3.sprite = this.slingAtk3;
}
if (invRow._MainSkill == "Ax")
{
image.sprite = this.axAtk1;
image2.sprite = this.axAtk2;
image3.sprite = this.axAtk3;
}
if (invRow._MainSkill == "Bow")
{
image.sprite = this.bowAtk1;
image2.sprite = this.bowAtk2;
image3.sprite = this.bowAtk3;
}
if (invRow._MainSkill == "Elixir")
{
image.sprite = this.elyxirsAtk1;
image2.sprite = this.elyxirsAtk2;
image3.sprite = this.elyxirsAtk3;
}
if (invRow._MainSkill == "Hand-to-Hand")
{
image.sprite = this.unarmedAtk1;
image2.sprite = this.unarmedAtk2;
image3.sprite = this.unarmedAtk3;
}
this.damageAttacksPaper[i].enabled = true;
this.cripplingAttacksPaper[i].enabled = true;
this.bothAttacksPaper[i].enabled = true;
image4.sprite = item;
image5.sprite = item;
image6.sprite = item;
if (character.portrait)
{
this.rallyPortraits[i].texture = character.portrait.texturesIdle;
}
bool flag = true;
if (this.rally1)
{
flag = true;
}
if (this.CanRally(character, flag))
{
if (character.HasAmmoOrMelee(character.invRow1, false))
{
this.damageAttacksBtns[i].interactable = true;
this.bothAttacksBtns[i].interactable = true;
}
else
{
this.damageAttacksBtns[i].interactable = false;
this.bothAttacksBtns[i].interactable = false;
}
this.cripplingAttacksBtns[i].interactable = this.HasAmmo(character, false);
this.rallyPortraits[i].color = this.portraitActive;
this.rallyPortraitBorders[i].material = this.borderActive;
}
else
{
this.damageAttacksBtns[i].interactable = false;
this.cripplingAttacksBtns[i].interactable = false;
this.bothAttacksBtns[i].interactable = false;
this.rallyPortraits[i].color = this.portraitInactive;
this.rallyPortraitBorders[i].material = this.borderInactive;
}
}
if (this.party.Count < 4)
{
for (int j = this.party.Count; j < 4; j++)
{
this.damageAttacks[j].sprite = this.emptySprite;
this.cripplingAttacks[j].sprite = this.emptySprite;
this.bothAttacks[j].sprite = this.emptySprite;
this.damageAttacksWpns[j].sprite = this.emptySprite;
this.cripplingAttacksWpns[j].sprite = this.emptySprite;
this.bothAttacksWpns[j].sprite = this.emptySprite;
this.damageAttacksBtns[j].interactable = false;
this.cripplingAttacksBtns[j].interactable = false;
this.bothAttacksBtns[j].interactable = false;
this.rallyPortraits[j].color = this.portraitInactive;
this.rallyPortraitBorders[j].material = this.borderInactive;
this.rallyPortraits[j].texture = this.emptyTexture;
this.rallyPortraitBorders[j].material = this.borderInactive;
this.damageAttacksPaper[j].enabled = false;
this.cripplingAttacksPaper[j].enabled = false;
this.bothAttacksPaper[j].enabled = false;
}
if (this.party.Count == 1)
{
for (int k = 0; k < this.oneCharacter.Length; k++)
{
if (this.oneCharacter[k].activeSelf)
{
this.oneCharacter[k].SetActive(false);
}
}
}
if (this.party.Count > 1)
{
for (int l = 0; l < this.oneCharacter.Length; l++)
{
if (!this.oneCharacter[l].activeSelf)
{
this.oneCharacter[l].SetActive(true);
}
}
for (int m = 0; m < this.threeCharacters.Length; m++)
{
if (this.threeCharacters[m].activeSelf)
{
this.threeCharacters[m].SetActive(false);
}
}
}
}
else
{
for (int n = 0; n < this.oneCharacter.Length; n++)
{
if (!this.oneCharacter[n].activeSelf)
{
this.oneCharacter[n].SetActive(true);
}
}
}
this.CloseAmmo();
}
// Token: 0x060012D7 RID: 4823 RVA: 0x0016E064 File Offset: 0x0016C264
public GameObject GetFirstOpenRallyButton()
{
for (int i = 0; i < this.party.Count; i++)
{
if (this.damageAttacksPaper[i].enabled && this.damageAttacksBtns[i].interactable)
{
return this.damageAttacksBtns[i].gameObject;
}
}
for (int j = 0; j < this.party.Count; j++)
{
if (this.cripplingAttacksPaper[j].enabled && this.cripplingAttacksBtns[j].interactable)
{
return this.cripplingAttacksBtns[j].gameObject;
}
}
return null;
}
// Token: 0x060012D8 RID: 4824 RVA: 0x0016E110 File Offset: 0x0016C310
public bool CanRally(Character c, bool lookForTargets)
{
bool flag = true;
if (!c.HasAmmoOrMelee(c.invRow1, false))
{
flag = this.HasAmmo(c, false);
}
if (!c.IsSentient() || c.stats.Confuse() != 0 || c.stats.pinned || c.fleeing || c.isHit || c.inAction || !(c != this.rally1) || !(c != this.rally2) || !flag || (this.rally1 && (!this.rally1 || Vector3.Distance(Links.x.combat.rallyStartPosition, c.currentPosition) >= 1600f || Records.x.partySailing)))
{
return false;
}
if (lookForTargets && !Links.x.combat.rallyTarget)
{
this.allCharacters = Links.x.diorama.characters;
bool flag2 = false;
if (this.rally1 && c.actions)
{
for (int i = 0; i < this.allCharacters.Count; i++)
{
if (!flag2)
{
Character character = this.allCharacters[i];
if (c.actions.ai.CanAttack(character) && !character.dead && !character.stunned)
{
if (Records.x.partySailing)
{
float num;
float num2;
float num3;
Links.x.combat.GetDistances(c, character, out num, out num2, out num3);
float sqrMagnitude = (c.currentPosition - character.currentPosition).sqrMagnitude;
if (sqrMagnitude <= num2 && sqrMagnitude >= num3)
{
if (Records.x.editor)
{
string text = ((c != null) ? c.ToString() : null);
string text2 = " ";
Character character2 = character;
Debug.Log(text + text2 + ((character2 != null) ? character2.ToString() : null));
}
flag2 = true;
break;
}
}
else if ((Links.x.combat.rallyStartPosition - character.currentPosition).sqrMagnitude < 100f)
{
flag2 = true;
break;
}
}
}
}
}
else
{
flag2 = true;
}
return flag2;
}
return true;
}
// Token: 0x060012D9 RID: 4825 RVA: 0x0016E358 File Offset: 0x0016C558
public void CloseAmmo()
{
if (Links.x.joy && this.rallyWheelOpen && this.ammoOpen && this.ammoCharacter)
{
int num = this.party.IndexOf(this.ammoCharacter);
EventSystem.current.SetSelectedGameObject(this.cripplingAttacksBtns[num].gameObject);
Links.x.hudControl.SetJoyBox(this.cripplingAttacksBtns[num].gameObject.GetComponent<UITriggerButton>());
}
this.ammoOpen = false;
for (int i = 0; i < this.usedAmmos.Count; i++)
{
this.openAmmos.Add(this.usedAmmos[i]);
this.usedAmmos[i].SetActive(false);
}
this.usedAmmos.Clear();
this.ammoCharacter = null;
for (int j = 0; j < this.grids.Count; j++)
{
this.grids[j].enabled = false;
}
}
// Token: 0x060012DA RID: 4826 RVA: 0x0016E460 File Offset: 0x0016C660
public string GetSpecialAttackText(int num, GameObject go, out bool canAttack)
{
string text = "";
int num2 = 0;
if (go.name.Contains("2"))
{
num2 = 1;
}
if (go.name.Contains("3"))
{
num2 = 2;
}
if (go.name.Contains("4"))
{
num2 = 3;
}
Library.Inventory invRow = this.party[num2].invRow1;
if (invRow._MainSkill == "Scepter")
{
if (num == 1)
{
text = "Whack";
}
if (num == 2)
{
text = "Breach";
}
if (num == 3)
{
text = "Crush";
}
}
if (invRow._MainSkill == "Whip")
{
if (num == 1)
{
text = "Rip Splash";
}
if (num == 2)
{
text = "Paralyze Snap";
}
if (num == 3)
{
text = "Snare";
}
}
if (invRow._MainSkill == "Pole")
{
if (num == 1)
{
text = "Lunge";
}
if (num == 2)
{
text = "Trip";
}
if (num == 3)
{
text = "Skewer";
}
}
if (invRow._MainSkill == "ShortSword")
{
if (num == 1)
{
text = "Strike";
}
if (num == 2)
{
text = "Sweep";
}
if (num == 3)
{
text = "Sweep";
}
}
if (invRow._MainSkill == "Sword")
{
if (num == 1)
{
text = "Slash";
}
if (num == 2)
{
text = "Slash";
}
if (num == 3)
{
text = "Slash";
}
}
if (invRow._MainSkill == "Sling")
{
if (num == 1)
{
text = "Overhead";
}
if (num == 2)
{
if (this.HasAmmo(this.party[num2], false))
{
text = "Use Rivi-Wraps";
}
else
{
text = "Requires Rivi-Wraps";
}
}
if (num == 3)
{
text = "Mighty";
}
}
if (invRow._MainSkill == "Ax")
{
if (num == 1)
{
text = "Hack";
}
if (num == 2)
{
text = "Carve";
}
if (num == 3)
{
text = "Mighty";
}
}
if (invRow._MainSkill == "Bow")
{
if (num == 1)
{
text = "Mighty Draw";
}
if (num == 2)
{
text = "Draw";
}
if (num == 3)
{
text = "Pin";
}
}
if (invRow._MainSkill == "Elixir")
{
if (num == 1)
{
text = "Shaken";
}
if (num == 2)
{
if (this.HasAmmo(this.party[num2], false))
{
text = "Use Prepared Globes";
}
else
{
text = "Requires Prepared Globes";
}
}
if (num == 3)
{
text = "Hard Shot";
}
}
if (invRow._MainSkill == "Hand-to-Hand")
{
if (num == 1)
{
text = "Uppercut";
}
if (num == 2)
{
text = "Drop Kick";
}
if (num == 3)
{
text = "Suplex";
}
}
if (this.damageAttacksBtns[num2].interactable || this.cripplingAttacksBtns[num2].interactable)
{
canAttack = true;
return text;
}
canAttack = false;
return this.party[num2].stats.GetName() + " cannot join the rally right now";
}
// Token: 0x060012DB RID: 4827 RVA: 0x0016E72C File Offset: 0x0016C92C
public string GetSpecialAttackTextDesc(int num, GameObject go)
{
string text = "";
int num2 = 0;
if (go.name.Contains("2"))
{
num2 = 1;
}
if (go.name.Contains("3"))
{
num2 = 2;
}
if (go.name.Contains("4"))
{
num2 = 3;
}
Library.Inventory invRow = this.party[num2].invRow1;
if (invRow._MainSkill == "Scepter")
{
if (num == 1)
{
text = "Attack a target with a critical blow that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow = Links.x.library.GetEffectRow("CripplingScepter");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow2 = Links.x.library.GetEffectRow("CripplingScepter");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow2, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Whip")
{
if (num == 1)
{
text = "Attack a target with a critical hit that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow3 = Links.x.library.GetEffectRow("CripplingWhip");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow3, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow4 = Links.x.library.GetEffectRow("CripplingWhip");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow4, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Pole")
{
if (num == 1)
{
text = "Attack a target with a critical blow that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow5 = Links.x.library.GetEffectRow("CripplingPole");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow5, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow6 = Links.x.library.GetEffectRow("CripplingPole");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow6, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "ShortSword")
{
if (num == 1)
{
text = "Attack a target with a critical slash that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow7 = Links.x.library.GetEffectRow("CripplingShortSword");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow7, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow8 = Links.x.library.GetEffectRow("CripplingShortSword");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow8, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Sword")
{
if (num == 1)
{
text = "Attack a target with a critical cut that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow9 = Links.x.library.GetEffectRow("CripplingLongSword");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow9, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow10 = Links.x.library.GetEffectRow("CripplingLongSword");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow10, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Sling")
{
if (num == 1)
{
text = "Attack a target with a critical blow that deals up to 3x damage.";
}
if (num == 2)
{
text = "Use crafted or rare slingstones stored in your bag.";
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow11 = Links.x.library.GetEffectRow("CripplingSling");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow11, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Ax")
{
if (num == 1)
{
text = "Attack a target with a critical blow that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow12 = Links.x.library.GetEffectRow("CripplingAx");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow12, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow13 = Links.x.library.GetEffectRow("CripplingAx");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow13, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Bow")
{
if (num == 1)
{
text = "Attack a target with a critical shot that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow14 = Links.x.library.GetEffectRow("CripplingBow");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow14, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow15 = Links.x.library.GetEffectRow("CripplingBow");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow15, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Elixir")
{
if (num == 1)
{
text = "Attack a target with a critical bomb that deals up to 3x damage.";
}
if (num == 2)
{
text = "Use crafted or rare elyxirs stored in your bag.";
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow16 = Links.x.library.GetEffectRow("CripplingElyxir");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow16, (float)this.character.stats.level, 0);
}
}
if (invRow._MainSkill == "Hand-to-Hand")
{
if (num == 1)
{
text = "Attack a target with a critical punch that deals up to 3x damage.";
}
if (num == 2)
{
text = "Cripple your target's defenses.";
Library.Effects effectRow17 = Links.x.library.GetEffectRow("CripplingUnarmed");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow17, (float)this.character.stats.level, 0);
}
if (num == 3)
{
text = "Deal heavy damage and strike your target's defenses.";
Library.Effects effectRow18 = Links.x.library.GetEffectRow("CripplingUnarmed");
text += "\n";
text += Links.x.manual.GetEffectDescription(effectRow18, (float)this.character.stats.level, 0);
}
}
return text;
}
// Token: 0x060012DC RID: 4828 RVA: 0x0016EEDC File Offset: 0x0016D0DC
public void StartFade(bool fadeOut)
{
if (fadeOut)
{
this.startDither = 0f;
this.endDither = 0.95f;
this.rallyCanvasGroup.interactable = false;
this.rallyCanvasGroup.blocksRaycasts = false;
Links.x.gameplay.confirmText.SetActive(true);
}
else
{
this.startDither = 0.95f;
this.endDither = 0f;
this.rallyCanvasGroup.interactable = true;
this.rallyCanvasGroup.blocksRaycasts = true;
this.canTarget = false;
this.selectedRally = "";
this.selectedAmmo = -1;
this.selectedRallyCharacter = null;
if (this.ammoOpen)
{
this.CloseAmmo();
}
this.selectedAmmoImage.SetActive(false);
Links.x.gameplay.confirmText.SetActive(false);
Links.x.gameplay.SetDomeSize();
if (Links.x.joy)
{
Links.x.hudControl.JoyBox(true);
if (this.prevSelectedObject && this.prevSelectedObject.activeSelf && this.prevSelectedObject.activeInHierarchy)
{
EventSystem.current.SetSelectedGameObject(this.prevSelectedObject);
}
}
}
this.currentDither = this.startDither;
this.fadeAmount = 0f;
this.fading = true;
}
// Token: 0x060012DD RID: 4829 RVA: 0x0016F034 File Offset: 0x0016D234
public void SelectAmmo(GameObject go)
{
int siblingIndex = go.transform.GetSiblingIndex();
this.selectedAmmo = this.ammos[siblingIndex];
this.selectedAmmoImage.gameObject.transform.position = go.transform.position;
this.selectedAmmoImage.SetActive(true);
this.selectedRallyBtn = go.gameObject;
this.canTarget = true;
GameObject gameObject = go.transform.parent.gameObject.transform.parent.gameObject;
int num = 0;
this.selectedRally = "Cripple Rally Attack 1";
if (gameObject.name.Contains("2"))
{
num = 1;
this.selectedRally = "Cripple Rally Attack 2";
}
if (gameObject.name.Contains("3"))
{
num = 2;
this.selectedRally = "Cripple Rally Attack 3";
}
if (gameObject.name.Contains("4"))
{
num = 3;
this.selectedRally = "Cripple Rally Attack 4";
}
this.selectedRallyCharacter = this.party[num];
Library.Inventory invRow = Links.x.library.GetInvRow(this.ammos[siblingIndex]);
Links.x.gameplay.SetConfirmText("Select target for " + invRow._DisplayName);
this.SetSelectedButtonSize(true);
this.StartFade(true);
Links.x.gameplay.SetDomeSize();
if (Links.x.joy)
{
Links.x.hudControl.JoyBox(false);
Links.x.gameplay.GetControllerTarget(true);
this.WaitForTargets();
}
}
// Token: 0x060012DE RID: 4830 RVA: 0x0016F1C2 File Offset: 0x0016D3C2
public int GetSelectedAmmoID()
{
return this.selectedAmmo;
}
// Token: 0x060012DF RID: 4831 RVA: 0x0016F1CA File Offset: 0x0016D3CA
public bool CanSelectRallyTarget()
{
if (this.selectedRallyCharacter != null && this.selectedRally != "")
{
if (!this.ammoOpen)
{
return true;
}
if (this.selectedAmmo != -1)
{
return true;
}
}
return false;
}
// Token: 0x060012E0 RID: 4832 RVA: 0x0016F204 File Offset: 0x0016D404
public void ShowAmmo(int index)
{
Character character = this.party[index];
if (this.HasAmmo(character, false) && (character.invRow1._MainSkill == "Elixir" || character.invRow1._MainSkill == "Sling"))
{
this.ammoOpen = true;
this.ammoCharacter = character;
this.targetSelection = false;
this.canTarget = false;
bool flag = false;
bool flag2 = false;
this.ammos.Clear();
this.ammoCounts.Clear();
if (character.invRow1._MainSkill == "Elixir")
{
flag = true;
}
if (character.invRow1._MainSkill == "Sling")
{
flag2 = true;
}
if (flag || flag2)
{
this.bag = character.bag;
for (int i = 0; i < this.bag.Count; i++)
{
if (i % 2 == 0)
{
if (flag2 && this.bag[i] > Links.x.library.dartsMin && this.bag[i] <= Links.x.library.dartsMax)
{
int num = this.bag[i + 1];
if (!this.ammos.Contains(this.bag[i]))
{
this.ammos.Add(this.bag[i]);
this.ammoCounts.Add(num);
}
}
if (flag && this.bag[i] > Links.x.library.vialsMin + 1 && this.bag[i] <= Links.x.library.vialsMax)
{
int num2 = this.bag[i + 1];
if (!this.ammos.Contains(this.bag[i]))
{
this.ammos.Add(this.bag[i]);
this.ammoCounts.Add(num2);
}
}
}
}
}
this.grids[index].enabled = false;
for (int j = 0; j < this.ammos.Count; j++)
{
GameObject gameObject;
if (this.openAmmos.Count > 0)
{
gameObject = this.openAmmos[0];
gameObject.transform.SetParent(this.ammoGrids[index].transform);
this.openAmmos.RemoveAt(0);
}
else
{
gameObject = Object.Instantiate<GameObject>(this.ammoPrefab, Vector3.zero, Quaternion.identity, this.ammoGrids[index].transform);
}
gameObject.name = "Rare Ammo " + j.ToString();
this.usedAmmos.Add(gameObject);
gameObject.SetActive(true);
gameObject.transform.localScale = Vector3.one;
gameObject.transform.localPosition = Vector3.zero;
gameObject.transform.localRotation = Quaternion.Euler(Vector3.zero);
Library.Inventory invRow = Links.x.library.GetInvRow(this.ammos[j]);
gameObject.transform.GetChild(0).gameObject.GetComponent<Image>().sprite = Links.x.archives.GetItem(invRow._UIModel);
gameObject.transform.GetChild(1).gameObject.GetComponent<TextMeshProUGUI>().text = this.ammoCounts[j].ToString();
}
this.grids[index].enabled = true;
if (Links.x.joy)
{
EventSystem.current.SetSelectedGameObject(this.usedAmmos[0].gameObject);
Links.x.hudControl.SetJoyBox(this.usedAmmos[0].gameObject.GetComponent<UITriggerButton>());
return;
}
}
else
{
this.CloseAmmo();
}
}
// Token: 0x060012E1 RID: 4833 RVA: 0x0016F608 File Offset: 0x0016D808
private IEnumerator RefreshLayout(GridLayoutGroup layout)
{
yield return new WaitForFixedUpdate();
layout.enabled = false;
layout.enabled = true;
if (this.ammos.Count > 0)
{
this.SelectAmmo(this.usedAmmos[0]);
}
yield break;
}
// Token: 0x060012E2 RID: 4834 RVA: 0x0016F620 File Offset: 0x0016D820
public bool HasAmmo(Character c, bool all)
{
bool flag = false;
bool flag2 = false;
if (c.invRow1._MainSkill == "Elixir")
{
flag = true;
}
if (c.invRow1._MainSkill == "Sling")
{
flag2 = true;
}
if (flag || flag2)
{
this.bag = c.bag;
for (int i = 0; i < this.bag.Count; i++)
{
if (i % 2 == 0)
{
if (flag2)
{
if (all)
{
if (this.bag[i] >= Links.x.library.dartsMin && this.bag[i] <= Links.x.library.dartsMax)
{
return true;
}
}
else if (this.bag[i] > Links.x.library.dartsMin && this.bag[i] <= Links.x.library.dartsMax)
{
return true;
}
}
if (flag)
{
if (all)
{
if (this.bag[i] >= Links.x.library.vialsMin && this.bag[i] <= Links.x.library.vialsMax)
{
return true;
}
}
else if (this.bag[i] > Links.x.library.vialsMin + 1 && this.bag[i] <= Links.x.library.vialsMax)
{
return true;
}
}
}
}
return false;
}
return true;
}
// Token: 0x060012E3 RID: 4835 RVA: 0x0016F79C File Offset: 0x0016D99C
public string GetSpecialAttackTextAmmo(string type)
{
int num = 0;
this.str.Clear();
if (type == "Rare Ammo 1")
{
num = 1;
}
if (type == "Rare Ammo 2")
{
num = 2;
}
if (type == "Rare Ammo 3")
{
num = 3;
}
if (type == "Rare Ammo 4")
{
num = 4;
}
if (type == "Rare Ammo 5")
{
num = 5;
}
if (type == "Rare Ammo 6")
{
num = 6;
}
if (type == "Rare Ammo 7")
{
num = 7;
}
if (type == "Rare Ammo 8")
{
num = 8;
}
if (type == "Rare Ammo 9")
{
num = 9;
}
return Links.x.library.GetInvRow(this.ammos[num])._DisplayName;
}
// Token: 0x060012E4 RID: 4836 RVA: 0x0016F860 File Offset: 0x0016DA60
public string GetSpecialAttackTextDescAmmo(string type)
{
int num = 0;
this.str.Clear();
if (type == "Rare Ammo 1")
{
num = 1;
}
if (type == "Rare Ammo 2")
{
num = 2;
}
if (type == "Rare Ammo 3")
{
num = 3;
}
if (type == "Rare Ammo 4")
{
num = 4;
}
if (type == "Rare Ammo 5")
{
num = 5;
}
if (type == "Rare Ammo 6")
{
num = 6;
}
if (type == "Rare Ammo 7")
{
num = 7;
}
if (type == "Rare Ammo 8")
{
num = 8;
}
if (type == "Rare Ammo 9")
{
num = 9;
}
Library.Inventory invRow = Links.x.library.GetInvRow(this.ammos[num]);
if (invRow._Effect != "")
{
Library.Effects effectRow = Links.x.library.GetEffectRow(invRow._Effect);
if (effectRow != null)
{
string effectDescription = Links.x.manual.GetEffectDescription(effectRow, (float)this.character.stats.level, 0);
this.str.Append("Damage: ");
this.str.Append(invRow._DmgMax);
this.str.Append("\nArea of Effect: ");
float num2 = this.character.stats.R1(5f + this.character.stats.MultiHitMod());
this.str.Append(num2);
this.str.Append(" poles");
if (invRow._Name.Contains("Dart"))
{
this.str.Append("\n\nStone Effects: ");
}
else
{
this.str.Append("\n\nElyxir Effects: ");
}
this.str.Append(effectDescription);
}
}
return this.str.ToString();
}
// Token: 0x04001EE4 RID: 7908
public bool open;
// Token: 0x04001EE5 RID: 7909
public bool halfOpen;
// Token: 0x04001EE6 RID: 7910
public bool targetSelection;
// Token: 0x04001EE7 RID: 7911
public bool joyOpen;
// Token: 0x04001EE8 RID: 7912
public Animator animator;
// Token: 0x04001EE9 RID: 7913
public GameObject spellsGo;
// Token: 0x04001EEA RID: 7914
public GameObject items1Go;
// Token: 0x04001EEB RID: 7915
public GameObject items2Go;
// Token: 0x04001EEC RID: 7916
public GameObject items3Go;
// Token: 0x04001EED RID: 7917
public GameObject specialGo;
// Token: 0x04001EEE RID: 7918
public Image selectedLightAtk;
// Token: 0x04001EEF RID: 7919
public Image selectedMediumAtk;
// Token: 0x04001EF0 RID: 7920
public Image selectedHeavyAtk;
// Token: 0x04001EF1 RID: 7921
public Image selectedSpells;
// Token: 0x04001EF2 RID: 7922
public Image selectedSongs;
// Token: 0x04001EF3 RID: 7923
public Image selectedCharm;
// Token: 0x04001EF4 RID: 7924
public Image selectedItem1;
// Token: 0x04001EF5 RID: 7925
public Image selectedItem2;
// Token: 0x04001EF6 RID: 7926
public Image selectedItem3;
// Token: 0x04001EF7 RID: 7927
public Image selectedShout;
// Token: 0x04001EF8 RID: 7928
public Image selectedSneak;
// Token: 0x04001EF9 RID: 7929
public Image selectedSpecial1;
// Token: 0x04001EFA RID: 7930
public Image dropItem1;
// Token: 0x04001EFB RID: 7931
public Image dropItem2;
// Token: 0x04001EFC RID: 7932
public Image dropItem3;
// Token: 0x04001EFD RID: 7933
public Image dropSpecial1;
// Token: 0x04001EFE RID: 7934
public Image dropSpecial2;
// Token: 0x04001EFF RID: 7935
public Image lightAtk;
// Token: 0x04001F00 RID: 7936
public Image mediumAtk;
// Token: 0x04001F01 RID: 7937
public Image heavyAtk;
// Token: 0x04001F02 RID: 7938
public Image spells;
// Token: 0x04001F03 RID: 7939
public Image songs;
// Token: 0x04001F04 RID: 7940
public Image charm;
// Token: 0x04001F05 RID: 7941
public Image item1;
// Token: 0x04001F06 RID: 7942
public Image item2;
// Token: 0x04001F07 RID: 7943
public Image item3;
// Token: 0x04001F08 RID: 7944
public Image special1;
// Token: 0x04001F09 RID: 7945
public Image item1back;
// Token: 0x04001F0A RID: 7946
public Image item2back;
// Token: 0x04001F0B RID: 7947
public Image item3back;
// Token: 0x04001F0C RID: 7948
public Button spellsBtn;
// Token: 0x04001F0D RID: 7949
public Button songsBtn;
// Token: 0x04001F0E RID: 7950
public Button item1Btn;
// Token: 0x04001F0F RID: 7951
public Button item2Btn;
// Token: 0x04001F10 RID: 7952
public Button item3Btn;
// Token: 0x04001F11 RID: 7953
public Button lightAtkBtn;
// Token: 0x04001F12 RID: 7954
public Button mediumAtkBtn;
// Token: 0x04001F13 RID: 7955
public Button heavyAtkBtn;
// Token: 0x04001F14 RID: 7956
public Button charmBtn;
// Token: 0x04001F15 RID: 7957
public Button shoutBtn;
// Token: 0x04001F16 RID: 7958
public Button sneakBtn;
// Token: 0x04001F17 RID: 7959
public Button specialBtn1;
// Token: 0x04001F18 RID: 7960
public UITriggerButton lightTrig;
// Token: 0x04001F19 RID: 7961
public UITriggerButton mediumTrig;
// Token: 0x04001F1A RID: 7962
public UITriggerButton heavyTrig;
// Token: 0x04001F1B RID: 7963
public UITriggerButton special1Trig;
// Token: 0x04001F1C RID: 7964
public UITriggerButton charmTrig;
// Token: 0x04001F1D RID: 7965
public UITriggerButton sneakTrig;
// Token: 0x04001F1E RID: 7966
public UITriggerButton talkTrig;
// Token: 0x04001F1F RID: 7967
public UITriggerButton item1Trig;
// Token: 0x04001F20 RID: 7968
public UITriggerButton item2Trig;
// Token: 0x04001F21 RID: 7969
public UITriggerButton item3Trig;
// Token: 0x04001F22 RID: 7970
public UITriggerButton spellTrig;
// Token: 0x04001F23 RID: 7971
public TextMeshProUGUI attackKey;
// Token: 0x04001F24 RID: 7972
public TextMeshProUGUI pinKey;
// Token: 0x04001F25 RID: 7973
public TextMeshProUGUI chargeKey;
// Token: 0x04001F26 RID: 7974
public TextMeshProUGUI rallyKey;
// Token: 0x04001F27 RID: 7975
public TextMeshProUGUI spellsKey;
// Token: 0x04001F28 RID: 7976
public TextMeshProUGUI sneakKey;
// Token: 0x04001F29 RID: 7977
public TextMeshProUGUI talkKey;
// Token: 0x04001F2A RID: 7978
public TextMeshProUGUI item1Key;
// Token: 0x04001F2B RID: 7979
public TextMeshProUGUI item2Key;
// Token: 0x04001F2C RID: 7980
public TextMeshProUGUI item3key;
// Token: 0x04001F2D RID: 7981
public Pointer attackPointer;
// Token: 0x04001F2E RID: 7982
public Pointer pinPointer;
// Token: 0x04001F2F RID: 7983
public Pointer chargePointer;
// Token: 0x04001F30 RID: 7984
public Pointer rallyPointer;
// Token: 0x04001F31 RID: 7985
public Pointer spellsPointer;
// Token: 0x04001F32 RID: 7986
public Pointer sneakPointer;
// Token: 0x04001F33 RID: 7987
public Pointer talkPointer;
// Token: 0x04001F34 RID: 7988
public Pointer item1Pointer;
// Token: 0x04001F35 RID: 7989
public Pointer item2Pointer;
// Token: 0x04001F36 RID: 7990
public Pointer item3Pointer;
// Token: 0x04001F37 RID: 7991
public Sprite swordAtk1;
// Token: 0x04001F38 RID: 7992
public Sprite swordAtk2;
// Token: 0x04001F39 RID: 7993
public Sprite swordAtk3;
// Token: 0x04001F3A RID: 7994
public Sprite longSwordAtk1;
// Token: 0x04001F3B RID: 7995
public Sprite longSwordAtk2;
// Token: 0x04001F3C RID: 7996
public Sprite longSwordAtk3;
// Token: 0x04001F3D RID: 7997
public Sprite axAtk1;
// Token: 0x04001F3E RID: 7998
public Sprite axAtk2;
// Token: 0x04001F3F RID: 7999
public Sprite axAtk3;
// Token: 0x04001F40 RID: 8000
public Sprite poleAtk1;
// Token: 0x04001F41 RID: 8001
public Sprite poleAtk2;
// Token: 0x04001F42 RID: 8002
public Sprite poleAtk3;
// Token: 0x04001F43 RID: 8003
public Sprite whipAtk1;
// Token: 0x04001F44 RID: 8004
public Sprite whipAtk2;
// Token: 0x04001F45 RID: 8005
public Sprite whipAtk3;
// Token: 0x04001F46 RID: 8006
public Sprite scepterAtk1;
// Token: 0x04001F47 RID: 8007
public Sprite scepterAtk2;
// Token: 0x04001F48 RID: 8008
public Sprite scepterAtk3;
// Token: 0x04001F49 RID: 8009
public Sprite unarmedAtk1;
// Token: 0x04001F4A RID: 8010
public Sprite unarmedAtk2;
// Token: 0x04001F4B RID: 8011
public Sprite unarmedAtk3;
// Token: 0x04001F4C RID: 8012
public Sprite multiHandAtk1;
// Token: 0x04001F4D RID: 8013
public Sprite multiHandAtk2;
// Token: 0x04001F4E RID: 8014
public Sprite multiHandAtk3;
// Token: 0x04001F4F RID: 8015
public Sprite slingAtk1;
// Token: 0x04001F50 RID: 8016
public Sprite slingAtk2;
// Token: 0x04001F51 RID: 8017
public Sprite slingAtk3;
// Token: 0x04001F52 RID: 8018
public Sprite bowAtk1;
// Token: 0x04001F53 RID: 8019
public Sprite bowAtk2;
// Token: 0x04001F54 RID: 8020
public Sprite bowAtk3;
// Token: 0x04001F55 RID: 8021
public Sprite elyxirsAtk1;
// Token: 0x04001F56 RID: 8022
public Sprite elyxirsAtk2;
// Token: 0x04001F57 RID: 8023
public Sprite elyxirsAtk3;
// Token: 0x04001F58 RID: 8024
public Windows window;
// Token: 0x04001F59 RID: 8025
public Windows spellbookWindow;
// Token: 0x04001F5A RID: 8026
public Button spellbookTop;
// Token: 0x04001F5B RID: 8027
public TextMeshProUGUI closeSpellbook;
// Token: 0x04001F5C RID: 8028
private IEnumerator closeRoutine;
// Token: 0x04001F5D RID: 8029
private IEnumerator openRoutine;
// Token: 0x04001F5E RID: 8030
public TextMeshProUGUI hoverField;
// Token: 0x04001F5F RID: 8031
public TextMeshProUGUI hoverFieldRally;
// Token: 0x04001F60 RID: 8032
public TextMeshProUGUI item1stack;
// Token: 0x04001F61 RID: 8033
public TextMeshProUGUI item2stack;
// Token: 0x04001F62 RID: 8034
public TextMeshProUGUI item3stack;
// Token: 0x04001F63 RID: 8035
public RectTransform hoverFieldRT;
// Token: 0x04001F64 RID: 8036
public Character character;
// Token: 0x04001F65 RID: 8037
public SkillBag skillBag;
// Token: 0x04001F66 RID: 8038
public string selected = "";
// Token: 0x04001F67 RID: 8039
private StringFast str = new StringFast(32);
// Token: 0x04001F68 RID: 8040
public Material hasBook;
// Token: 0x04001F69 RID: 8041
public Material noBook;
// Token: 0x04001F6A RID: 8042
public GameObject spellbook;
// Token: 0x04001F6B RID: 8043
public Character c1;
// Token: 0x04001F6C RID: 8044
public Character c2;
// Token: 0x04001F6D RID: 8045
public Character c3;
// Token: 0x04001F6E RID: 8046
public Character c4;
// Token: 0x04001F6F RID: 8047
public string selected1 = "Light Attack";
// Token: 0x04001F70 RID: 8048
public string selected2 = "Light Attack";
// Token: 0x04001F71 RID: 8049
public string selected3 = "Light Attack";
// Token: 0x04001F72 RID: 8050
public string selected4 = "Light Attack";
// Token: 0x04001F73 RID: 8051
public CanvasGroup canvasGroup;
// Token: 0x04001F74 RID: 8052
public Image arrow;
// Token: 0x04001F75 RID: 8053
private float prevAngle;
// Token: 0x04001F76 RID: 8054
private float timeSinceOpen;
// Token: 0x04001F77 RID: 8055
public GameObject controllerWheel1;
// Token: 0x04001F78 RID: 8056
public GameObject controllerWheel2;
// Token: 0x04001F79 RID: 8057
public GameObject controllerWheel4;
// Token: 0x04001F7A RID: 8058
public Sprite doGroup;
// Token: 0x04001F7B RID: 8059
public Sprite breakGroup;
// Token: 0x04001F7C RID: 8060
public GridLayoutGroup glg;
// Token: 0x04001F7D RID: 8061
public bool ammoOpen;
// Token: 0x04001F7E RID: 8062
private List<int> bag;
// Token: 0x04001F7F RID: 8063
private List<int> ammos = new List<int>();
// Token: 0x04001F80 RID: 8064
private List<int> ammoCounts = new List<int>();
// Token: 0x04001F81 RID: 8065
public int selectedAmmo;
// Token: 0x04001F82 RID: 8066
public GameObject selectedAmmoImage;
// Token: 0x04001F83 RID: 8067
private GameObject selectedRallyBtn;
// Token: 0x04001F84 RID: 8068
private RectTransform[] selectedRallyRTs;
// Token: 0x04001F85 RID: 8069
public Vector3 hoverPositionJoy;
// Token: 0x04001F86 RID: 8070
public Vector3 hoverPositionMK;
// Token: 0x04001F87 RID: 8071
private float lastChange;
// Token: 0x04001F88 RID: 8072
[Header("Rally")]
public GameObject rallyWheel;
// Token: 0x04001F89 RID: 8073
public GameObject rallyText;
// Token: 0x04001F8A RID: 8074
public bool rallyWheelOpen;
// Token: 0x04001F8B RID: 8075
public List<Image> damageAttacksPaper = new List<Image>();
// Token: 0x04001F8C RID: 8076
public List<Image> cripplingAttacksPaper = new List<Image>();
// Token: 0x04001F8D RID: 8077
public List<Image> bothAttacksPaper = new List<Image>();
// Token: 0x04001F8E RID: 8078
public List<Image> damageAttacks = new List<Image>();
// Token: 0x04001F8F RID: 8079
public List<Image> cripplingAttacks = new List<Image>();
// Token: 0x04001F90 RID: 8080
public List<Image> bothAttacks = new List<Image>();
// Token: 0x04001F91 RID: 8081
public List<Image> damageAttacksWpns = new List<Image>();
// Token: 0x04001F92 RID: 8082
public List<Image> cripplingAttacksWpns = new List<Image>();
// Token: 0x04001F93 RID: 8083
public List<Image> bothAttacksWpns = new List<Image>();
// Token: 0x04001F94 RID: 8084
public List<Button> damageAttacksBtns = new List<Button>();
// Token: 0x04001F95 RID: 8085
public List<Button> cripplingAttacksBtns = new List<Button>();
// Token: 0x04001F96 RID: 8086
public List<Button> bothAttacksBtns = new List<Button>();
// Token: 0x04001F97 RID: 8087
public List<RawImage> rallyPortraits = new List<RawImage>();
// Token: 0x04001F98 RID: 8088
public List<Image> rallyPortraitBorders = new List<Image>();
// Token: 0x04001F99 RID: 8089
public List<GridLayoutGroup> grids = new List<GridLayoutGroup>();
// Token: 0x04001F9A RID: 8090
public List<GameObject> ammoGrids = new List<GameObject>();
// Token: 0x04001F9B RID: 8091
public List<int> ammoRotation = new List<int>();
// Token: 0x04001F9C RID: 8092
public List<GameObject> openAmmos = new List<GameObject>();
// Token: 0x04001F9D RID: 8093
public List<GameObject> usedAmmos = new List<GameObject>();
// Token: 0x04001F9E RID: 8094
private List<Character> portraitOrder;
// Token: 0x04001F9F RID: 8095
private List<Character> party = new List<Character>();
// Token: 0x04001FA0 RID: 8096
private IEnumerator rallyOpen;
// Token: 0x04001FA1 RID: 8097
public Animator rallyWheelAnimator;
// Token: 0x04001FA2 RID: 8098
public Animator rallyTextAnimator;
// Token: 0x04001FA3 RID: 8099
public GameObject ammoPrefab;
// Token: 0x04001FA4 RID: 8100
public Character selectedRallyCharacter;
// Token: 0x04001FA5 RID: 8101
public Character rally1;
// Token: 0x04001FA6 RID: 8102
public Character rally2;
// Token: 0x04001FA7 RID: 8103
public string selectedRally;
// Token: 0x04001FA8 RID: 8104
public Texture emptyTexture;
// Token: 0x04001FA9 RID: 8105
public Sprite emptySprite;
// Token: 0x04001FAA RID: 8106
public bool canTarget;
// Token: 0x04001FAB RID: 8107
public Material borderActive;
// Token: 0x04001FAC RID: 8108
public Material borderInactive;
// Token: 0x04001FAD RID: 8109
public Color portraitActive;
// Token: 0x04001FAE RID: 8110
public Color portraitInactive;
// Token: 0x04001FAF RID: 8111
public float currentDither;
// Token: 0x04001FB0 RID: 8112
private float startDither;
// Token: 0x04001FB1 RID: 8113
private float endDither;
// Token: 0x04001FB2 RID: 8114
private float fadeAmount;
// Token: 0x04001FB3 RID: 8115
public bool fading;
// Token: 0x04001FB4 RID: 8116
private Character ammoCharacter;
// Token: 0x04001FB5 RID: 8117
public CanvasGroup rallyCanvasGroup;
// Token: 0x04001FB6 RID: 8118
private GameObject prevSelectedObject;
// Token: 0x04001FB7 RID: 8119
private List<Character> allCharacters;
// Token: 0x04001FB8 RID: 8120
public GameObject[] oneCharacter;
// Token: 0x04001FB9 RID: 8121
public GameObject[] threeCharacters;
// Token: 0x04001FBA RID: 8122
public GameObject[] fourCharacters;
}