diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:46:27 +0800 |
| commit | 8b1fc7063b387542803c6bc214ccf8acb32870bd (patch) | |
| tree | d310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/GameCode/LoadoutUIHelper.cs | |
| parent | 8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_0/GameCode/LoadoutUIHelper.cs')
| -rw-r--r-- | Thronefall_1_0/GameCode/LoadoutUIHelper.cs | 398 |
1 files changed, 0 insertions, 398 deletions
diff --git a/Thronefall_1_0/GameCode/LoadoutUIHelper.cs b/Thronefall_1_0/GameCode/LoadoutUIHelper.cs deleted file mode 100644 index 7eccf08..0000000 --- a/Thronefall_1_0/GameCode/LoadoutUIHelper.cs +++ /dev/null @@ -1,398 +0,0 @@ -using System.Collections.Generic; -using I2.Loc; -using TMPro; -using UnityEngine; -using UnityEngine.UI; - -public class LoadoutUIHelper : MonoBehaviour -{ - public UIFrame frame; - - public TextMeshProUGUI perksText; - - public TextMeshProUGUI mutatorBonusText; - - public ThronefallUIElement playButton; - - public GridLayoutGroup weaponsParent; - - public GridLayoutGroup perksParent; - - public GridLayoutGroup mutatorsParent; - - public TFUIEquippable equippableButtonPrefab; - - public GameObject fixedLoadoutWarning; - - public Transform questsParent; - - public QuestEntry questEntryPrefab; - - private List<TFUIEquippable> weapons = new List<TFUIEquippable>(); - - private List<TFUIEquippable> perks = new List<TFUIEquippable>(); - - private List<TFUIEquippable> mutators = new List<TFUIEquippable>(); - - private List<TFUIEquippable> equippedWeapons = new List<TFUIEquippable>(); - - private List<TFUIEquippable> equippedPerks = new List<TFUIEquippable>(); - - private List<TFUIEquippable> equippedMutators = new List<TFUIEquippable>(); - - private readonly int numberOfWeaponsAllowedToEquip = 1; - - private readonly int numberOfMutatiomsAllowedToEquip = 1000; - - private int numberOfPerksAllowedToEquip; - - private LevelData levelData; - - public void OnShow() - { - levelData = LevelProgressManager.instance.GetLevelDataForScene(LevelInteractor.lastActivatedLevelInteractor.sceneName); - weapons.Clear(); - perks.Clear(); - mutators.Clear(); - equippedWeapons.Clear(); - equippedPerks.Clear(); - equippedMutators.Clear(); - foreach (Transform item in weaponsParent.transform) - { - Object.Destroy(item.gameObject); - } - foreach (Transform item2 in perksParent.transform) - { - Object.Destroy(item2.gameObject); - } - foreach (Transform item3 in mutatorsParent.transform) - { - Object.Destroy(item3.gameObject); - } - fixedLoadoutWarning.SetActive(LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout); - numberOfPerksAllowedToEquip = 0; - foreach (Equippable unlockedEquippable in PerkManager.instance.UnlockedEquippables) - { - if (unlockedEquippable is PerkPoint) - { - numberOfPerksAllowedToEquip++; - } - else if (unlockedEquippable is EquippableWeapon) - { - AddTFUIEquippable(weaponsParent, unlockedEquippable); - } - else if (unlockedEquippable is EquippablePerk) - { - AddTFUIEquippable(perksParent, unlockedEquippable); - } - else if (unlockedEquippable is EquippableMutation) - { - AddTFUIEquippable(mutatorsParent, unlockedEquippable); - } - } - foreach (MetaLevel metaLevel in PerkManager.instance.MetaLevels) - { - Equippable reward = metaLevel.reward; - if (!PerkManager.instance.UnlockedEquippables.Contains(reward)) - { - if (reward is EquippableWeapon) - { - AddTFUIEquippable(weaponsParent, reward); - } - else if (reward is EquippablePerk) - { - AddTFUIEquippable(perksParent, reward); - } - else if (reward is EquippableMutation) - { - AddTFUIEquippable(mutatorsParent, reward); - } - } - } - RecomputeNavigation(); - RewriteQuestTexts(); - UpdatePerksText(); - UpdateMutatorBonusText(); - } - - private void AddTFUIEquippable(GridLayoutGroup parent, Equippable e) - { - TFUIEquippable component = Object.Instantiate(equippableButtonPrefab, parent.transform).GetComponent<TFUIEquippable>(); - component.SetData(e); - if (PerkManager.IsEquipped(e)) - { - if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout && !LevelInteractor.lastActivatedLevelInteractor.fixedLoadout.Contains(e)) - { - PerkManager.SetEquipped(e, _equipped: false); - } - else - { - component.Pick(); - if (e is EquippableWeapon) - { - equippedWeapons.Add(component); - } - if (e is EquippablePerk) - { - equippedPerks.Add(component); - } - if (e is EquippableMutation) - { - equippedMutators.Add(component); - } - } - } - else if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout && LevelInteractor.lastActivatedLevelInteractor.fixedLoadout.Contains(e)) - { - PerkManager.SetEquipped(e, _equipped: true); - component.Pick(); - if (e is EquippableWeapon) - { - equippedWeapons.Add(component); - } - if (e is EquippablePerk) - { - equippedPerks.Add(component); - } - if (e is EquippableMutation) - { - equippedMutators.Add(component); - } - } - if (parent == weaponsParent) - { - weapons.Add(component); - } - else if (parent == perksParent) - { - perks.Add(component); - } - else if (parent == mutatorsParent) - { - mutators.Add(component); - } - } - - public void TrySelectEquippableForLoadout() - { - TFUIEquippable tFUIEquippable = frame.LastApplied as TFUIEquippable; - if (tFUIEquippable == null || tFUIEquippable.Locked || LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout) - { - return; - } - if (tFUIEquippable.Data is EquippableWeapon) - { - for (int num = equippedWeapons.Count - 1; num >= 0; num--) - { - PerkManager.SetEquipped(equippedWeapons[num].Data, _equipped: false); - equippedWeapons[num].UnPick(); - equippedWeapons.Remove(equippedWeapons[num]); - } - tFUIEquippable.Pick(); - PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true); - equippedWeapons.Add(tFUIEquippable); - } - if (tFUIEquippable.Data is EquippablePerk) - { - List<TFUIEquippable> list = new List<TFUIEquippable>(); - int num2 = 0; - for (int num3 = equippedPerks.Count - 1; num3 >= 0; num3--) - { - if (equippedPerks[num3] != tFUIEquippable) - { - num2++; - } - if (num2 >= numberOfPerksAllowedToEquip) - { - list.Add(equippedPerks[num3]); - } - } - foreach (TFUIEquippable item in list) - { - PerkManager.SetEquipped(item.Data, _equipped: false); - item.UnPick(); - equippedPerks.Remove(item); - } - if (equippedPerks.Contains(tFUIEquippable)) - { - tFUIEquippable.UnPick(); - PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: false); - equippedPerks.Remove(tFUIEquippable); - } - else - { - tFUIEquippable.Pick(); - PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true); - equippedPerks.Add(tFUIEquippable); - } - } - if (tFUIEquippable.Data is EquippableMutation) - { - if (equippedMutators.Contains(tFUIEquippable)) - { - tFUIEquippable.UnPick(); - PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: false); - equippedMutators.Remove(tFUIEquippable); - } - else - { - tFUIEquippable.Pick(); - PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true); - equippedMutators.Add(tFUIEquippable); - } - } - UpdatePerksText(); - UpdateMutatorBonusText(); - } - - private void RecomputeNavigation() - { - int constraintCount = weaponsParent.constraintCount; - AssignNavigationTargets(weapons, playButton, null, null, perks, constraintCount); - AssignNavigationTargets(perks, null, weapons, null, mutators, constraintCount); - AssignNavigationTargets(mutators, null, perks, playButton, null, constraintCount); - playButton.topNav = mutators[mutators.Count - 1]; - playButton.leftNav = mutators[mutators.Count - 1]; - playButton.botNav = weapons[0]; - playButton.rightNav = weapons[0]; - GetComponent<UIFrame>().firstSelected = weapons[0]; - } - - private void RewriteQuestTexts() - { - for (int num = questsParent.childCount - 1; num >= 0; num--) - { - Object.Destroy(questsParent.GetChild(num).gameObject); - } - int num2 = 0; - foreach (Quest quest in LevelInteractor.lastActivatedLevelInteractor.Quests) - { - Object.Instantiate(questEntryPrefab, questsParent).Init(quest, num2, quest.CheckBeaten(levelData)); - num2++; - } - } - - private void UpdatePerksText() - { - if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout) - { - perksText.text = LocalizationManager.GetTranslation("Menu/Perks"); - return; - } - perksText.text = LocalizationManager.GetTranslation("Menu/Perks") + " (" + equippedPerks.Count + "/" + numberOfPerksAllowedToEquip + ")"; - } - - private void UpdateMutatorBonusText() - { - if (equippedMutators.Count > 0) - { - mutatorBonusText.gameObject.SetActive(value: true); - float num = 1f; - foreach (TFUIEquippable equippedMutator in equippedMutators) - { - EquippableMutation equippableMutation = equippedMutator.Data as EquippableMutation; - if (!(equippableMutation == null)) - { - num *= equippableMutation.scoreMultiplyerOnWin; - } - } - num -= 1f; - mutatorBonusText.text = LocalizationManager.GetTermTranslation("Menu/Mutator Bonus Preview") + ": <style=Body Bold>+" + (num * 100f).ToString("F0") + "%"; - } - else - { - mutatorBonusText.gameObject.SetActive(value: false); - } - } - - private void AssignNavigationTargets(List<TFUIEquippable> targetElements, ThronefallUIElement aboveElement, List<TFUIEquippable> aboveList, ThronefallUIElement belowElement, List<TFUIEquippable> belowList, int maxColumns) - { - for (int i = 0; i < targetElements.Count; i++) - { - TFUIEquippable tFUIEquippable = targetElements[i]; - int num = i - 1; - int num2 = i + 1; - int num3 = i + maxColumns; - int num4 = i - maxColumns; - if (num < 0) - { - if (aboveElement != null) - { - tFUIEquippable.leftNav = aboveElement; - } - else - { - tFUIEquippable.leftNav = aboveList[aboveList.Count - 1]; - } - } - else - { - tFUIEquippable.leftNav = targetElements[num]; - } - if (num2 >= targetElements.Count) - { - if (belowElement != null) - { - tFUIEquippable.rightNav = belowElement; - } - else - { - tFUIEquippable.rightNav = belowList[0]; - } - } - else - { - tFUIEquippable.rightNav = targetElements[num2]; - } - if (num3 >= targetElements.Count) - { - if (targetElements.Count - i > targetElements.Count % maxColumns) - { - tFUIEquippable.botNav = targetElements[targetElements.Count - 1]; - } - else if (belowElement != null) - { - tFUIEquippable.botNav = belowElement; - } - else - { - int num5 = i % maxColumns; - if (belowList.Count < num5) - { - tFUIEquippable.botNav = belowList[belowList.Count - 1]; - } - else - { - tFUIEquippable.botNav = belowList[num5]; - } - } - } - else - { - tFUIEquippable.botNav = targetElements[num3]; - } - if (num4 < 0) - { - if (aboveElement != null) - { - tFUIEquippable.topNav = aboveElement; - continue; - } - int num6 = i % maxColumns; - int num7 = aboveList.Count % maxColumns; - if (num6 > num7) - { - tFUIEquippable.topNav = aboveList[aboveList.Count - 1]; - continue; - } - int value = aboveList.Count - num7 + num6; - value = Mathf.Clamp(value, 0, aboveList.Count - 1); - tFUIEquippable.topNav = aboveList[value]; - } - else - { - tFUIEquippable.topNav = targetElements[num4]; - } - } - } -} |
