using System; using System.Collections; using TMPro; using UnityEngine; using UnityEngine.UI; // Token: 0x020000B6 RID: 182 public class ItemBook : MonoBehaviour { // Token: 0x0600117F RID: 4479 RVA: 0x00155095 File Offset: 0x00153295 private void Start() { } // Token: 0x06001180 RID: 4480 RVA: 0x00155097 File Offset: 0x00153297 public void Use() { this.item.Use(); } // Token: 0x06001181 RID: 4481 RVA: 0x001550A4 File Offset: 0x001532A4 public void StartMenu(Item curr, ItemEquipped currEquipped) { this.item = curr; this.itemEquipped = currEquipped; this.equipped = false; if (!this.item && this.itemEquipped) { this.equipped = true; } if (this.groundItemDescription) { base.gameObject.SetActive(true); } this.SetNumbers(false); } // Token: 0x06001182 RID: 4482 RVA: 0x00155102 File Offset: 0x00153302 private void CompareStart(int better) { if (better == 0) { this.str.Append(""); return; } if (better == 1) { this.str.Append(""); return; } this.str.Append(""); } // Token: 0x06001183 RID: 4483 RVA: 0x00155140 File Offset: 0x00153340 private void CompareEnd() { this.str.Append(""); } // Token: 0x06001184 RID: 4484 RVA: 0x00155153 File Offset: 0x00153353 private void EquippedStart(string type) { if (type == "?") { this.str.Append(" [vs: "); return; } this.str.Append(" [vs: "); } // Token: 0x06001185 RID: 4485 RVA: 0x00155185 File Offset: 0x00153385 private void EquippedEnd() { this.str.Append("]"); } // Token: 0x06001186 RID: 4486 RVA: 0x00155198 File Offset: 0x00153398 public void SetNumbers(bool ignoreSame) { ignoreSame = true; if (this.prevItem == this.item && !this.equipped && this.open && !ignoreSame) { return; } if (this.prevItemEquipped == this.itemEquipped && this.equipped && this.open && !ignoreSame) { return; } if (!this.open && this.groundItemDescription) { this.img.enabled = false; this.mainInfoText.enabled = false; } this.open = true; this.prevItem = this.item; this.prevItemEquipped = this.itemEquipped; this.contentFitter.enabled = false; this.str.Clear(); if (this.csText) { this.csText.text = ""; Links.x.characterSheet.descriptionTextRuleset.text = ""; Links.x.characterSheet.effectsDescription.SetActive(false); } Vector3 vector = new Vector3(0f, 0f, 0f); Vector3 vector2 = new Vector3(0f, 0f, 0f); Library.Inventory inventory = null; Vector4 vector3 = Vector4.zero; bool flag = false; int num; int num2; Library.Inventory inventory2; if (this.item) { num = this.item.ID; vector = this.item.socketA; vector2 = this.item.socketB; num2 = this.item.stackSize; inventory2 = this.item.invRow; vector3 = this.item.durability; flag = this.item.forSale; } else { num = this.itemEquipped.ID; vector = this.itemEquipped.socketA; vector2 = this.itemEquipped.socketB; num2 = this.itemEquipped.stackSize; inventory2 = this.itemEquipped.invRow; vector3 = this.itemEquipped.durability; } if (this.compareItem && this.comboCompare && !this.itemEquipped) { inventory = this.compareItem.invRow; } else { this.comboCompare = false; } this.comboCompare = false; this.str.Append(""); bool flag2 = false; if (inventory2._Tag == "Ammunition") { if (inventory2._Name.Contains("Dart") && num > Links.x.library.dartsMin) { flag2 = true; } if (inventory2._Name.Contains("Vial") && num > Links.x.library.vialsMin + 1) { flag2 = true; } } if (vector3.w == 3f) { this.str.Append("Quality "); } if (vector3.w == 1f && !inventory2._Name.Contains("Lacho") && !inventory2._Name.Contains("Gold") && !inventory2._Name.Contains("Licech")) { this.str.Append("Stolen "); } this.str.Append(inventory2._DisplayName); if (inventory2._Tag == "Ammunition" && vector.x > 0f) { this.str.Append(" +"); this.str.Append(vector.x); } if (num2 > 1 || inventory2._Stackable) { this.str.Append(" ("); this.str.Append(num2); this.str.Append(") "); } this.str.Append(""); if (this.linkedText) { this.header = this.str.ToString(); this.str.Clear(); } bool flag3 = false; if (Links.x.characterSheet.open) { flag3 = true; } if (this.groundItemDescription) { this.item.GetLinkedCharacter(); } bool flag4 = flag; bool flag5 = false; if (Links.x.characterSheet.merchant && Links.x.merchant.isBoro()) { flag4 = false; } this.needsPortrait = false; Character character = null; if (flag) { if (!this.item.linkedCharacter) { flag4 = false; } if (this.item.linkedCharacter) { if (this.item.linkedCharacter.dead) { flag4 = false; this.item.forSale = false; } if (this.item.linkedCharacter.stunned) { flag4 = false; } if (flag4 && Links.x.main.body.sneaking) { flag5 = this.item.CheckToSteal(false); flag4 = false; this.str.Append("\nWill try to steal item"); } } if ((flag4 || flag5) && this.groundItemDescription) { this.needsPortrait = true; character = this.item.linkedCharacter; } } else if (this.item && this.item.linkedCharacter && !flag3 && Links.x.main.body.sneaking) { flag5 = this.item.CheckToSteal(false); this.str.Append("\nWill try to steal item"); if (flag4 && this.groundItemDescription) { this.needsPortrait = true; character = this.item.linkedCharacter; } } if (this.needsPortrait) { this.portraitCharacter = character; } else if (this.portraitObject) { this.portraitObject.SetActive(false); } if (flag2) { string text = "Globes"; if (!inventory2._Name.Contains("Vial")) { text = "Wraps"; } this.str.Append("\n"); this.str.Append(text); this.str.Append(" are used for rally attacks and do not need to be equipped."); } if (inventory2._RightClickAction == "Spellbook") { Character creationID = Links.x.GetCreationID((int)vector.x); if (creationID) { this.str.Append("\nBelongs to "); this.str.Append(creationID.stats.GetName()); } else { this.str.Append("\nOwner no longer in the party. Spells cannot be used by others."); } } else if (inventory2._Name.Contains("Songbook")) { if (inventory2._RightClickAction == "Songbook") { Character creationID2 = Links.x.GetCreationID((int)vector.x); if (creationID2) { this.str.Append("\nBelongs to "); this.str.Append(creationID2.stats.GetName()); } else { this.str.Append("\nOwner no longer in the party. Songs cannot be played by others."); } } else if (inventory2._Name == "SorinaSongbook") { this.str.Append("\nBelongs to Sorina"); } } if ((vector3.w == 1f || vector3.w == 2f || vector3.w == 3f) && Links.x.characterSheet.merchant && !Links.x.merchant.isBoro() && vector3.w == 1f) { if (!Links.x.merchant.CanSellContraband()) { this.str.Append("\nCannot sell contraband"); } else { this.str.Append("\nWill buy contraband"); } } if (flag4 || (Links.x.characterSheet.merchant && vector3.w == 0f && flag)) { float num3; if (this.groundItemDescription) { num3 = this.item.GetCost(false, Links.x.main, this.item.linkedCharacter); } else { num3 = this.item.GetCost(false, Links.x.main, this.item.linkedCharacter); } if (Links.x.merchant && !this.groundItemDescription) { num3 = Mathf.Ceil((float)this.item.invRow._SellPrice * Links.x.characterSheet.character.stats.PartyDispositionSell(Links.x.diorama.sceneName, Links.x.merchant.merchantCharacter)); if (!this.item.invRow._NeedFullStack) { num3 *= (float)this.item.stackSize; } if (this.item.socketA.x > 0f) { num3 += this.item.socketB.y; } } this.str.Append("\nCost: "); this.str.Append(num3); this.str.Append(" em"); if (Records.x.BribeBadgeCount() > 0) { this.str.Append(" (reputation penalty)"); } } else if (Links.x.characterSheet.merchant && vector3.w != 1f && vector3.w != 2f && !Links.x.merchant.isBoro()) { if (this.item.stackSize == 0) { this.item.stackSize = 1; } float num4; if (this.groundItemDescription) { num4 = Mathf.Ceil((float)(this.item.invRow._SellPrice * this.item.stackSize) * Links.x.main.stats.DispositionSell(Links.x.diorama.sceneName, this.item.linkedCharacter)); } else { num4 = Mathf.Ceil((float)this.item.invRow._SellPrice * Links.x.characterSheet.character.stats.PartyDispositionSell(Links.x.diorama.sceneName, Links.x.merchant.merchantCharacter)); num4 = Links.x.merchant.GetItemHistoryCount(inventory2, num4); if (!this.item.invRow._NeedFullStack) { num4 *= (float)this.item.stackSize; } } if (vector3.w < 0f) { num4 = vector3.w * -1f; } if (this.item.socketA.x > 0f) { num4 += this.item.socketB.y; } this.str.Append("\nSell for: "); this.str.Append(num4); this.str.Append(" em"); if (Records.x.BribeBadgeCount() > 0) { this.str.Append(" (reputation penalty)"); } } if (inventory2._MainSkill != "") { this.str.Append("\nUses Skill: "); if (this.linkedText) { string text2 = inventory2._MainSkill; if (this.itemEquipped && Links.x.characterSheet.body && !this.itemEquipped.invRow._Tag.Contains("Shield") && (this.itemEquipped.name.Contains("Off Hand") || this.itemEquipped.name.Contains("Alt Hand 2"))) { text2 = "Multi-Hand"; } int combatSkillID = Links.x.characterSheet.character.stats.GetCombatSkillID(text2); if (Links.x.characterSheet.character.stats.GetSkill(combatSkillID) < 50f) { this.str.Append(""); } else { this.str.Append(""); } this.str.Append(Links.x.manual.DisplayName(text2)); this.str.Append(""); } else { this.str.Append(Links.x.manual.DisplayName(inventory2._MainSkill)); } } string text3 = ""; if (inventory2._DurabilityMax > 0 && (inventory2._Tag == "Weapon" || inventory2._Tag == "Armor" || inventory2._Tag == "Shield") && inventory2._ID > 1) { float num5 = vector3.x / (float)inventory2._DurabilityMax; this.str.Append("\nCondition: "); if (num5 < 0.25f) { this.str.Append(""); } this.str.Append((int)vector3.x); this.str.Append("/"); this.str.Append(inventory2._DurabilityMax); if (num5 < 0.25f && inventory2._Tag == "Weapon") { text3 += ""); } int num6 = 1; if (inventory2._EquipSlotID == 0 || inventory2._EquipSlotID == 4) { if (inventory2._MeleeRangeEnd >= 5f) { this.str.Append("\nDamage: "); this.str.Append(inventory2._DmgMax); this.str.Append(" + from "); if (inventory2._Ammo1 == "Dart") { this.str.Append("stone"); } else { this.str.Append(inventory2._Ammo1); } if (!inventory2._Ammo1.Contains("+")) { this.str.Append("s"); } } else { if (this.comboCompare) { if (inventory._DmgMax > inventory2._DmgMax) { num6 = 0; } if (inventory._DmgMax == inventory2._DmgMax) { if (inventory._DmgMin == inventory2._DmgMin) { num6 = 2; } else if (inventory._DmgMin > inventory2._DmgMin) { num6 = 0; } else { num6 = 1; } } } if (inventory2._DmgMax > 0) { this.str.Append("\nDamage: "); if (this.comboCompare) { this.CompareStart(num6); } this.str.Append(inventory2._DmgMax); if (this.comboCompare) { this.CompareEnd(); } } if (this.comboCompare && inventory._DmgMax > 0) { this.EquippedStart("hand"); this.str.Append(inventory._DmgMax); this.EquippedEnd(); } } num6 = 1; if (this.comboCompare) { if (inventory._WpnSpeed < inventory2._WpnSpeed) { num6 = 0; } if (inventory._WpnSpeed == inventory2._WpnSpeed) { num6 = 2; } } if (inventory2._Tag != "Ammunition") { this.str.Append("\nAttack Speed: "); if (this.comboCompare) { this.CompareStart(num6); } this.str.Append(inventory2._WpnSpeed); if (this.comboCompare) { this.CompareEnd(); } this.str.Append(" sec."); if (this.comboCompare) { this.EquippedStart("hand"); this.str.Append(inventory._WpnSpeed); this.EquippedEnd(); } } } else if (inventory2._EquipSlotID == 13 && inventory2._DmgMax > 0) { this.str.Append("\nSong Power: "); this.str.Append(inventory2._DmgMax); } if (inventory2._EvasionReduction > 0f) { this.str.Append("\nEvasion Reduction: "); this.str.Append(inventory2._EvasionReduction); } if (inventory2._EvasionReduction < 0f) { this.str.Append("\nEvasion Bonus: "); this.str.Append(inventory2._EvasionReduction * -1f); } if (inventory2._DurabilityReductionBonus > 0f && (inventory2._Tag == "Weapon" || inventory2._Tag == "Ammunition")) { this.str.Append("\nBreaks Armor: "); this.str.Append(inventory2._DurabilityReductionBonus + 1f); } if (inventory2._StaminaReduction > 0f && inventory2._Tag == "Weapon") { this.str.Append("\nSaps Target's Stamina: "); this.str.Append(inventory2._StaminaReduction); } if (inventory2._HitTimeIncrease > 0f && inventory2._Tag == "Weapon") { this.str.Append("\nIncreases Target's Recovery: "); this.str.Append(inventory2._HitTimeIncrease); } if (inventory2._Tag == "Weapon" && inventory2._MultiTargetMod > 0f) { this.str.Append("\nMulti-Hit Increase: "); this.str.Append(inventory2._MultiTargetMod); this.str.Append("%"); } if (inventory2._EquipSlotID == 0) { this.str.Append("\nRange: "); if (inventory2._MeleeRangeStart > 0f) { this.str.Append(inventory2._MeleeRangeStart); this.str.Append(" to "); } this.str.Append(inventory2._MeleeRangeEnd); this.str.Append("\n"); if (inventory2._TwoHanded) { this.str.Append("Two-Handed"); } else { this.str.Append("One-Handed"); } } if (inventory2._AC > 0f || inventory2._Tag == "Jewelry") { if (inventory2._Tag == "Armor" || inventory2._Tag == "Shield") { this.str.Append("\nPhysical Armor: "); this.str.Append(inventory2._AC * 10f); this.str.Append("%"); } else { this.str.Append("\nGlamor: "); this.str.Append(inventory2._AC); } } if (inventory2._MagicAC > 0f) { this.str.Append("\nPagan Armor: "); num6 = 1; if (this.comboCompare) { if (inventory._MagicAC > inventory2._MagicAC) { num6 = 0; } if (inventory._MagicAC == inventory2._MagicAC) { num6 = 2; } } if (this.comboCompare) { this.CompareStart(num6); } this.str.Append(inventory2._MagicAC * 10f); this.str.Append("%"); if (this.comboCompare) { this.CompareEnd(); } if (this.comboCompare) { this.EquippedStart(""); this.str.Append(inventory._MagicAC); this.EquippedEnd(); } } if (inventory2._MagicBonus > 0f) { this.str.Append("\nPagan Bonus: "); num6 = 1; if (this.comboCompare) { if (inventory._MagicBonus > inventory2._MagicBonus) { num6 = 0; } if (inventory._MagicBonus == inventory2._MagicBonus) { num6 = 2; } } if (this.comboCompare) { this.CompareStart(num6); } this.str.Append((int)inventory2._MagicBonus); if (this.comboCompare) { this.CompareEnd(); } if (this.comboCompare) { this.EquippedStart(""); this.str.Append(inventory._MagicBonus); this.EquippedEnd(); } } if (inventory2._Life > 0 && !inventory2._Effect.Contains("Cure")) { bool flag6 = false; int num7 = 0; bool flag7 = false; bool flag8 = false; if (this.item && this.item.linkedCreatures) { flag8 = true; } if (flag8) { if (flag) { flag6 = true; this.str.Append("\nShelf Life After Purchase: "); num7 = inventory2._Life; flag7 = true; } } else { num7 = (int)vector3.x - (int)Mathf.Floor((float)Links.x.gameplay.GetCurrentGameTimeHours()); if (num7 <= 5) { this.str.Append("\nLasts for: "); } else { flag6 = true; this.str.Append("\nLasts for: "); } flag7 = true; } if (flag7) { if (num7 >= 48) { this.str.Append(Mathf.RoundToInt((float)num7 / 24f)); this.str.Append(" day"); if (num7 != 1) { this.str.Append("s"); } } else { this.str.Append(num7); this.str.Append(" hour"); if (num7 != 1) { this.str.Append("s"); } } if (flag6) { this.str.Append(""); } } if (inventory2._Effect.Contains("Cure")) { string text4 = "Cure"; string text5 = ""; int num8 = inventory2._Effect.IndexOf(text4); if (num8 != -1) { text5 = inventory2._Effect.Substring(num8 + text4.Length); } Library.Effects effectRow = Links.x.library.GetEffectRow(text5); if (effectRow != null) { Links.x.manual.GetEffectDescription(effectRow, (float)((int)inventory2._Level), 0); this.str.Append("\nCures: "); this.str.Append(effectRow._DisplayName); } } else { Library.Effects effectRow2 = Links.x.library.GetEffectRow(inventory2._Effect); if (effectRow2 != null) { string effectDescription = Links.x.manual.GetEffectDescription(effectRow2, (float)((int)inventory2._Level), 0); this.str.Append("\nEffect: "); this.str.Append(effectDescription); } } } else if (inventory2._Effect.Contains("Cure")) { string text6 = "Cure"; string text7 = ""; int num9 = inventory2._Effect.IndexOf(text6); if (num9 != -1) { text7 = inventory2._Effect.Substring(num9 + text6.Length); } Library.Effects effectRow3 = Links.x.library.GetEffectRow(text7); if (effectRow3 != null) { if (this.itemEquipped) { this.str.Append("\nCuring: "); this.str.Append(effectRow3._DisplayName); this.str.Append("\nSeconds until cure: "); int num10 = (int)vector3.x - (int)Links.x.gameplay.seconds; float num11 = Records.x.ShowSeconds(num10); this.str.Append(Mathf.Round(num11)); } else { this.str.Append("\nCan cure when worn: "); this.str.Append(effectRow3._DisplayName); this.str.Append("\nRequires: "); this.str.Append(Mathf.Round(Records.x.ShowSeconds(inventory2._Life))); this.str.Append(" seconds of wear"); } } } else if (inventory2._Effect != "") { Library.Effects effectRow4 = Links.x.library.GetEffectRow(inventory2._Effect); if (effectRow4 != null) { int num12 = 0; if (inventory2._Tag == "Jewelry") { num12 = 1; } string text8; if (!effectRow4._Name.Contains("Dart") && !effectRow4._Name.Contains("Vial")) { text8 = Links.x.manual.GetEffectDescription(effectRow4, (float)((int)inventory2._Level), num12); } else if (this.groundItemDescription) { text8 = Links.x.manual.GetEffectDescription(effectRow4, (float)Links.x.main.stats.level, num12); } else { text8 = Links.x.manual.GetEffectDescription(effectRow4, (float)Links.x.characterSheet.character.stats.level, num12); } if (inventory2._Tag == "Ammunition") { if (inventory2._Name.Contains("Dart")) { this.str.Append("\nPoison Effects: "); } else { this.str.Append("\nElyxir Effects: "); } this.str.Append(text8); } else { this.str.Append("\nEffects: "); this.str.Append(text8); } } } else if (inventory2._ID == Links.x.library.bombID) { int num13 = (int)vector3.x + 126 - (int)Mathf.Floor(Links.x.gameplay.seconds); this.str.Append("\nExplodes in: "); float num14 = Records.x.ShowSeconds(num13); if (num14 > 120f) { this.str.Append(num14); this.str.Append("1 minute and "); this.str.Append(num14 - 120f); this.str.Append(" second"); if (num14 - 120f != 1f) { this.str.Append("s"); } this.str.Append(""); } else if (num14 > 60f) { this.str.Append(num14); this.str.Append("1 minute and "); this.str.Append(num14 - 60f); this.str.Append(" second"); if (num14 - 60f != 1f) { this.str.Append("s"); } this.str.Append(""); } else { this.str.Append(num14); this.str.Append(" second"); if (num14 != 1f) { this.str.Append("s"); } this.str.Append(""); } } if (inventory2._ID == Links.x.library.torchID || inventory2._ID == Links.x.library.incenseTorchID) { float num15 = vector3.z; if (!this.itemEquipped) { num15 = Links.x.gameplay.seconds; } float seconds = Links.x.gameplay.seconds; float num16 = Mathf.Round((vector3.x - (seconds - num15)) / 60f); this.str.Append("\n\nCan be lit for: "); if (num16 > 60f) { float num17 = Mathf.Round(num16 / 60f * 10f) / 10f; this.str.Append(num17); this.str.Append(" hour"); if (num17 != 1f) { this.str.Append("s"); } } else { this.str.Append(num16); this.str.Append(" minute"); if (num16 != 1f) { this.str.Append("s"); } } } if (inventory2._Tag.Contains("Armor") && inventory2._EquipSlotID == 9 && !this.compare) { this.str.Append("\n\nPatches Applied: "); int num18 = 0; for (int i = 0; i < inventory2._SocketMax; i++) { int num19 = 0; if (i == 0) { num19 = (int)vector.x; } if (i == 1) { num19 = (int)vector.y; } if (i == 2) { num19 = (int)vector.z; } if (i == 3) { num19 = (int)vector2.x; } if (i == 4) { num19 = (int)vector2.y; } if (i == 5) { num19 = (int)vector2.z; } num19 = this.SocketIndex(num19); if (num19 > 0) { num18++; } } this.str.Append(num18); this.str.Append("/"); this.str.Append(inventory2._SocketMax); } if (inventory2._Tag == "Gem") { this.str.Append("\n\nMineral Value: "); this.str.Append(Links.x.inventory.MineralValue(inventory2)); } if (!this.compare) { bool flag9 = false; if (inventory2._Tag.Contains("Socket")) { if (inventory2._Tag.Contains("Armor")) { this.str.Append("\n\n"); this.str.Append(""); this.str.Append("Drag onto damaged armor to temporarily patch tears. Armor must be unequipped to be patched."); this.str.Append(""); } else if (inventory2._Tag == "Socket") { this.str.Append("\n\n"); this.str.Append(""); this.str.Append("Drag onto weapon to embed. Weapon must be unequipped to set "); this.str.Append(inventory2._DisplayName); this.str.Append("."); this.str.Append(""); } } if (inventory2._Tag == "Note" && !this.groundItemDescription && !Links.x.inventory.repairing && !Links.x.inventory.mineralizing) { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Examine"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Examine"); this.str.Append(""); } } if ((inventory2._RightClickAction == "Spellbook" || inventory2._RightClickAction == "Songbook") && !Links.x.inventory.repairing && !Links.x.inventory.mineralizing) { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Open book"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Open book"); this.str.Append(""); } } if (inventory2._RightClickAction == "Consume" && !this.groundItemDescription && !Links.x.inventory.repairing && !Links.x.inventory.mineralizing) { if (Records.x.InCombat(false)) { this.str.Append("\n\nCannot consume from menu during combat!\n"); } else if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Consume"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Consume"); this.str.Append(""); } } if (!this.groundItemDescription) { if (Links.x.inventory.repairing) { if (inventory2._Tag == "Weapon" || (inventory2._Tag == "Jewelry" && inventory2._Effect == "") || (inventory2._Tag == "Armor" && (Links.x.characterSheet.blacksmith || Links.x.characterSheet.pagan))) { if (Links.x.joy) { flag9 = true; this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Repair"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Repair"); this.str.Append(""); } } } else if (Links.x.inventory.mineralizing) { if (inventory2._Tag == "Gem") { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Mineralize"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Mineralize"); this.str.Append(""); } } } else if (this.item && this.item.stackSize > 1 && inventory2._Stackable && !this.item.forSale && !this.item.inGroundMenu) { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Split stack"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Split stack"); this.str.Append(""); } } } if (inventory2._RightClickAction == "Repair" && !this.groundItemDescription) { if (Links.x.joy) { flag9 = true; this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Use hammers"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Use hammers"); this.str.Append(""); } } if (inventory2._RightClickAction == "GemRepair" && !this.groundItemDescription) { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Use morter and pestle"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Use morter and pestle"); this.str.Append(""); } } if (Links.x.characterSheet.open && Links.x.characterSheet.enchanting && vector.x <= 0f && (inventory2._Tag == "Jewelry" || inventory2._Tag == "Weapon")) { if (Links.x.joy) { flag9 = true; this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Bless"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Bless"); this.str.Append(""); } } if (inventory2._Tag == "ArrowKit" && !this.groundItemDescription && !Links.x.inventory.enchantMenu.open && !Links.x.characterSheet.blacksmith && !Links.x.characterSheet.pagan) { if (Links.x.joy) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Open field kit"); this.str.Append(""); } else { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Open field kit"); this.str.Append(""); } } this.descStr.Clear(); if (text3 != "") { this.descStr.Append(text3); this.descStr.Append("\n\n"); } if (inventory2._Tag == "Weapon" || inventory2._Tag == "Jewelry") { if (vector.x > 0f) { float z = vector2.z; bool flag10 = false; if (!this.groundItemDescription && Links.x.characterSheet.open) { if (Links.x.characterSheet.character.stats.CanWearEnchantedItem(z)) { this.descStr.Append("Intercession: "); flag10 = true; } else { this.descStr.Append("Inactive Intercession: "); } } else { this.descStr.Append("Intercession: "); flag10 = true; } Library.Pagan paganRowByID = Links.x.library.GetPaganRowByID(vector.x); this.descStr.Append(paganRowByID._DisplayName); this.descStr.Append("\n"); this.descStr.Append(paganRowByID._Description); for (int j = 0; j < 3; j++) { float num20 = vector.y; if (j == 1) { num20 = vector.z; } if (j == 2) { num20 = vector2.x; } string text9 = paganRowByID._Slider1; if (j == 1) { text9 = paganRowByID._Slider2; } if (j == 2) { text9 = paganRowByID._Slider3; } num20 = Mathf.Round(num20 * 100f) / 100f; if (text9 == "Radius") { this.descStr.Append("\nRadius: "); this.descStr.Append(num20); this.descStr.Append(" pole"); if (num20 > 1f) { this.descStr.Append("s"); } } if (text9 == "Targets") { this.descStr.Append("\nTargets: "); this.descStr.Append(num20); } if (text9 == "Distance") { this.descStr.Append("\nDistance: "); this.descStr.Append(num20); } if (text9 == "Tile") { this.descStr.Append("\nDistance: "); this.descStr.Append(num20); } if (text9.Contains("Potency") || text9.Contains("Reduction")) { this.descStr.Append("\n"); this.descStr.Append(text9); this.descStr.Append(": "); this.descStr.Append(num20); } if (text9.Contains("Duration")) { this.descStr.Append("\nEffect Duration: "); this.descStr.Append(num20); this.descStr.Append(" second"); if (num20 > 1f) { this.descStr.Append("s"); } } if (text9.Contains("Time")) { this.descStr.Append("\nEffect Time: "); this.descStr.Append(num20); this.descStr.Append(" second"); if (num20 > 1f) { this.descStr.Append("s"); } } if (text9.Contains("First Strike Speed")) { this.descStr.Append("\nFirst Strike"); } } if (!this.groundItemDescription && Links.x.characterSheet.open) { this.descStr.Append("\nDifficulty: "); this.descStr.Append(z); this.descStr.Append(" vs. "); this.descStr.Append(Links.x.characterSheet.character.stats.GetName()); this.descStr.Append("'s "); this.descStr.Append(Links.x.characterSheet.character.stats.EnchantWearingAbility()); this.descStr.Append("\n\n"); } if (flag10) { this.descStr.Append(""); } } if (this.groundItemDescription) { string text10 = this.descStr.ToString(); this.str.Append("\n\n"); this.str.Append(text10); } } if (this.groundItemDescription || !this.linkedText) { if (inventory2._Description != "") { this.str.Append("\n\n"); this.str.Append(inventory2._Description); } } else if (inventory2._Description != "") { this.descStr.Append(inventory2._Description); this.descStr.Append("\n\nWeighs "); if (inventory2._Weight < 1f) { this.descStr.Append("less than 1"); } else { this.descStr.Append(inventory2._Weight); } if (inventory2._Weight <= 1f) { this.descStr.Append(" stone"); if (inventory2._Stackable) { this.descStr.Append(" each"); } this.descStr.Append("."); } else { this.descStr.Append(" stones"); if (inventory2._Stackable) { this.descStr.Append(" each"); } this.descStr.Append("."); } } if (this.groundItemDescription) { if (flag4 && this.showEmeralds) { this.str.Append("\n\n"); this.emeraldText.text = Links.x.inventory.emeralds.ToString(); this.emeralds.SetActive(true); } else { this.emeralds.SetActive(false); } } else if (Links.x.joy && !flag9 && !Links.x.inventory.repairing && !Links.x.inventory.mineralizing) { this.str.Append("\n"); this.str.Append(""); this.str.Append(" "); this.str.Append("Move"); this.str.Append(""); } } this.mainInfoText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); if (this.linkedText) { this.linkedText.spriteAsset = Links.x.GetSpriteSheetAsset(Links.x.gameplay.currentSpriteSheetAsset); } if (this.groundItemDescription) { this.savedMain = Links.x.main; base.StartCoroutine(this.WaitOpen()); this.mainInfoText.text = this.str.ToString(); this.img.enabled = true; this.mainInfoText.enabled = true; this.rt.sizeDelta = new Vector2(this.rt.sizeDelta.x, this.mainInfoText.preferredHeight + 15f); return; } this.mainInfoText.text = this.str.ToString(); if (this.linkedText) { this.linkedText.text = this.descStr.ToString(); this.headerText.text = this.header; } } // Token: 0x06001187 RID: 4487 RVA: 0x00158A3A File Offset: 0x00156C3A private IEnumerator WaitOpen() { this.contentFitter.enabled = true; yield return new WaitForSecondsRealtime(0.0001f); if (this.portraitCharacter) { this.portrait.texture = Links.x.gameCard.GetTexturePortrait(); } yield break; } // Token: 0x06001188 RID: 4488 RVA: 0x00158A49 File Offset: 0x00156C49 public void EndMenu() { if (base.gameObject.activeSelf) { if (this.groundItemDescription) { base.StartCoroutine(this.Off()); } else { this.open = false; } this.prevItem = null; } } // Token: 0x06001189 RID: 4489 RVA: 0x00158A7D File Offset: 0x00156C7D private void OnDisable() { this.open = false; } // Token: 0x0600118A RID: 4490 RVA: 0x00158A88 File Offset: 0x00156C88 private void Update() { if (this.groundItemDescription) { if (Links.x.inventory.groundBag.toggle) { this.canvasGroup.alpha = Links.x.inventory.groundBag.itemLabelGrid.canvasGroup.alpha; } else if (this.prevItem) { this.canvasGroup.alpha = 1f; } else { this.canvasGroup.alpha = 0f; } if (Links.x.main != this.savedMain) { this.SetNumbers(true); this.savedMain = Links.x.main; } } } // Token: 0x0600118B RID: 4491 RVA: 0x00158B3E File Offset: 0x00156D3E private IEnumerator Off() { yield return new WaitForSecondsRealtime(0.2f); if (!this.prevItem) { base.gameObject.SetActive(false); this.open = false; } yield break; } // Token: 0x0600118C RID: 4492 RVA: 0x00158B4D File Offset: 0x00156D4D public int SocketIndex(int id) { if (id < 100) { return id; } return (int)Mathf.Floor((float)id / 100f); } // Token: 0x04001CDC RID: 7388 public Animator anim; // Token: 0x04001CDD RID: 7389 public TextMeshProUGUI mainInfoText; // Token: 0x04001CDE RID: 7390 public TextMeshProUGUI emeraldText; // Token: 0x04001CDF RID: 7391 public TextMeshProUGUI portraitText; // Token: 0x04001CE0 RID: 7392 public TextMeshProUGUI linkedText; // Token: 0x04001CE1 RID: 7393 public TextMeshProUGUI csText; // Token: 0x04001CE2 RID: 7394 public TextMeshProUGUI headerText; // Token: 0x04001CE3 RID: 7395 private StringFast str = new StringFast(64); // Token: 0x04001CE4 RID: 7396 private StringFast descStr = new StringFast(64); // Token: 0x04001CE5 RID: 7397 public Item item; // Token: 0x04001CE6 RID: 7398 public Item prevItem; // Token: 0x04001CE7 RID: 7399 public ItemEquipped itemEquipped; // Token: 0x04001CE8 RID: 7400 public ItemEquipped prevItemEquipped; // Token: 0x04001CE9 RID: 7401 public ItemEquipped compareItem; // Token: 0x04001CEA RID: 7402 public bool equipped; // Token: 0x04001CEB RID: 7403 public ContentSizeFitter contentFitter; // Token: 0x04001CEC RID: 7404 public RectTransform textRT; // Token: 0x04001CED RID: 7405 public RectTransform rt; // Token: 0x04001CEE RID: 7406 public Image img; // Token: 0x04001CEF RID: 7407 public bool open; // Token: 0x04001CF0 RID: 7408 public bool compare; // Token: 0x04001CF1 RID: 7409 public bool comboCompare; // Token: 0x04001CF2 RID: 7410 public bool groundItemDescription; // Token: 0x04001CF3 RID: 7411 public bool showEmeralds; // Token: 0x04001CF4 RID: 7412 public GameObject emeralds; // Token: 0x04001CF5 RID: 7413 public CanvasGroup canvasGroup; // Token: 0x04001CF6 RID: 7414 public RawImage portrait; // Token: 0x04001CF7 RID: 7415 public GameObject portraitObject; // Token: 0x04001CF8 RID: 7416 private bool needsPortrait; // Token: 0x04001CF9 RID: 7417 private Character portraitCharacter; // Token: 0x04001CFA RID: 7418 private string header; // Token: 0x04001CFB RID: 7419 private Character savedMain; }