// Update is called once per frame void Update() { if (adventurer == null) { if (GameDataManager.Instance.dataStore.houseAdventurers[houseAdventurerIndex] != null && GameDataManager.Instance.dataStore.housingLevel > houseAdventurerIndex) { adventurer = GameDataManager.Instance.dataStore.houseAdventurers[houseAdventurerIndex]; } } if (adventurer != null && adventurer.initialized) { if (panelBG != null) { if (housePopup != null) { if (housePopup.inspectedAdventurer == adventurer) { panelBG.color = activeColor; } else { panelBG.color = defaultColor; } } else if (swapPopup != null) { if (swapPopup.partyMemberIndexInMainArray == houseAdventurerIndex) { panelBG.color = activeColor; } else if (houseAdventurerIndex == GameDataManager.Instance.dataStore.partyAdventurer0Index || houseAdventurerIndex == GameDataManager.Instance.dataStore.partyAdventurer1Index || houseAdventurerIndex == GameDataManager.Instance.dataStore.partyAdventurer2Index) { panelBG.color = Color.clear; } else { panelBG.color = defaultColor; } } } if (selfButton != null) { if (housePopup != null) { selfButton.interactable = (housePopup.inspectedAdventurer != adventurer); } else if (swapPopup != null) { selfButton.interactable = swapPopup.partyMemberIndexInMainArray == houseAdventurerIndex || (houseAdventurerIndex != GameDataManager.Instance.dataStore.partyAdventurer0Index && houseAdventurerIndex != GameDataManager.Instance.dataStore.partyAdventurer1Index && houseAdventurerIndex != GameDataManager.Instance.dataStore.partyAdventurer2Index); } } if (interior != null) { if (!interior.activeInHierarchy) { interior.SetActive(true); } } if (adventurerName.text != adventurer.fullName) { adventurerName.text = adventurer.fullName; } if (adventurerTitle.text != adventurer.title) { adventurerTitle.text = adventurer.title; } if (cachedAdventurerMugshot != adventurer.mugshot) { cachedAdventurerMugshot = adventurer.mugshot; mugshot.sprite = adventurer.GetMugshotGraphic(); } if (adventurerStats != null) { if (cachedAdventurerStats[0] != adventurer.HP || cachedAdventurerStats[1] != adventurer.Martial || cachedAdventurerStats[2] != adventurer.Magic || cachedAdventurerStats[3] != adventurer.Speed) { cachedAdventurerStats = new int[] { adventurer.HP, adventurer.Martial, adventurer.Magic, adventurer.Speed }; adventurerStats.text = strings[0] + cachedAdventurerStats[0].ToString() + strings[1] + cachedAdventurerStats[1].ToString() + strings[2] + cachedAdventurerStats[2].ToString() + strings[3] + cachedAdventurerStats[3].ToString(); } } if (adventurerSpecial != null) { if (cachedAdventurerSpecial != adventurer.special) { cachedAdventurerSpecial = adventurer.special; adventurerSpecial.text = Adventurer.GetSpecialDescription(cachedAdventurerSpecial); } } if (adventurerAttacks != null) { if (cachedAdventurerAttacks[0] != adventurer.attacks[0] || cachedAdventurerAttacks[1] != adventurer.attacks[1]) { cachedAdventurerAttacks = adventurer.attacks.Clone() as BattlerAction[]; string[] attacksStrings = { "", "" }; for (int i = 0; i < cachedAdventurerAttacks.Length && i < 2; i++) { if (cachedAdventurerAttacks[i] != BattlerAction.None) { attacksStrings[i] = Adventurer.GetAttackName(cachedAdventurerAttacks[i]); } else { attacksStrings[i] = ""; } } adventurerAttacks.text = attacksStrings[0] + System.Environment.NewLine + attacksStrings[1]; } } } else if (interior != null && interior.activeInHierarchy) { interior.SetActive(false); } }
// Update is called once per frame void Update() { if (GameDataManager.Instance.dataStore.housingLevel != houseLvCached) { RecalcScrollRectSize(); } if (outbuildingButton != null) { if (housingUnitUpgraded && outbuildingButton.IsActive()) { outbuildingButton.gameObject.SetActive(false); } else if (!housingUnitUpgraded && !outbuildingButton.IsActive()) { outbuildingButton.gameObject.SetActive(true); } } if (promoteButton != null) { bool v = false; if (inspectedAdventurer.advClass == AdventurerClass.Warrior) { for (int i = 1; i > 1 << 31;) { if (GameDataManager.Instance.WarriorPromoteUnlocked((WarriorPromotes)i)) { v = true; break; } i = i << 1; } } else if (inspectedAdventurer.advClass == AdventurerClass.Mystic) { for (int i = 1; i > 1 << 31;) { if (GameDataManager.Instance.MysticPromoteUnlocked((MysticPromotes)i)) { v = true; break; } i = i << 1; } } if (promoteButton.activeSelf != v) { promoteButton.SetActive(v); } } if (inspectedAdventurer.fullName != cachedName) { cachedName = inspectedAdventurer.fullName; nameLabel.text = strings[4] + inspectedAdventurer.fullName; } if (cachedAdventurerMugshot != inspectedAdventurer.mugshot) { cachedAdventurerMugshot = inspectedAdventurer.mugshot; mugshot.sprite = inspectedAdventurer.GetMugshotGraphic(); } if (inspectedAdventurer.title != titleLabel.text) { titleLabel.text = inspectedAdventurer.title; } if (adventurerHPCached != inspectedAdventurer.HP || adventurerMartialCached != inspectedAdventurer.Martial || adventurerMagicCached != inspectedAdventurer.Magic || adventurerSpeedCached != inspectedAdventurer.Speed) { adventurerHPCached = inspectedAdventurer.HP; adventurerMartialCached = inspectedAdventurer.Martial; adventurerMagicCached = inspectedAdventurer.Magic; adventurerSpeedCached = inspectedAdventurer.Speed; statsLabel.text = strings[0] + adventurerHPCached.ToString() + strings[1] + adventurerMartialCached.ToString() + strings[2] + adventurerMagicCached.ToString() + strings[3] + adventurerSpeedCached.ToString(); } bool attacksChanged = false; if (adventurerAttacksCached == null || adventurerAttacksCached.Length != inspectedAdventurer.attacks.Length) { attacksChanged = true; } else { #pragma warning disable 162 // VS reports a false-alarm unreachable code warning on the next line because of the compound loop conditional, so we silence that - and, yes, it is a false alarm for (int i = 0; (i < adventurerAttacksCached.Length && i < inspectedAdventurer.attacks.Length); i++) #pragma warning restore 162 // because we _do_ want to know if unreachable code is detected, it's just not actually present there { attacksChanged = true; break; } } if (attacksChanged) { string[] attacksStrings = { "", "", "" }; adventurerAttacksCached = inspectedAdventurer.attacks; for (int i = 0; i < adventurerAttacksCached.Length && i < 3; i++) { if (inspectedAdventurer.attacks[i] != BattlerAction.None) { attacksStrings[i] = Adventurer.GetAttackName(inspectedAdventurer.attacks[i]); } else { attacksStrings[i] = ""; } } attacksLabel.text = attacksStrings[0] + '\n' + attacksStrings[1] + '\n' + attacksStrings[2]; } if (adventurerSpecialCached != inspectedAdventurer.special) { adventurerSpecialCached = inspectedAdventurer.special; specialLabel.text = Adventurer.GetSpecialDescription(adventurerSpecialCached); } if (awakenButton != null) { if (inspectedAdventurer.isElite) { if ((inspectedAdventurer.awakened == awakenButton.gameObject.activeSelf)) { awakenButton.gameObject.SetActive(!inspectedAdventurer.awakened); awakenedLabel.gameObject.SetActive(!awakenButton.gameObject.activeSelf); } } else if (awakenButton.gameObject.activeSelf || awakenedLabel.gameObject.activeSelf) { awakenButton.gameObject.SetActive(false); awakenedLabel.gameObject.SetActive(false); } } if (biography.text != inspectedAdventurer.bioText) { biography.text = inspectedAdventurer.bioText; } }