From 7ebff78708183e4a05460a70994ba507c02bd6ce Mon Sep 17 00:00:00 2001 From: UnEpicier Date: Sun, 22 Oct 2023 15:08:39 +0200 Subject: [PATCH] Upgrade System --- Assets/Data.meta | 8 + Assets/Data/UpgradesData.cs | 27 + Assets/Data/UpgradesData.cs.meta | 11 + .../Bringer of Death/Bringer of Death.prefab | 1 + Assets/Enemies/Ennemy.cs | 25 +- Assets/Enemies/Mayor/Mayor.prefab | 1 + Assets/Enemies/Minautor/Minautor.prefab | 1 + Assets/Orb/Orb.prefab | 2 +- Assets/Orb/OrbStats.cs | 2 + Assets/Player/Player.prefab | 90 +- Assets/Player/Scripts/PlayerCollisions.cs | 16 +- Assets/Player/Scripts/PlayerManager.cs | 52 +- Assets/Player/Scripts/PlayerWeapons.cs | 69 +- Assets/Resources.meta | 8 + Assets/Resources/upgrades.json | 74 + Assets/Resources/upgrades.json.meta | 7 + Assets/Scenes/Game.unity | 156 +- Assets/UI/Upgrade Screen.meta | 8 + Assets/UI/Upgrade Screen/Upgrade Screen.cs | 77 + .../UI/Upgrade Screen/Upgrade Screen.cs.meta | 11 + .../UI/Upgrade Screen/Upgrade Screen.prefab | 1294 +++++++++++++++++ .../Upgrade Screen/Upgrade Screen.prefab.meta | 7 + Assets/Weapons/Arrow/Arrow.cs | 14 +- Assets/Weapons/Arrow/Arrow.prefab | 2 +- Assets/Weapons/Halo/Halo.cs | 63 +- Assets/Weapons/Halo/Halo.prefab | 2 +- Assets/Weapons/Halo/Sword.cs | 5 +- Assets/Weapons/Halo/Sword.prefab | 3 +- Assets/Weapons/Laser/Laser Beam.cs | 30 +- Assets/Weapons/Laser/Laser Beam.prefab | 7 +- .../BurstAotSettings_StandaloneWindows.json | 18 + ProjectSettings/CommonBurstAotSettings.json | 6 + ProjectSettings/ProjectSettings.asset | 2 +- ProjectSettings/TagManager.asset | 1 + 34 files changed, 1901 insertions(+), 199 deletions(-) create mode 100644 Assets/Data.meta create mode 100644 Assets/Data/UpgradesData.cs create mode 100644 Assets/Data/UpgradesData.cs.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/upgrades.json create mode 100644 Assets/Resources/upgrades.json.meta create mode 100644 Assets/UI/Upgrade Screen.meta create mode 100644 Assets/UI/Upgrade Screen/Upgrade Screen.cs create mode 100644 Assets/UI/Upgrade Screen/Upgrade Screen.cs.meta create mode 100644 Assets/UI/Upgrade Screen/Upgrade Screen.prefab create mode 100644 Assets/UI/Upgrade Screen/Upgrade Screen.prefab.meta create mode 100644 ProjectSettings/BurstAotSettings_StandaloneWindows.json create mode 100644 ProjectSettings/CommonBurstAotSettings.json diff --git a/Assets/Data.meta b/Assets/Data.meta new file mode 100644 index 0000000..ebdac0f --- /dev/null +++ b/Assets/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c268782130b3d544cb63b578e93b50eb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/UpgradesData.cs b/Assets/Data/UpgradesData.cs new file mode 100644 index 0000000..784df76 --- /dev/null +++ b/Assets/Data/UpgradesData.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +public class UpgradesData : MonoBehaviour +{ + [SerializeField] private TextAsset upgradesJSON; + + public Upgrades upgrades; + + private void Awake() + { + upgrades = JsonUtility.FromJson(upgradesJSON.text); + } +} + +[System.Serializable] +public class Upgrade +{ + public string name; + public string paramName; + public float value; +} + +[System.Serializable] +public class Upgrades +{ + public Upgrade[] upgrades; +} \ No newline at end of file diff --git a/Assets/Data/UpgradesData.cs.meta b/Assets/Data/UpgradesData.cs.meta new file mode 100644 index 0000000..06221af --- /dev/null +++ b/Assets/Data/UpgradesData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 132f6eb0a04c6614d9ebb227a443e2a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Enemies/Bringer of Death/Bringer of Death.prefab b/Assets/Enemies/Bringer of Death/Bringer of Death.prefab index 8e39ab6..b338cd0 100644 --- a/Assets/Enemies/Bringer of Death/Bringer of Death.prefab +++ b/Assets/Enemies/Bringer of Death/Bringer of Death.prefab @@ -196,3 +196,4 @@ MonoBehaviour: Speed: 1 Damages: 100 Life: 1000 + _orb: {fileID: 4247841200454641178, guid: 5f995817aeb7ddc4e841633e73c7ff59, type: 3} diff --git a/Assets/Enemies/Ennemy.cs b/Assets/Enemies/Ennemy.cs index 44d2041..3c41a8c 100644 --- a/Assets/Enemies/Ennemy.cs +++ b/Assets/Enemies/Ennemy.cs @@ -12,9 +12,11 @@ public class Ennemy : MonoBehaviour private SpriteRenderer _sr; private Transform _player; + public float Life = 100; public float Speed = .1f; public int Damages = 1; - public int Life = 100; + + [SerializeField] private GameObject _orb; private void Start() { @@ -31,14 +33,33 @@ public class Ennemy : MonoBehaviour if (gameObject.name.Contains("Mayor")) { _player.GetComponent().MayorKills++; + for(int i = 0; i < 5; i++) + { + Instantiate(_orb, transform.position, Quaternion.identity); + } } - else if (gameObject.name.Contains("Minotaur")) + else if (gameObject.name.Contains("Minautor")) { _player.GetComponent().MinautorKills++; + for (int i = 0; i < 5; i++) + { + GameObject _spawnedOrb = Instantiate(_orb, transform.position, Quaternion.identity); + _spawnedOrb.GetComponent().OrbValue = OrbValues.Ten; + } } else if(gameObject.name.Contains("Bringer of Death")) { _player.GetComponent().BringerOfDeathKills++; + for (int i = 0; i < 2; i++) + { + GameObject _spawnedOrb = Instantiate(_orb, transform.position, Quaternion.identity); + _spawnedOrb.GetComponent().OrbValue = OrbValues.Hundred; + } + for (int i = 0; i < 5; i++) + { + GameObject _spawnedOrb = Instantiate(_orb, transform.position, Quaternion.identity); + _spawnedOrb.GetComponent().OrbValue = OrbValues.Ten; + } } } } diff --git a/Assets/Enemies/Mayor/Mayor.prefab b/Assets/Enemies/Mayor/Mayor.prefab index 8b6261c..67cdeb8 100644 --- a/Assets/Enemies/Mayor/Mayor.prefab +++ b/Assets/Enemies/Mayor/Mayor.prefab @@ -124,6 +124,7 @@ MonoBehaviour: Speed: 0.2 Damages: 10 Life: 100 + _orb: {fileID: 4247841200454641178, guid: 5f995817aeb7ddc4e841633e73c7ff59, type: 3} --- !u!61 &247299863115505385 BoxCollider2D: m_ObjectHideFlags: 0 diff --git a/Assets/Enemies/Minautor/Minautor.prefab b/Assets/Enemies/Minautor/Minautor.prefab index 46138af..841c085 100644 --- a/Assets/Enemies/Minautor/Minautor.prefab +++ b/Assets/Enemies/Minautor/Minautor.prefab @@ -196,3 +196,4 @@ MonoBehaviour: Speed: 0.7 Damages: 75 Life: 500 + _orb: {fileID: 4247841200454641178, guid: 5f995817aeb7ddc4e841633e73c7ff59, type: 3} diff --git a/Assets/Orb/Orb.prefab b/Assets/Orb/Orb.prefab index 345a690..5782648 100644 --- a/Assets/Orb/Orb.prefab +++ b/Assets/Orb/Orb.prefab @@ -123,7 +123,7 @@ CircleCollider2D: m_Bits: 0 m_ExcludeLayers: serializedVersion: 2 - m_Bits: 0 + m_Bits: 8 m_LayerOverridePriority: 0 m_ForceSendLayers: serializedVersion: 2 diff --git a/Assets/Orb/OrbStats.cs b/Assets/Orb/OrbStats.cs index 1481a22..6ac737e 100644 --- a/Assets/Orb/OrbStats.cs +++ b/Assets/Orb/OrbStats.cs @@ -16,6 +16,8 @@ public class OrbStats : MonoBehaviour private void Start() { _sr = GetComponent(); + + transform.Translate(new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f))); } private void Update() diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 2372861..86b3172 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -41,6 +41,7 @@ Transform: - {fileID: 4152598028236711869} - {fileID: 4740856695113674186} - {fileID: 1598670840411184170} + - {fileID: 749125587594098812} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &4824869534615406026 @@ -262,12 +263,24 @@ MonoBehaviour: m_EditorClassIdentifier: Health: 100 MaxHealth: 100 + HealValue: 1 Speed: 2 Exp: 0 Level: 1 + BeamDamages: 50 + BeamFequency: 5 + SwordsDamages: 25 + ArrowDamages: 15 + ArrowRange: 5 + ArrowFrequency: 2 + laserOnX: 0 + laserOnY: 0 MayorKills: 0 + MinautorKills: 0 + BringerOfDeathKills: 0 pauseMenu: {fileID: 1161238801143918071} deathScreen: {fileID: 8536456763282141865} + _upgradeScreen: {fileID: 3552072345333957438} --- !u!114 &2991086602376010793 MonoBehaviour: m_ObjectHideFlags: 0 @@ -281,8 +294,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: laser: {fileID: 4893257253370123985, guid: 95cb513377bf0e248bd66d6f7ddae920, type: 3} - laserOnX: 0 - laserOnY: 0 arrow: {fileID: 6280786298679187013, guid: 856a449688373494987701d49b79a7af, type: 3} --- !u!1001 &993819705047970090 PrefabInstance: @@ -292,10 +303,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 3622515600777588477} m_Modifications: - - target: {fileID: -8230784050683220836, guid: fd7d128113472244d88a3fc511da99a0, type: 3} - propertyPath: initialSwordsCount - value: 1 - objectReference: {fileID: 0} - target: {fileID: 3957911104700806788, guid: fd7d128113472244d88a3fc511da99a0, type: 3} propertyPath: m_Name value: Halo @@ -513,6 +520,10 @@ PrefabInstance: propertyPath: m_Name value: Death Screen objectReference: {fileID: 0} + - target: {fileID: 7779035698592798071, guid: be2de9e5d757ee447a79f8ad0528d930, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -528,3 +539,70 @@ GameObject: m_CorrespondingSourceObject: {fileID: 7779035698592798071, guid: be2de9e5d757ee447a79f8ad0528d930, type: 3} m_PrefabInstance: {fileID: 2126607160633550814} m_PrefabAsset: {fileID: 0} +--- !u!1001 &3519923663120457319 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3622515600777588477} + m_Modifications: + - target: {fileID: 113215708914507097, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_Name + value: Upgrade Screen + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} +--- !u!4 &749125587594098812 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4232304121047868955, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + m_PrefabInstance: {fileID: 3519923663120457319} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3552072345333957438 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 113215708914507097, guid: c16dc07d15aa39d4ba76ea86b13d279e, type: 3} + m_PrefabInstance: {fileID: 3519923663120457319} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Player/Scripts/PlayerCollisions.cs b/Assets/Player/Scripts/PlayerCollisions.cs index 5b4a449..b042ff4 100644 --- a/Assets/Player/Scripts/PlayerCollisions.cs +++ b/Assets/Player/Scripts/PlayerCollisions.cs @@ -3,17 +3,25 @@ using UnityEngine; [ RequireComponent(typeof(PlayerManager)), - RequireComponent(typeof(SpriteRenderer)) + RequireComponent(typeof(SpriteRenderer)), + RequireComponent(typeof(CircleCollider2D)) ] public class PlayerCollisions : MonoBehaviour { - private PlayerManager _pm; + private PlayerManager _manager; private SpriteRenderer _sr; + private CircleCollider2D _trigger; private void Start() { - _pm = GetComponent(); + _manager = GetComponent(); _sr = GetComponent(); + _trigger = GetComponent(); + } + + private void Update() + { + _trigger.radius = _manager.OrbAbsorberRadius; } private void OnTriggerStay2D(Collider2D collision) @@ -39,7 +47,7 @@ public class PlayerCollisions : MonoBehaviour if (orb.transform.position == transform.position) { - _pm.AddExperience((int)orb.GetComponent().OrbValue); + _manager.AddExperience((int)orb.GetComponent().OrbValue); } } } diff --git a/Assets/Player/Scripts/PlayerManager.cs b/Assets/Player/Scripts/PlayerManager.cs index b47a624..79fa170 100644 --- a/Assets/Player/Scripts/PlayerManager.cs +++ b/Assets/Player/Scripts/PlayerManager.cs @@ -3,28 +3,44 @@ using UnityEngine; public class PlayerManager : MonoBehaviour { // Character stats - public int Health = 100; - public int MaxHealth = 100; - public int HealValue = 1; + [Header("Character Stats")] + public float Health = 100f; + public float MaxHealth = 100f; + public float HealValue = 1f; public float Speed = 2f; - public int Exp = 0; - public int Level = 1; + public float Exp = 0f; + public float Level = 1f; + public float OrbAbsorberRadius = 0.7f; // Weapons stats - public int BeamDamages = 50; - public int SwordsDamages = 25; - public int ArrowDamages = 15; + [Header("Weapons Stats")] + public float BeamDamages = 50f; + public float BeamFrequency = 5f; + public float BeamLife = 0.5f; + + public float SwordsHaloRadius = 1f; + public float SwordsDamages = 25f; + public float SwordsQuantity = 5f; + + public float ArrowDamages = 15f; + public float ArrowRange = 5f; + public float ArrowFrequency = 2f; + + public float laserOnX = 0f; + public float laserOnY = 0f; // Kills stats + [Header("Kills Stats")] public int MayorKills = 0; public int MinautorKills = 0; public int BringerOfDeathKills = 0; [SerializeField] private GameObject pauseMenu; - [SerializeField] private GameObject deathScreen; + [SerializeField] + private GameObject _upgradeScreen; private void Start() { @@ -33,6 +49,16 @@ public class PlayerManager : MonoBehaviour private void Update() { + if (BeamFrequency < 0f) + { + BeamFrequency = 0f; + } + + if (ArrowFrequency < 0.5f) + { + ArrowFrequency = 0.5f; + } + if (Input.GetKeyDown(KeyCode.Escape)) { pauseMenu.SetActive(true); @@ -48,6 +74,9 @@ public class PlayerManager : MonoBehaviour { Exp -= Level * 10; Level++; + Time.timeScale = 0f; + _upgradeScreen.SetActive(true); + _upgradeScreen.GetComponentInChildren().GenerateChoice(); } } @@ -59,12 +88,9 @@ public class PlayerManager : MonoBehaviour { Health = 0; - // Death animation + menu Time.timeScale = 0f; + deathScreen.SetActive(true); deathScreen.GetComponent().ShowScreen(); - } else - { - // Damage animation } } diff --git a/Assets/Player/Scripts/PlayerWeapons.cs b/Assets/Player/Scripts/PlayerWeapons.cs index 62ca0c8..6c60d9a 100644 --- a/Assets/Player/Scripts/PlayerWeapons.cs +++ b/Assets/Player/Scripts/PlayerWeapons.cs @@ -1,38 +1,84 @@ -using System.Collections.Generic; +using System; using UnityEngine; [RequireComponent (typeof(PlayerMovements))] public class PlayerWeapons : MonoBehaviour { [SerializeField] private GameObject laser; - [SerializeField] private bool laserOnX; - [SerializeField] private bool laserOnY; [SerializeField] private GameObject arrow; private PlayerMovements _pm; private PlayerManager _manager; + private float oldBeamFrequency; + private bool oldBeamX; + private bool oldBeamY; + + private float oldArrowFrequency; + private void Start() { _pm = GetComponent(); _manager = GetComponent(); - InvokeRepeating(nameof(ShootBeam), 5f, 5f); - InvokeRepeating(nameof(ShootArrow), 2f, 2f); + oldBeamFrequency = _manager.BeamFrequency; + oldBeamX = Convert.ToBoolean(_manager.laserOnX); + oldBeamY = Convert.ToBoolean(_manager.laserOnY); + oldArrowFrequency = _manager.ArrowFrequency; + + InvokeRepeating(nameof(ShootBeam), _manager.BeamFrequency, _manager.BeamFrequency); + InvokeRepeating(nameof(ShootArrow), _manager.ArrowFrequency, _manager.ArrowFrequency); + } + + private void FixedUpdate() + { + if (_manager.BeamFrequency != oldBeamFrequency) + { + if (_manager.BeamFrequency > 0f) + { + CancelInvoke(nameof(ShootBeam)); + InvokeRepeating(nameof(ShootBeam), _manager.BeamFrequency, _manager.BeamFrequency); + } + else + { + CancelInvoke(nameof(ShootBeam)); + ShootBeam(); + } + oldBeamFrequency = _manager.BeamFrequency; + } + + if (_manager.BeamFrequency == 0) + { + if (oldBeamX != Convert.ToBoolean(_manager.laserOnX) || oldBeamY != Convert.ToBoolean(_manager.laserOnY)) + { + foreach (var beam in GameObject.FindGameObjectsWithTag("Beam")) + { + Destroy(beam); + } + oldBeamX = Convert.ToBoolean(_manager.laserOnX); + oldBeamY = Convert.ToBoolean(_manager.laserOnY); + ShootBeam(); + } + } + + if (_manager.ArrowFrequency != oldArrowFrequency) + { + CancelInvoke(nameof(ShootArrow)); + InvokeRepeating(nameof(ShootArrow), _manager.ArrowFrequency, _manager.ArrowFrequency); + } } private void ShootBeam() { - GameObject defaultBeam = Instantiate(laser, transform.position, _pm.lookOnRight ? Quaternion.identity : Quaternion.Euler(0, 0, 180), transform); - defaultBeam.GetComponent().Damages = _manager.BeamDamages; + Instantiate(laser, transform.position, Quaternion.identity, transform); - if (laserOnX) + if (_manager.laserOnX > 0) { - Instantiate(laser, transform.position, _pm.lookOnRight ? Quaternion.Euler(0, 0, 180) : Quaternion.identity, transform); + Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 180), transform); } - if (laserOnY) + if (_manager.laserOnY > 0) { Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 90), transform); Instantiate(laser, transform.position, Quaternion.Euler(0, 0, 270), transform); @@ -43,7 +89,7 @@ public class PlayerWeapons : MonoBehaviour private void ShootArrow() { // Get all enemies in given radius - Collider2D[] hits = Physics2D.OverlapCircleAll(transform.position, 20f, LayerMask.GetMask("Enemy")); + Collider2D[] hits = Physics2D.OverlapCircleAll(transform.position, _manager.ArrowRange, LayerMask.GetMask("Enemy")); if (hits.Length <= 0) { @@ -68,7 +114,6 @@ public class PlayerWeapons : MonoBehaviour { GameObject spawnedArrow = Instantiate(arrow, transform.position, Quaternion.identity); spawnedArrow.GetComponent().target = target; - spawnedArrow.GetComponent().Damages = _manager.ArrowDamages; } } } diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..3d4cfc0 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b31da364d35d380469688df14b1292f7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/upgrades.json b/Assets/Resources/upgrades.json new file mode 100644 index 0000000..0ad97ff --- /dev/null +++ b/Assets/Resources/upgrades.json @@ -0,0 +1,74 @@ +{ + "upgrades": [ + { + "name": "Max health", + "paramName": "MaxHealth", + "value": 25 + }, + { + "name": "Heal quantity", + "paramName": "HealValue", + "value": 2 + }, + { + "name": "Movement speed", + "paramName": "Speed", + "value": 0.5 + }, + { + "name": "Orb Absorber radius", + "paramName": "OrbAbsorberRadius", + "value": 0.2 + }, + { + "name": "Beam damages", + "paramName": "BeamDamages", + "value": 15 + }, + { + "name": "Beam frequency", + "paramName": "BeamFrequency", + "value": -0.5 + }, + { + "name": "2 Horizontal beams", + "paramName": "laserOnX", + "value": 1 + }, + { + "name": "2 Vertical beams", + "paramName": "laserOnY", + "value": 1 + }, + { + "name": "Swords' Halo radius", + "paramName": "SwordsHaloRadius", + "value": 0.1 + }, + { + "name": "Swords damages", + "paramName": "SwordsDamages", + "value": 25 + }, + { + "name": "Swords quantity", + "paramName": "SwordsQuantity", + "value": 1 + }, + { + "name": "Arrow damages", + "paramName": "ArrowDamages", + "value": 15 + }, + { + "name": "Arrow range", + "paramName": "ArrowRange", + "value": 1 + }, + { + "name": "Arrow frequency", + "paramName": "ArrowFrequency", + "value": -0.5 + } + ] +} diff --git a/Assets/Resources/upgrades.json.meta b/Assets/Resources/upgrades.json.meta new file mode 100644 index 0000000..876172f --- /dev/null +++ b/Assets/Resources/upgrades.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aaa2ab8454f62084e836d4c194574793 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 431cd2d..a13e151 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -286,125 +286,15 @@ PrefabInstance: propertyPath: m_Name value: Start UI objectReference: {fileID: 0} + - target: {fileID: 6939379890176807053, guid: 4ce1de8b166656e4a97422e7ac85530b, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 4ce1de8b166656e4a97422e7ac85530b, type: 3} ---- !u!1001 &1521100303 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1374640533067853523, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_Name - value: Minautor - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalPosition.x - value: -4.1252995 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalPosition.y - value: -1.4422002 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2275453484761280344, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5115e3c062ab0d94c993c9a01963c9bb, type: 3} ---- !u!1001 &1803491063 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 6061697268588932327, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_Name - value: Mayor - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalPosition.x - value: -4.53618 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalPosition.y - value: 0.03178945 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8999614972709205858, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 797fec3354cfff54e95743a263e79f8f, type: 3} --- !u!1001 &5393968438828368982 PrefabInstance: m_ObjectHideFlags: 0 @@ -413,20 +303,20 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 3553905824341430, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} - propertyPath: initialSwordsCount - value: 5 + - target: {fileID: 1161238801143918071, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 1784956759114531697, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} propertyPath: m_Name value: Player objectReference: {fileID: 0} - - target: {fileID: 2991086602376010793, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} - propertyPath: laserOnX + - target: {fileID: 3552072345333957438, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} - - target: {fileID: 2991086602376010793, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} - propertyPath: laserOnY + - target: {fileID: 3599206546858926089, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size value: 0 objectReference: {fileID: 0} - target: {fileID: 3622515600777588477, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} @@ -469,9 +359,25 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 4281658155561392569, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} - propertyPath: m_AdditionalShaderChannelsFlag - value: 25 + - target: {fileID: 7600806342610375037, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: upgrades.upgrades.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8339747699126584523, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: laserOnY + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8339747699126584523, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: BeamFrequency + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8872681192320925159, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8872681192320925159, guid: 05d927a24df204541afbb77f1af3a9a2, type: 3} + propertyPath: m_LocalPosition.y + value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -541,7 +447,5 @@ SceneRoots: m_Roots: - {fileID: 519420032} - {fileID: 5393968438828368982} - - {fileID: 1803491063} - {fileID: 5921508570549303515} - {fileID: 1252793503} - - {fileID: 1521100303} diff --git a/Assets/UI/Upgrade Screen.meta b/Assets/UI/Upgrade Screen.meta new file mode 100644 index 0000000..18a6f48 --- /dev/null +++ b/Assets/UI/Upgrade Screen.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 47fcba8703a71c54ba2a75bf1ecc6db0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/Upgrade Screen/Upgrade Screen.cs b/Assets/UI/Upgrade Screen/Upgrade Screen.cs new file mode 100644 index 0000000..e6510dd --- /dev/null +++ b/Assets/UI/Upgrade Screen/Upgrade Screen.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +using Random = UnityEngine.Random; + +[RequireComponent(typeof(UpgradesData))] +public class UpgradeScreen : MonoBehaviour +{ + [SerializeField] + private List