From 600545e0f1d1277d6973200db81df1cca9608d28 Mon Sep 17 00:00:00 2001 From: UnEpicier Date: Mon, 23 Oct 2023 11:56:24 +0200 Subject: [PATCH] Refactorisation --- Assets/Data/UpgradesData.cs | 4 +- Assets/Enemies/Ennemy.cs | 2 +- Assets/Player/Player.prefab | 30 ++++++----- Assets/Player/Scripts/PlayerManager.cs | 5 +- Assets/Player/Scripts/PlayerMovements.cs | 6 +-- Assets/Player/Scripts/PlayerWeapons.cs | 47 +++++++++--------- Assets/Player/Scripts/Spawner.cs | 30 +++++------ Assets/Resources/upgrades.json | 4 +- Assets/UI/EndScene.cs | 8 +-- Assets/UI/Pause Menu/Pause Menu.cs | 4 +- Assets/UI/Start UI/Start UI.cs | 6 +-- Assets/UI/Start UI/Start UI.prefab | 4 +- Assets/UI/Upgrade Screen/Upgrade Screen.cs | 11 ++-- .../UI/Upgrade Screen/Upgrade Screen.prefab | 4 +- Assets/Weapons/Arrow/Arrow.cs | 6 +-- Assets/Weapons/{Laser.meta => Beam.meta} | 0 .../{Laser/Laser Beam.cs => Beam/Beam.cs} | 7 ++- .../Laser Beam.cs.meta => Beam/Beam.cs.meta} | 0 .../Laser Beam.prefab => Beam/Beam.prefab} | 6 +-- .../Beam.prefab.meta} | 0 Assets/Weapons/{Halo.meta => Sword Halo.meta} | 0 .../Sword Halo.prefab} | 2 +- .../Sword Halo.prefab.meta} | 0 Assets/Weapons/{Halo => Sword Halo}/Sword.cs | 0 .../{Halo => Sword Halo}/Sword.cs.meta | 0 Assets/Weapons/{Halo => Sword Halo}/Sword.png | Bin .../{Halo => Sword Halo}/Sword.png.meta | 0 .../Weapons/{Halo => Sword Halo}/Sword.prefab | 0 .../{Halo => Sword Halo}/Sword.prefab.meta | 0 .../{Halo/Halo.cs => Sword Halo/SwordHalo.cs} | 18 +++---- .../SwordHalo.cs.meta} | 0 31 files changed, 102 insertions(+), 102 deletions(-) rename Assets/Weapons/{Laser.meta => Beam.meta} (100%) rename Assets/Weapons/{Laser/Laser Beam.cs => Beam/Beam.cs} (91%) rename Assets/Weapons/{Laser/Laser Beam.cs.meta => Beam/Beam.cs.meta} (100%) rename Assets/Weapons/{Laser/Laser Beam.prefab => Beam/Beam.prefab} (97%) rename Assets/Weapons/{Laser/Laser Beam.prefab.meta => Beam/Beam.prefab.meta} (100%) rename Assets/Weapons/{Halo.meta => Sword Halo.meta} (100%) rename Assets/Weapons/{Halo/Halo.prefab => Sword Halo/Sword Halo.prefab} (98%) rename Assets/Weapons/{Halo/Halo.prefab.meta => Sword Halo/Sword Halo.prefab.meta} (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.cs (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.cs.meta (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.png (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.png.meta (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.prefab (100%) rename Assets/Weapons/{Halo => Sword Halo}/Sword.prefab.meta (100%) rename Assets/Weapons/{Halo/Halo.cs => Sword Halo/SwordHalo.cs} (89%) rename Assets/Weapons/{Halo/Halo.cs.meta => Sword Halo/SwordHalo.cs.meta} (100%) diff --git a/Assets/Data/UpgradesData.cs b/Assets/Data/UpgradesData.cs index 65ee96d..31d509e 100644 --- a/Assets/Data/UpgradesData.cs +++ b/Assets/Data/UpgradesData.cs @@ -2,13 +2,13 @@ using UnityEngine; public class UpgradesData : MonoBehaviour { - [SerializeField] private TextAsset upgradesJSON; + [SerializeField] private TextAsset _upgradesJSON; public Upgrades upgrades; private void Awake() { - upgrades = JsonUtility.FromJson(upgradesJSON.text); + upgrades = JsonUtility.FromJson(_upgradesJSON.text); } } diff --git a/Assets/Enemies/Ennemy.cs b/Assets/Enemies/Ennemy.cs index 811d82b..9855974 100644 --- a/Assets/Enemies/Ennemy.cs +++ b/Assets/Enemies/Ennemy.cs @@ -11,7 +11,7 @@ public class Ennemy : MonoBehaviour private SpriteRenderer _sr; private Transform _player; - public static float StartLife = 100; + public static float StartLife = 100f; public float Life; public float Speed = .1f; public int Damages = 1; diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index c3f4074..0c6cc06 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -39,8 +39,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 5162058273174827349} - {fileID: 4152598028236711869} - - {fileID: 4740856695113674186} - {fileID: 1598670840411184170} - {fileID: 5865658617547034318} - {fileID: 749125587594098812} @@ -238,7 +238,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 32f5e7611866dce4ab320c814d279d84, type: 3} m_Name: m_EditorClassIdentifier: - lookOnRight: 1 + LookOnRight: 1 --- !u!114 &7397454076540391921 MonoBehaviour: m_ObjectHideFlags: 0 @@ -273,14 +273,14 @@ MonoBehaviour: BeamDamages: 50 BeamFrequency: 5 BeamLife: 0.5 + HorizontalBeam: 0 + VerticalBeam: 0 SwordsHaloRadius: 1 SwordsDamages: 25 SwordsQuantity: 5 ArrowDamages: 15 ArrowFrequency: 2 ArrowRange: 5 - laserOnX: 0 - laserOnY: 0 pauseMenu: {fileID: 1161238801143918071} deathScreen: {fileID: 8536456763282141865} _upgradeScreen: {fileID: 3552072345333957438} @@ -296,8 +296,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ce23672c2f6b5bd42adf4a7776a52005, type: 3} m_Name: m_EditorClassIdentifier: - laser: {fileID: 4893257253370123985, guid: 95cb513377bf0e248bd66d6f7ddae920, type: 3} - arrow: {fileID: 6280786298679187013, guid: 856a449688373494987701d49b79a7af, type: 3} + _beam: {fileID: 4893257253370123985, guid: 95cb513377bf0e248bd66d6f7ddae920, type: 3} + _arrow: {fileID: 6280786298679187013, guid: 856a449688373494987701d49b79a7af, type: 3} --- !u!114 &4761054675786854393 MonoBehaviour: m_ObjectHideFlags: 0 @@ -310,10 +310,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e6db2d9573175344fa4455c70d440232, type: 3} m_Name: m_EditorClassIdentifier: - Mayor: {fileID: 0} - Minautor: {fileID: 0} - BringerOfDeath: {fileID: 0} ---- !u!1001 &993819705047970090 + Mayor: {fileID: 6061697268588932327, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} + Minautor: {fileID: 1374640533067853523, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} + BringerOfDeath: {fileID: 1631754574535955224, guid: 7339e2869a0a9d241b10f5d0a658ff4d, type: 3} +--- !u!1001 &838647460435930549 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -323,7 +323,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 3957911104700806788, guid: fd7d128113472244d88a3fc511da99a0, type: 3} propertyPath: m_Name - value: Halo + value: Sword Halo objectReference: {fileID: 0} - target: {fileID: 5476423095808072928, guid: fd7d128113472244d88a3fc511da99a0, type: 3} propertyPath: m_LocalPosition.x @@ -370,10 +370,10 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: fd7d128113472244d88a3fc511da99a0, type: 3} ---- !u!4 &4740856695113674186 stripped +--- !u!4 &5162058273174827349 stripped Transform: m_CorrespondingSourceObject: {fileID: 5476423095808072928, guid: fd7d128113472244d88a3fc511da99a0, type: 3} - m_PrefabInstance: {fileID: 993819705047970090} + m_PrefabInstance: {fileID: 838647460435930549} m_PrefabAsset: {fileID: 0} --- !u!1001 &1611953582756194365 PrefabInstance: @@ -631,6 +631,10 @@ PrefabInstance: propertyPath: m_Name value: Upgrade Screen objectReference: {fileID: 0} + - target: {fileID: 113215708914507097, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} propertyPath: m_LocalPosition.x value: 0 diff --git a/Assets/Player/Scripts/PlayerManager.cs b/Assets/Player/Scripts/PlayerManager.cs index bf36e00..290d541 100644 --- a/Assets/Player/Scripts/PlayerManager.cs +++ b/Assets/Player/Scripts/PlayerManager.cs @@ -17,6 +17,8 @@ public class PlayerManager : MonoBehaviour public float BeamDamages = 50f; public float BeamFrequency = 5f; public float BeamLife = 0.5f; + public float HorizontalBeam = 0f; + public float VerticalBeam = 0f; public float SwordsHaloRadius = 1f; public float SwordsDamages = 25f; @@ -26,9 +28,6 @@ public class PlayerManager : MonoBehaviour public float ArrowFrequency = 2f; public float ArrowRange = 5f; - public float laserOnX = 0f; - public float laserOnY = 0f; - [SerializeField] private GameObject pauseMenu; [SerializeField] diff --git a/Assets/Player/Scripts/PlayerMovements.cs b/Assets/Player/Scripts/PlayerMovements.cs index f34fd96..dd7a9f3 100644 --- a/Assets/Player/Scripts/PlayerMovements.cs +++ b/Assets/Player/Scripts/PlayerMovements.cs @@ -7,7 +7,7 @@ public class PlayerMovements : MonoBehaviour private Animator _animator; private PlayerManager _pm; - public bool lookOnRight = true; + public bool LookOnRight = true; private void Start() { @@ -28,11 +28,11 @@ public class PlayerMovements : MonoBehaviour if (moveH < 0) { _sr.flipX = true; - lookOnRight = false; + LookOnRight = false; } else if (moveH > 0) { _sr.flipX = false; - lookOnRight = true; + LookOnRight = true; } /** --- update animator -------------------------------------------*/ diff --git a/Assets/Player/Scripts/PlayerWeapons.cs b/Assets/Player/Scripts/PlayerWeapons.cs index 6c60d9a..e5b8fdd 100644 --- a/Assets/Player/Scripts/PlayerWeapons.cs +++ b/Assets/Player/Scripts/PlayerWeapons.cs @@ -4,28 +4,27 @@ using UnityEngine; [RequireComponent (typeof(PlayerMovements))] public class PlayerWeapons : MonoBehaviour { - [SerializeField] private GameObject laser; + [SerializeField] private GameObject _beam; - [SerializeField] private GameObject arrow; + [SerializeField] private GameObject _arrow; private PlayerMovements _pm; private PlayerManager _manager; - private float oldBeamFrequency; - private bool oldBeamX; - private bool oldBeamY; + private float _oldBeamFrequency; + private bool _oldHorizontalBeam; + private bool _oldVerticalBeam; - private float oldArrowFrequency; + private float _oldArrowFrequency; private void Start() { _pm = GetComponent(); _manager = GetComponent(); - oldBeamFrequency = _manager.BeamFrequency; - oldBeamX = Convert.ToBoolean(_manager.laserOnX); - oldBeamY = Convert.ToBoolean(_manager.laserOnY); - oldArrowFrequency = _manager.ArrowFrequency; + _oldArrowFrequency = _manager.BeamFrequency; + _oldHorizontalBeam = Convert.ToBoolean(_manager.HorizontalBeam); + _oldVerticalBeam = Convert.ToBoolean(_manager.VerticalBeam); InvokeRepeating(nameof(ShootBeam), _manager.BeamFrequency, _manager.BeamFrequency); InvokeRepeating(nameof(ShootArrow), _manager.ArrowFrequency, _manager.ArrowFrequency); @@ -33,7 +32,7 @@ public class PlayerWeapons : MonoBehaviour private void FixedUpdate() { - if (_manager.BeamFrequency != oldBeamFrequency) + if (_manager.BeamFrequency != _oldBeamFrequency) { if (_manager.BeamFrequency > 0f) { @@ -45,24 +44,24 @@ public class PlayerWeapons : MonoBehaviour CancelInvoke(nameof(ShootBeam)); ShootBeam(); } - oldBeamFrequency = _manager.BeamFrequency; + _oldBeamFrequency = _manager.BeamFrequency; } if (_manager.BeamFrequency == 0) { - if (oldBeamX != Convert.ToBoolean(_manager.laserOnX) || oldBeamY != Convert.ToBoolean(_manager.laserOnY)) + if (_oldHorizontalBeam != Convert.ToBoolean(_manager.HorizontalBeam) || _oldVerticalBeam != Convert.ToBoolean(_manager.VerticalBeam)) { foreach (var beam in GameObject.FindGameObjectsWithTag("Beam")) { Destroy(beam); } - oldBeamX = Convert.ToBoolean(_manager.laserOnX); - oldBeamY = Convert.ToBoolean(_manager.laserOnY); + _oldVerticalBeam = Convert.ToBoolean(_manager.VerticalBeam); + _oldVerticalBeam = Convert.ToBoolean(_manager.VerticalBeam); ShootBeam(); } } - if (_manager.ArrowFrequency != oldArrowFrequency) + if (_manager.ArrowFrequency != _oldBeamFrequency) { CancelInvoke(nameof(ShootArrow)); InvokeRepeating(nameof(ShootArrow), _manager.ArrowFrequency, _manager.ArrowFrequency); @@ -71,17 +70,17 @@ public class PlayerWeapons : MonoBehaviour private void ShootBeam() { - Instantiate(laser, transform.position, Quaternion.identity, transform); + Instantiate(_beam, transform.position, Quaternion.identity, transform); - if (_manager.laserOnX > 0) + if (_manager.HorizontalBeam > 0) { - Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 180), transform); + Instantiate(_beam, transform.position, Quaternion.Euler(0, 0, 180), transform); } - if (_manager.laserOnY > 0) + if (_manager.VerticalBeam > 0) { - Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 90), transform); - Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 270), transform); + Instantiate(_beam, transform.position, Quaternion.Euler(0, 0, 90), transform); + Instantiate(_beam, transform.position, Quaternion.Euler(0, 0, 270), transform); } } @@ -112,8 +111,8 @@ public class PlayerWeapons : MonoBehaviour // Shoot arrow if (target != null) { - GameObject spawnedArrow = Instantiate(arrow, transform.position, Quaternion.identity); - spawnedArrow.GetComponent().target = target; + GameObject spawnedArrow = Instantiate(_arrow, transform.position, Quaternion.identity); + spawnedArrow.GetComponent().Target = target; } } } diff --git a/Assets/Player/Scripts/Spawner.cs b/Assets/Player/Scripts/Spawner.cs index fcac9c3..74a62a7 100644 --- a/Assets/Player/Scripts/Spawner.cs +++ b/Assets/Player/Scripts/Spawner.cs @@ -10,13 +10,13 @@ public class Spawner : MonoBehaviour private float _radius = 5f; - [SerializeField] private int spawnedMayors = 0; - [SerializeField] private int spawnedMinautor = 0; - [SerializeField] private int spawnedBringerOfDeath = 0; + private int _spawnedMayors = 0; + private int _spawnedMinautor = 0; + private int _spawnedBringerOfDeath = 0; - private readonly int mayorsLimit = 300; - private readonly int minautorsLimit = 15; - private readonly int bringerOfDeathLimit = 5; + private readonly int _mayorsLimit = 300; + private readonly int _minautorsLimit = 15; + private readonly int _bringerOfDeathLimit = 5; private void Awake() { @@ -36,9 +36,9 @@ public class Spawner : MonoBehaviour private void Update() { - spawnedMayors = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Mayor")).Length; - spawnedMinautor = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Minautor")).Length; - spawnedBringerOfDeath = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Bringer of Death")).Length; + _spawnedMayors = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Mayor")).Length; + _spawnedMinautor = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Minautor")).Length; + _spawnedBringerOfDeath = Array.FindAll(GameObject.FindGameObjectsWithTag("Ennemy"), (value) => value.name.Contains("Bringer of Death")).Length; } private void SpawnWave() @@ -54,9 +54,9 @@ public class Spawner : MonoBehaviour int retries = 0; while ( - (enemyName == "Mayor" && spawnedMayors >= mayorsLimit) || - (enemyName == "Minautor" && spawnedMinautor >= minautorsLimit) || - (enemyName == "Bringer of Death" && spawnedBringerOfDeath >= bringerOfDeathLimit) + (enemyName == "Mayor" && _spawnedMayors >= _mayorsLimit) || + (enemyName == "Minautor" && _spawnedMinautor >= _minautorsLimit) || + (enemyName == "Bringer of Death" && _spawnedBringerOfDeath >= _bringerOfDeathLimit) ) { enemyToSpawn = ChooseEnemy(); @@ -72,13 +72,13 @@ public class Spawner : MonoBehaviour switch (enemyName) { case "Mayor": - spawnedMayors++; + _spawnedMayors++; break; case "Minautor": - spawnedMinautor++; + _spawnedMinautor++; break; case "Bringer": - spawnedBringerOfDeath++; + _spawnedBringerOfDeath++; break; } diff --git a/Assets/Resources/upgrades.json b/Assets/Resources/upgrades.json index ec49541..af73cd0 100644 --- a/Assets/Resources/upgrades.json +++ b/Assets/Resources/upgrades.json @@ -38,13 +38,13 @@ }, { "name": "2 Horizontal beams", - "paramName": "laserOnX", + "paramName": "HorizontalBeam", "maxValue": 1, "value": 1 }, { "name": "2 Vertical beams", - "paramName": "laserOnY", + "paramName": "VerticalBeam", "maxValue": 1, "value": 1 }, diff --git a/Assets/UI/EndScene.cs b/Assets/UI/EndScene.cs index e127487..1eb49f7 100644 --- a/Assets/UI/EndScene.cs +++ b/Assets/UI/EndScene.cs @@ -5,13 +5,13 @@ using UnityEngine.SceneManagement; public class EndScene : MonoBehaviour { [SerializeField] - private TMP_Text mayorsText, minautorsText, bringerOfDeathText; + private TMP_Text _mayorsText, _minautorsText, _bringerOfDeathText; private void Start() { - mayorsText.SetText($"Mayors killed: {GameManager.MayorKills}"); - minautorsText.SetText($"Minautors killed: {GameManager.MinautorKills}"); - bringerOfDeathText.SetText($"Bringers of Death killed: {GameManager.BringerOfDeathKills}"); + _mayorsText.SetText($"Mayors killed: {GameManager.MayorKills}"); + _minautorsText.SetText($"Minautors killed: {GameManager.MinautorKills}"); + _bringerOfDeathText.SetText($"Bringers of Death killed: {GameManager.BringerOfDeathKills}"); } public void RestartGame() diff --git a/Assets/UI/Pause Menu/Pause Menu.cs b/Assets/UI/Pause Menu/Pause Menu.cs index eea1f0f..04754b1 100644 --- a/Assets/UI/Pause Menu/Pause Menu.cs +++ b/Assets/UI/Pause Menu/Pause Menu.cs @@ -45,8 +45,8 @@ public class PauseMenu : MonoBehaviour _beamDamages.SetText($"Beam Damages: {_manager.BeamDamages}"); _beamFrequency.SetText($"Beam Frequency: {_manager.BeamFrequency}s"); _beamLife.SetText($"Beam Life: {_manager.BeamLife}s"); - _horizontalBeam.SetText($"Horizontal Beam: {(Convert.ToBoolean(_manager.laserOnX) ? "Yes" : "No")}"); - _verticalBeam.SetText($"Vertical Beam: {(Convert.ToBoolean(_manager.laserOnY) ? "Yes": "No")}"); + _horizontalBeam.SetText($"Horizontal Beam: {(Convert.ToBoolean(_manager.HorizontalBeam) ? "Yes" : "No")}"); + _verticalBeam.SetText($"Vertical Beam: {(Convert.ToBoolean(_manager.VerticalBeam) ? "Yes": "No")}"); _swordDamages.SetText($"Sword Damages: {_manager.SwordsDamages}"); _swordQuantity.SetText($"Swords Quantity: {_manager.SwordsQuantity}"); _swordHaloRadius.SetText($"Sword Halo Radius: {_manager.SwordsHaloRadius * 1.5}m"); diff --git a/Assets/UI/Start UI/Start UI.cs b/Assets/UI/Start UI/Start UI.cs index b826a69..d239584 100644 --- a/Assets/UI/Start UI/Start UI.cs +++ b/Assets/UI/Start UI/Start UI.cs @@ -6,7 +6,7 @@ using UnityEngine; public class StartUI : MonoBehaviour { [SerializeField] - private TMP_Text text; + private TMP_Text _text; private void Awake() { @@ -21,9 +21,9 @@ public class StartUI : MonoBehaviour private IEnumerator Settlement() { yield return new WaitForSecondsRealtime(1f); - text.SetText("2"); + _text.SetText("2"); yield return new WaitForSecondsRealtime(1f); - text.SetText("1"); + _text.SetText("1"); yield return new WaitForSecondsRealtime(1f); Time.timeScale = 1f; Destroy(gameObject); diff --git a/Assets/UI/Start UI/Start UI.prefab b/Assets/UI/Start UI/Start UI.prefab index 0ded946..7da7208 100644 --- a/Assets/UI/Start UI/Start UI.prefab +++ b/Assets/UI/Start UI/Start UI.prefab @@ -191,7 +191,7 @@ Canvas: m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 m_VertexColorAlwaysGammaSpace: 1 - m_AdditionalShaderChannelsFlag: 0 + m_AdditionalShaderChannelsFlag: 25 m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 @@ -281,4 +281,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4bbb960039366744fb92e6242d1a345d, type: 3} m_Name: m_EditorClassIdentifier: - text: {fileID: 2676709033308988721} + _text: {fileID: 2676709033308988721} diff --git a/Assets/UI/Upgrade Screen/Upgrade Screen.cs b/Assets/UI/Upgrade Screen/Upgrade Screen.cs index b96db3b..b857cb5 100644 --- a/Assets/UI/Upgrade Screen/Upgrade Screen.cs +++ b/Assets/UI/Upgrade Screen/Upgrade Screen.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -11,7 +10,7 @@ using Random = UnityEngine.Random; public class UpgradeScreen : MonoBehaviour { [SerializeField] - private List