diff --git a/Assets/AsteroidGame.asmdef b/Assets/AsteroidGame.asmdef index 8bf3aa0..6657db9 100644 --- a/Assets/AsteroidGame.asmdef +++ b/Assets/AsteroidGame.asmdef @@ -5,10 +5,9 @@ "GUID:6055be8ebefd69e48b49212b09b47b2f", "GUID:75469ad4d38634e559750d17036d5f7c", "GUID:f008ecc6829887e478aeb5eb004eb01b", - "GUID:17a5862fcd6383b4b97bad4dcb1e2e5d", "GUID:f26d68a0bdefa1043b120b820f55e190", - "GUID:eb3099ff524d60545a136315a154d67b", - "GUID:5d38ea13ae8f69a4395d425d401a557a" + "GUID:5d38ea13ae8f69a4395d425d401a557a", + "GUID:63ebd60d5c68886498ecfee04b5d6a12" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/CoreSystems b/Assets/CoreSystems index da88241..b031ed3 160000 --- a/Assets/CoreSystems +++ b/Assets/CoreSystems @@ -1 +1 @@ -Subproject commit da8824120466499158fc1765333175b865aa0f82 +Subproject commit b031ed3db7b4a08253cf5fcf25059ad299fddaa0 diff --git a/Assets/Entities/Enemies/Enemy.prefab b/Assets/Entities/Enemies/Enemy.prefab index fd689bc..7538ad8 100644 --- a/Assets/Entities/Enemies/Enemy.prefab +++ b/Assets/Entities/Enemies/Enemy.prefab @@ -541,8 +541,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Name: m_EditorClassIdentifier: - _activeTargetableRuntimeSet: {fileID: 11400000, guid: 85e03587d1a940f438ceac70a3d544d5, type: 2} - k__BackingField: {fileID: 0} + _activeTargetableRuntimeSet: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2} + k__BackingField: {fileID: 4299120351774448665} _centerPosition: {fileID: 2513054780709503419} _basePosition: {fileID: 561887346552595101} k__BackingField: {fileID: 2425760649276150986} @@ -617,8 +617,6 @@ MonoBehaviour: k__BackingField: {fileID: 4299120351774448665} k__BackingField: {fileID: 4816616723634589559} _uiFriendlyName: Enemy - _entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2} - _enemyBaseSet: {fileID: 11400000, guid: e5f25127d92be074aac6e7b745fae107, type: 2} k__BackingField: - {fileID: 5154912354327310122} - {fileID: 5217425462754499093} @@ -935,7 +933,7 @@ MonoBehaviour: _targeterConfig: {fileID: 11400000, guid: d5813a38da3962d4498fc71ef33361b6, type: 2} _range: 0 _targetStrategy: 0 - _activeTargetable: {fileID: 0} + _activeTargetable: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2} _targeterParent: {fileID: 4816616723634589559} k__BackingField: {fileID: 0} --- !u!1 &7670619634857166053 diff --git a/Assets/Entities/Enemies/EnemyTargeterConfiguration.asset b/Assets/Entities/Enemies/EnemyTargeterConfiguration.asset index 8f3bd7d..f7f65e4 100644 --- a/Assets/Entities/Enemies/EnemyTargeterConfiguration.asset +++ b/Assets/Entities/Enemies/EnemyTargeterConfiguration.asset @@ -15,4 +15,4 @@ MonoBehaviour: _maxRange: 30 _minRange: 0.5 _selectedTargetStrategy: 0 - _activeEntities: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} + _activeEntities: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2} diff --git a/Assets/Entities/Entities.asmdef b/Assets/Entities/Entities.asmdef index 1414387..a38d77f 100644 --- a/Assets/Entities/Entities.asmdef +++ b/Assets/Entities/Entities.asmdef @@ -2,7 +2,8 @@ "name": "Entities", "rootNamespace": "AsteroidGame", "references": [ - "GUID:5d38ea13ae8f69a4395d425d401a557a" + "GUID:5d38ea13ae8f69a4395d425d401a557a", + "GUID:63ebd60d5c68886498ecfee04b5d6a12" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset b/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset deleted file mode 100644 index 4a341a8..0000000 --- a/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3} - m_Name: ActiveEnemyEntities - m_EditorClassIdentifier: - _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset.meta b/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset.meta deleted file mode 100644 index 05f995a..0000000 --- a/Assets/Entities/RuntimeSet/ActiveEnemyEntities.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e5f25127d92be074aac6e7b745fae107 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/RuntimeSet/ActiveEntities.asset b/Assets/Entities/RuntimeSet/ActiveEntities.asset deleted file mode 100644 index 4d2f144..0000000 --- a/Assets/Entities/RuntimeSet/ActiveEntities.asset +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3} - m_Name: ActiveEntities - m_EditorClassIdentifier: - _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveEntities.asset.meta b/Assets/Entities/RuntimeSet/ActiveEntities.asset.meta deleted file mode 100644 index f76b7df..0000000 --- a/Assets/Entities/RuntimeSet/ActiveEntities.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c5542e77624472441a67b1f34e19a116 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/RuntimeSet/ActivePowerStructures.asset b/Assets/Entities/RuntimeSet/ActivePowerStructures.asset index f01ab89..a5a61ec 100644 --- a/Assets/Entities/RuntimeSet/ActivePowerStructures.asset +++ b/Assets/Entities/RuntimeSet/ActivePowerStructures.asset @@ -9,7 +9,6 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3c46c7dedba14f3da958a2e6a3d3feaa, type: 3} + m_Script: {fileID: 11500000, guid: 1e1a04865d154864c97344bae176e489, type: 3} m_Name: ActivePowerStructures m_EditorClassIdentifier: - _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveStructureEntities.asset b/Assets/Entities/RuntimeSet/ActiveStructureEntities.asset index 7ef2ebd..95aabd4 100644 --- a/Assets/Entities/RuntimeSet/ActiveStructureEntities.asset +++ b/Assets/Entities/RuntimeSet/ActiveStructureEntities.asset @@ -9,7 +9,6 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3} + m_Script: {fileID: 11500000, guid: b73ccf581b4b8ca4fa9c4e0a61cdd6be, type: 3} m_Name: ActiveStructureEntities m_EditorClassIdentifier: - _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset b/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset index 45c4446..26b49b3 100644 --- a/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset +++ b/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d76ef79c960c1845a914468e30d036b, type: 3} + m_Script: {fileID: 0} m_Name: ActiveTargetableBuildings - m_EditorClassIdentifier: + m_EditorClassIdentifier: CoreSystems:GameDev.CoreSystems:SoTargetableRuntimeSet _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset.meta b/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset.meta index a1284c1..ea8ec98 100644 --- a/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset.meta +++ b/Assets/Entities/RuntimeSet/ActiveTargetableBuildings.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: dda2fd5e970bbd642a5ceead1e82783c +guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset b/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset index 6c761ad..a876800 100644 --- a/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset +++ b/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7d76ef79c960c1845a914468e30d036b, type: 3} + m_Script: {fileID: 0} m_Name: ActiveTargetableEnemies - m_EditorClassIdentifier: + m_EditorClassIdentifier: CoreSystems:GameDev.CoreSystems:SoTargetableRuntimeSet _list: [] diff --git a/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset.meta b/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset.meta index bc95ae3..47faae4 100644 --- a/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset.meta +++ b/Assets/Entities/RuntimeSet/ActiveTargetableEnemies.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 85e03587d1a940f438ceac70a3d544d5 +guid: ab93dbcc7e973184b896173796edc5ac NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs b/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs deleted file mode 100644 index 1d778cb..0000000 --- a/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs +++ /dev/null @@ -1,11 +0,0 @@ -using AsteroidGame.Entities; -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newEnemyBaseRuntimeSet", menuName = "RuntimeSet/EnemyBase")] - public class SoEnemyBaseRuntimeSet : SoRuntimeSet - { - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs.meta b/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs.meta deleted file mode 100644 index 2e05c60..0000000 --- a/Assets/Entities/ScriptableObjects/SoEnemyBaseRuntimeSet.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 33f48df2d03212c4986fe2c47c5de796 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs b/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs deleted file mode 100644 index 8b76909..0000000 --- a/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs +++ /dev/null @@ -1,11 +0,0 @@ -using AsteroidGame.Entities; -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newEntityBaseRuntimeSet", menuName = "RuntimeSet/EntityBase")] - public class SoEntityBaseRuntimeSet : SoRuntimeSet - { - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs.meta b/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs.meta deleted file mode 100644 index ce92792..0000000 --- a/Assets/Entities/ScriptableObjects/SoEntityBaseRuntimeSet.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9da2d6a0206101c47a22881a0ba2ece2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs b/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs deleted file mode 100644 index dab8630..0000000 --- a/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs +++ /dev/null @@ -1,11 +0,0 @@ -using AsteroidGame.Entities; -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newPowerBaseRuntimeSet", menuName = "RuntimeSet/PowerBase")] - public class SoPowerBaseRuntimeSet : SoRuntimeSet - { - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs.meta b/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs.meta deleted file mode 100644 index c05d2f4..0000000 --- a/Assets/Entities/ScriptableObjects/SoPowerBaseRuntimeSet.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3c46c7dedba14f3da958a2e6a3d3feaa -timeCreated: 1665006553 \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoPowerConfig.cs b/Assets/Entities/ScriptableObjects/SoPowerConfig.cs deleted file mode 100644 index 03dacd5..0000000 --- a/Assets/Entities/ScriptableObjects/SoPowerConfig.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newPowerConfiguration", menuName = "Configuration/Power")] - public class SoPowerConfig : ScriptableObject - { - public SoPowerBaseRuntimeSet _activePowerStructures; - public bool isGenerator; - public bool isConsumer; - public int maxPower; - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoPowerConfig.cs.meta b/Assets/Entities/ScriptableObjects/SoPowerConfig.cs.meta deleted file mode 100644 index ceb8c6e..0000000 --- a/Assets/Entities/ScriptableObjects/SoPowerConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 87159085b5778b14482ec38673729d95 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs b/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs deleted file mode 100644 index 0d01258..0000000 --- a/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs +++ /dev/null @@ -1,11 +0,0 @@ -using AsteroidGame.Entities; -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newStructureBaseRuntimeSet", menuName = "RuntimeSet/StructureBase")] - public class SoStructureBaseRuntimeSet : SoRuntimeSet - { - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs.meta b/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs.meta deleted file mode 100644 index c009ffc..0000000 --- a/Assets/Entities/ScriptableObjects/SoStructureBaseRuntimeSet.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fbc6f67c9903cc8448f793da64d840cf -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs b/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs deleted file mode 100644 index 8951174..0000000 --- a/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs +++ /dev/null @@ -1,22 +0,0 @@ -using GameDev.CoreSystems; -using UnityEngine; -using UnityEngine.Serialization; - -namespace AsteroidGame.ScriptableObjects -{ - [CreateAssetMenu(fileName = "newTargeterConfiguration", menuName = "Configuration/Targeter")] - public class SoTargeterConfig : ScriptableObject - { - [FormerlySerializedAs("_range")] - public float _maxRange; - public float _minRange; - public TargetStrategy _selectedTargetStrategy; - public SoTargetableRuntimeSet _activeEntities; - - public enum TargetStrategy - { - LowestRange, - LowestHealth - }; - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs.meta b/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs.meta deleted file mode 100644 index 5c2f0bb..0000000 --- a/Assets/Entities/ScriptableObjects/SoTargeterConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 02781660543c12d4ebddaf334eb0d730 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs b/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs deleted file mode 100644 index 2b656d3..0000000 --- a/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs +++ /dev/null @@ -1,23 +0,0 @@ -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - public class SoWeaponConfig : ScriptableObject, IWeapon - { - [SerializeField] private float _fireRate; - [SerializeField] private float _damage; - - public float FireRate - { - get => _fireRate; - set => _fireRate = value; - } - - public float Damage - { - get => _damage; - set => _damage = value; - } - } -} \ No newline at end of file diff --git a/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs.meta b/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs.meta deleted file mode 100644 index f7217fb..0000000 --- a/Assets/Entities/ScriptableObjects/SoWeaponConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19bf3f6dd184a48499aff1db728edfcd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Entities/Scripts/EnemyBase.cs b/Assets/Entities/Scripts/EnemyBase.cs index 9715f03..045e599 100644 --- a/Assets/Entities/Scripts/EnemyBase.cs +++ b/Assets/Entities/Scripts/EnemyBase.cs @@ -8,8 +8,6 @@ namespace AsteroidGame.Entities { public class EnemyBase : EntityBase { - [SerializeField] private SoEntityBaseRuntimeSet _enemyBaseSet; - [field: Header("Weapon")] [field: SerializeField] public List Weapons { get; set; } @@ -19,12 +17,8 @@ namespace AsteroidGame.Entities [field: Header("NavMeshAgent")] [SerializeField] private NavMeshAgent _navMeshAgent; - protected override void OnEnable() + protected void OnEnable() { - base.OnEnable(); - - _enemyBaseSet.Add(this); - InitializeTargeter(); InitializeNavMeshAgent(); @@ -50,12 +44,6 @@ namespace AsteroidGame.Entities //_navMeshAgent.speed = 0.1f; } - protected override void OnDisable() - { - base.OnDisable(); - _enemyBaseSet.Remove(this); - } - private void Update() { if (Targeter.FindTarget()) diff --git a/Assets/Entities/Scripts/EntityBase.cs b/Assets/Entities/Scripts/EntityBase.cs index ba9f087..8ae35ba 100644 --- a/Assets/Entities/Scripts/EntityBase.cs +++ b/Assets/Entities/Scripts/EntityBase.cs @@ -15,8 +15,6 @@ namespace AsteroidGame.Entities [Header("UI")] [SerializeField] protected string _uiFriendlyName; - [Space] - [SerializeField] private SoEntityBaseRuntimeSet _entityBaseSet; #region Props @@ -32,17 +30,7 @@ namespace AsteroidGame.Entities AssignDamageable(); } - - protected virtual void OnEnable() - { - _entityBaseSet.Add(this); - } - - protected virtual void OnDisable() - { - _entityBaseSet.Remove(this); - } - + private void InitializeDamageable() { if (Damageable != null) return; diff --git a/Assets/Entities/Scripts/PowerBase.cs b/Assets/Entities/Scripts/PowerBase.cs index 8feaa01..fe223fe 100644 --- a/Assets/Entities/Scripts/PowerBase.cs +++ b/Assets/Entities/Scripts/PowerBase.cs @@ -1,3 +1,6 @@ +//using AsteroidGame.ScriptableObjects; + +using System; using AsteroidGame.ScriptableObjects; using GameDev.CoreSystems; using UnityEngine; @@ -12,11 +15,25 @@ namespace AsteroidGame.Entities [SerializeField] protected int _maxPower; [SerializeField] protected int _currentPower; + [SerializeField] private SoPowerSystemRuntimeSet _powerBaseSet; + public void SetConfig(SoPowerConfig config) { _isGenerator = config.isGenerator; _isConsumer = config.isConsumer; _maxPower = config.maxPower; + _powerBaseSet = config._runtimeSet; + _powerBaseSet.Add(this); + } + + private void OnEnable() + { + _powerBaseSet.Add(this); + } + + private void OnDisable() + { + _powerBaseSet.Remove(this); } #region Setters diff --git a/Assets/Entities/Scripts/Targeter.cs b/Assets/Entities/Scripts/Targeter.cs index 9fc1d20..5d62f06 100644 --- a/Assets/Entities/Scripts/Targeter.cs +++ b/Assets/Entities/Scripts/Targeter.cs @@ -1,4 +1,3 @@ -using AsteroidGame.ScriptableObjects; using GameDev.CoreSystems; using UnityEngine; using UnityEngine.Serialization; @@ -40,7 +39,7 @@ namespace AsteroidGame.Entities var currentBestValue = Mathf.Infinity; var targetFound = false; - foreach (var targetEntity in _activeTargetable._list) + foreach (var targetEntity in _activeTargetable) { var distanceToTarget = Vector3.Magnitude(targetEntity.GetCenterPosition() - _targeterParent.GetCenterPosition()); diff --git a/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab b/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab index d6e963c..7758022 100644 --- a/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab +++ b/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab @@ -49,14 +49,11 @@ MonoBehaviour: k__BackingField: {fileID: 4803755810606958043} k__BackingField: {fileID: 4098794156838288170} _uiFriendlyName: Power\nPlant - _entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2} _cost: 100 _buildPlacementBlocked: 0 _buildTimer: 0 _structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2} - _powerBaseSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} _powerConfig: {fileID: 11400000, guid: 742a00ce6f6a8e04cae160bc40f09e24, type: 2} - _power: {fileID: 0} --- !u!1 &1139200854042314162 GameObject: m_ObjectHideFlags: 0 @@ -102,7 +99,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Name: m_EditorClassIdentifier: - _activeTargetableRuntimeSet: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} + _activeTargetableRuntimeSet: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2} k__BackingField: {fileID: 0} _centerPosition: {fileID: 4810890945869411434} _basePosition: {fileID: 4377705888661834325} diff --git a/Assets/Entities/Structures/PowerPlant/PowerplantPowerConfiguration.asset b/Assets/Entities/Structures/PowerPlant/PowerplantPowerConfiguration.asset index 341585f..7f1a015 100644 --- a/Assets/Entities/Structures/PowerPlant/PowerplantPowerConfiguration.asset +++ b/Assets/Entities/Structures/PowerPlant/PowerplantPowerConfiguration.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3} m_Name: PowerplantPowerConfiguration m_EditorClassIdentifier: - _activePowerStructures: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} isGenerator: 1 isConsumer: 0 maxPower: 100 + _runtimeSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} diff --git a/Assets/Entities/Structures/Scripts/Disabler.cs b/Assets/Entities/Structures/Scripts/Disabler.cs index 504c63c..9678f5e 100644 --- a/Assets/Entities/Structures/Scripts/Disabler.cs +++ b/Assets/Entities/Structures/Scripts/Disabler.cs @@ -1,29 +1,29 @@ -using AsteroidGame.ScriptableObjects; using UnityEngine; using UnityEngine.Serialization; +using ScriptableObjectArchitecture; namespace AsteroidGame.Entities { public class Disabler : MonoBehaviour { [FormerlySerializedAs("Set")] - [SerializeField] private SoStructureBaseRuntimeSet _set; + [SerializeField] private GameObjectCollection _set; [ContextMenu("Disable All")] public void DisableAll() { // Loop backwards since the list may change when disabling - for (int i = _set._list.Count - 1; i >= 0; i--) + for (int i = _set.Count - 1; i >= 0; i--) { - _set._list[i].gameObject.SetActive(false); + _set[i].gameObject.SetActive(false); } } [ContextMenu("Disable Random")] public void DisableRandom() { - int index = Random.Range(0, _set._list.Count); - _set._list[index].gameObject.SetActive(false); + int index = Random.Range(0, _set.Count); + _set[index].gameObject.gameObject.SetActive(false); } } } \ No newline at end of file diff --git a/Assets/Entities/Structures/Scripts/StructureBase.cs b/Assets/Entities/Structures/Scripts/StructureBase.cs index 17c2143..6bcdc7d 100644 --- a/Assets/Entities/Structures/Scripts/StructureBase.cs +++ b/Assets/Entities/Structures/Scripts/StructureBase.cs @@ -1,4 +1,3 @@ -using AsteroidGame.ScriptableObjects; using GameDev.CoreSystems; using UnityEngine; @@ -12,23 +11,21 @@ namespace AsteroidGame.Entities [SerializeField] protected float _buildTimer; [Header("Configuration")] - [SerializeField] private SoEntityBaseRuntimeSet _structureBaseSet; - [SerializeField] private SoPowerBaseRuntimeSet _powerBaseSet; + [SerializeField] private SoBuildableRuntimeSet _structureBaseSet; [Header("Power")] [SerializeField] private SoPowerConfig _powerConfig; - [SerializeField] private PowerBase _power; + [SerializeField] private IPowerSystem _power; #region Publics - public PowerBase Power => _power; + public IPowerSystem Power => _power; public bool BuildPlacementBlocked => _buildPlacementBlocked; #endregion - protected override void OnEnable() + protected void OnEnable() { - base.OnEnable(); _structureBaseSet.Add(this); InitializePower(); } @@ -37,15 +34,11 @@ namespace AsteroidGame.Entities { _power = gameObject.AddComponent(); _power.SetConfig(_powerConfig); - _powerBaseSet.Add(_power); - } - protected override void OnDisable() + protected void OnDisable() { - base.OnDisable(); _structureBaseSet.Remove(this); - _powerBaseSet.Remove(_power); } private void OnTriggerStay(Collider other) diff --git a/Assets/Entities/Structures/Turret/Turret.cs b/Assets/Entities/Structures/Turret/Turret.cs index ccf05d3..28e9117 100644 --- a/Assets/Entities/Structures/Turret/Turret.cs +++ b/Assets/Entities/Structures/Turret/Turret.cs @@ -21,7 +21,7 @@ namespace AsteroidGame.Entities [field: Header("Targeter")] [field: SerializeField] public Targeter Targeter { get; set; } - protected override void OnEnable() + protected void OnEnable() { base.OnEnable(); InitializeTargeter(); diff --git a/Assets/Entities/Structures/Turret/Turret.prefab b/Assets/Entities/Structures/Turret/Turret.prefab index b507970..c19d0af 100644 --- a/Assets/Entities/Structures/Turret/Turret.prefab +++ b/Assets/Entities/Structures/Turret/Turret.prefab @@ -80,8 +80,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Name: m_EditorClassIdentifier: - _activeTargetableRuntimeSet: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} - k__BackingField: {fileID: 0} + _activeTargetableRuntimeSet: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2} + k__BackingField: {fileID: 3620345197547817675} _centerPosition: {fileID: 6894291031605712785} _basePosition: {fileID: 9116849480152445015} k__BackingField: {fileID: 6912639667868447711} @@ -943,7 +943,7 @@ MonoBehaviour: _targeterConfig: {fileID: 11400000, guid: 9df40bc219ab8f04cb4e86558bc0df86, type: 2} _range: 0 _targetStrategy: 0 - _activeTargetable: {fileID: 0} + _activeTargetable: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2} _targeterParent: {fileID: 0} k__BackingField: {fileID: 0} --- !u!1 &8385032484663529878 @@ -1136,14 +1136,11 @@ MonoBehaviour: k__BackingField: {fileID: 3620345197547817675} k__BackingField: {fileID: 3738931345656042189} _uiFriendlyName: Turret - _entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2} _cost: 10 _buildPlacementBlocked: 0 _buildTimer: 0 _structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2} - _powerBaseSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} _powerConfig: {fileID: 11400000, guid: 9dc2a0f5f29a11a4d9cabe19e18bdd42, type: 2} - _power: {fileID: 0} _damage: 1 _fireRate: 1 _projectileSpeed: 5 diff --git a/Assets/Entities/Structures/Turret/TurretPowerConfiguration.asset b/Assets/Entities/Structures/Turret/TurretPowerConfiguration.asset index 25e6019..f415e55 100644 --- a/Assets/Entities/Structures/Turret/TurretPowerConfiguration.asset +++ b/Assets/Entities/Structures/Turret/TurretPowerConfiguration.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3} m_Name: TurretPowerConfiguration m_EditorClassIdentifier: - _activePowerStructures: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} isGenerator: 0 isConsumer: 1 maxPower: 10 + _runtimeSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2} diff --git a/Assets/Entities/Structures/Turret/TurretStandardTargeterConfiguration.asset b/Assets/Entities/Structures/Turret/TurretStandardTargeterConfiguration.asset index 1148d54..d1bf002 100644 --- a/Assets/Entities/Structures/Turret/TurretStandardTargeterConfiguration.asset +++ b/Assets/Entities/Structures/Turret/TurretStandardTargeterConfiguration.asset @@ -15,4 +15,4 @@ MonoBehaviour: _maxRange: 15 _minRange: 0.5 _selectedTargetStrategy: 0 - _activeEntities: {fileID: 11400000, guid: 85e03587d1a940f438ceac70a3d544d5, type: 2} + _activeEntities: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2} diff --git a/Assets/Handlers/EnemyHandler.cs b/Assets/Handlers/EnemyHandler.cs index 2f77c78..7d8b723 100644 --- a/Assets/Handlers/EnemyHandler.cs +++ b/Assets/Handlers/EnemyHandler.cs @@ -1,4 +1,5 @@ using AsteroidGame.ScriptableObjects; +using ScriptableObjectArchitecture; using UnityEngine; namespace AsteroidGame.Handlers @@ -13,6 +14,6 @@ namespace AsteroidGame.Handlers [SerializeField] private SoEnemyBaseList _availableEnemies; [Header("Lists")] - [SerializeField] private SoEntityBaseRuntimeSet _activeEnemies; + [SerializeField] private GameObjectCollection _activeEnemies; } } \ No newline at end of file diff --git a/Assets/Handlers/PowerHandler.cs b/Assets/Handlers/PowerHandler.cs index 5fcf96a..a65afe3 100644 --- a/Assets/Handlers/PowerHandler.cs +++ b/Assets/Handlers/PowerHandler.cs @@ -1,5 +1,6 @@ using System; -using AsteroidGame.ScriptableObjects; +using GameDev.CoreSystems; +using ScriptableObjectArchitecture; using UnityEngine; namespace AsteroidGame.Handlers @@ -13,7 +14,7 @@ namespace AsteroidGame.Handlers [SerializeField] private float _powerFactor; [Header("Connections")] - [SerializeField] private SoPowerBaseRuntimeSet _activePowerStructures; + [SerializeField] private SoPowerSystemRuntimeSet _activePowerStructures; private void Update() @@ -21,7 +22,7 @@ namespace AsteroidGame.Handlers _powerConsumption = 0; _powerConsumptionPeak = 0; _powerCapacity = 0; - foreach (var structure in _activePowerStructures._list) + foreach (var structure in _activePowerStructures) { if (structure.IsConsumer) {