summaryrefslogtreecommitdiff
path: root/GameCode/LoadoutUIHelper.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 16:05:01 +0800
committerchai <215380520@qq.com>2024-05-19 16:05:01 +0800
commitc5f145786f4c6d2fe4bea831dfc16e52228920a5 (patch)
treea6ead7ea8266c767d58ed0f816dcd7a1dd75bd65 /GameCode/LoadoutUIHelper.cs
parent48b64e573a1709dc923cb9162b55be0246b3ff63 (diff)
* move
Diffstat (limited to 'GameCode/LoadoutUIHelper.cs')
-rw-r--r--GameCode/LoadoutUIHelper.cs398
1 files changed, 0 insertions, 398 deletions
diff --git a/GameCode/LoadoutUIHelper.cs b/GameCode/LoadoutUIHelper.cs
deleted file mode 100644
index 7eccf08..0000000
--- a/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];
- }
- }
- }
-}