Updated unity

This commit is contained in:
Stedd 2023-10-28 18:09:02 +02:00
parent f897529e82
commit 37d0e02368
46 changed files with 115 additions and 326 deletions

View File

@ -5,10 +5,9 @@
"GUID:6055be8ebefd69e48b49212b09b47b2f", "GUID:6055be8ebefd69e48b49212b09b47b2f",
"GUID:75469ad4d38634e559750d17036d5f7c", "GUID:75469ad4d38634e559750d17036d5f7c",
"GUID:f008ecc6829887e478aeb5eb004eb01b", "GUID:f008ecc6829887e478aeb5eb004eb01b",
"GUID:17a5862fcd6383b4b97bad4dcb1e2e5d",
"GUID:f26d68a0bdefa1043b120b820f55e190", "GUID:f26d68a0bdefa1043b120b820f55e190",
"GUID:eb3099ff524d60545a136315a154d67b", "GUID:5d38ea13ae8f69a4395d425d401a557a",
"GUID:5d38ea13ae8f69a4395d425d401a557a" "GUID:63ebd60d5c68886498ecfee04b5d6a12"
], ],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],

@ -1 +1 @@
Subproject commit da8824120466499158fc1765333175b865aa0f82 Subproject commit b031ed3db7b4a08253cf5fcf25059ad299fddaa0

View File

@ -541,8 +541,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_activeTargetableRuntimeSet: {fileID: 11400000, guid: 85e03587d1a940f438ceac70a3d544d5, type: 2} _activeTargetableRuntimeSet: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2}
<Damageable>k__BackingField: {fileID: 0} <Damageable>k__BackingField: {fileID: 4299120351774448665}
_centerPosition: {fileID: 2513054780709503419} _centerPosition: {fileID: 2513054780709503419}
_basePosition: {fileID: 561887346552595101} _basePosition: {fileID: 561887346552595101}
<Collider>k__BackingField: {fileID: 2425760649276150986} <Collider>k__BackingField: {fileID: 2425760649276150986}
@ -617,8 +617,6 @@ MonoBehaviour:
<Damageable>k__BackingField: {fileID: 4299120351774448665} <Damageable>k__BackingField: {fileID: 4299120351774448665}
<Targetable>k__BackingField: {fileID: 4816616723634589559} <Targetable>k__BackingField: {fileID: 4816616723634589559}
_uiFriendlyName: Enemy _uiFriendlyName: Enemy
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
_enemyBaseSet: {fileID: 11400000, guid: e5f25127d92be074aac6e7b745fae107, type: 2}
<Weapons>k__BackingField: <Weapons>k__BackingField:
- {fileID: 5154912354327310122} - {fileID: 5154912354327310122}
- {fileID: 5217425462754499093} - {fileID: 5217425462754499093}
@ -935,7 +933,7 @@ MonoBehaviour:
_targeterConfig: {fileID: 11400000, guid: d5813a38da3962d4498fc71ef33361b6, type: 2} _targeterConfig: {fileID: 11400000, guid: d5813a38da3962d4498fc71ef33361b6, type: 2}
_range: 0 _range: 0
_targetStrategy: 0 _targetStrategy: 0
_activeTargetable: {fileID: 0} _activeTargetable: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2}
_targeterParent: {fileID: 4816616723634589559} _targeterParent: {fileID: 4816616723634589559}
<TargetEntity>k__BackingField: {fileID: 0} <TargetEntity>k__BackingField: {fileID: 0}
--- !u!1 &7670619634857166053 --- !u!1 &7670619634857166053

View File

@ -15,4 +15,4 @@ MonoBehaviour:
_maxRange: 30 _maxRange: 30
_minRange: 0.5 _minRange: 0.5
_selectedTargetStrategy: 0 _selectedTargetStrategy: 0
_activeEntities: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} _activeEntities: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2}

View File

@ -2,7 +2,8 @@
"name": "Entities", "name": "Entities",
"rootNamespace": "AsteroidGame", "rootNamespace": "AsteroidGame",
"references": [ "references": [
"GUID:5d38ea13ae8f69a4395d425d401a557a" "GUID:5d38ea13ae8f69a4395d425d401a557a",
"GUID:63ebd60d5c68886498ecfee04b5d6a12"
], ],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],

View File

@ -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: []

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: e5f25127d92be074aac6e7b745fae107
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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: []

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c5542e77624472441a67b1f34e19a116
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -9,7 +9,6 @@ MonoBehaviour:
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3c46c7dedba14f3da958a2e6a3d3feaa, type: 3} m_Script: {fileID: 11500000, guid: 1e1a04865d154864c97344bae176e489, type: 3}
m_Name: ActivePowerStructures m_Name: ActivePowerStructures
m_EditorClassIdentifier: m_EditorClassIdentifier:
_list: []

View File

@ -9,7 +9,6 @@ MonoBehaviour:
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9da2d6a0206101c47a22881a0ba2ece2, type: 3} m_Script: {fileID: 11500000, guid: b73ccf581b4b8ca4fa9c4e0a61cdd6be, type: 3}
m_Name: ActiveStructureEntities m_Name: ActiveStructureEntities
m_EditorClassIdentifier: m_EditorClassIdentifier:
_list: []

View File

@ -9,7 +9,7 @@ MonoBehaviour:
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7d76ef79c960c1845a914468e30d036b, type: 3} m_Script: {fileID: 0}
m_Name: ActiveTargetableBuildings m_Name: ActiveTargetableBuildings
m_EditorClassIdentifier: m_EditorClassIdentifier: CoreSystems:GameDev.CoreSystems:SoTargetableRuntimeSet
_list: [] _list: []

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: dda2fd5e970bbd642a5ceead1e82783c guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000

View File

@ -9,7 +9,7 @@ MonoBehaviour:
m_GameObject: {fileID: 0} m_GameObject: {fileID: 0}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7d76ef79c960c1845a914468e30d036b, type: 3} m_Script: {fileID: 0}
m_Name: ActiveTargetableEnemies m_Name: ActiveTargetableEnemies
m_EditorClassIdentifier: m_EditorClassIdentifier: CoreSystems:GameDev.CoreSystems:SoTargetableRuntimeSet
_list: [] _list: []

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 85e03587d1a940f438ceac70a3d544d5 guid: ab93dbcc7e973184b896173796edc5ac
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000

View File

@ -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<EnemyBase>
{
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 33f48df2d03212c4986fe2c47c5de796
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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<EntityBase>
{
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 9da2d6a0206101c47a22881a0ba2ece2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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<PowerBase>
{
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 3c46c7dedba14f3da958a2e6a3d3feaa
timeCreated: 1665006553

View File

@ -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;
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 87159085b5778b14482ec38673729d95
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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<StructureBase>
{
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: fbc6f67c9903cc8448f793da64d840cf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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
};
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 02781660543c12d4ebddaf334eb0d730
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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;
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 19bf3f6dd184a48499aff1db728edfcd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -8,8 +8,6 @@ namespace AsteroidGame.Entities
{ {
public class EnemyBase : EntityBase public class EnemyBase : EntityBase
{ {
[SerializeField] private SoEntityBaseRuntimeSet _enemyBaseSet;
[field: Header("Weapon")] [field: Header("Weapon")]
[field: SerializeField] public List<Weapon> Weapons { get; set; } [field: SerializeField] public List<Weapon> Weapons { get; set; }
@ -19,12 +17,8 @@ namespace AsteroidGame.Entities
[field: Header("NavMeshAgent")] [field: Header("NavMeshAgent")]
[SerializeField] private NavMeshAgent _navMeshAgent; [SerializeField] private NavMeshAgent _navMeshAgent;
protected override void OnEnable() protected void OnEnable()
{ {
base.OnEnable();
_enemyBaseSet.Add(this);
InitializeTargeter(); InitializeTargeter();
InitializeNavMeshAgent(); InitializeNavMeshAgent();
@ -50,12 +44,6 @@ namespace AsteroidGame.Entities
//_navMeshAgent.speed = 0.1f; //_navMeshAgent.speed = 0.1f;
} }
protected override void OnDisable()
{
base.OnDisable();
_enemyBaseSet.Remove(this);
}
private void Update() private void Update()
{ {
if (Targeter.FindTarget()) if (Targeter.FindTarget())

View File

@ -15,8 +15,6 @@ namespace AsteroidGame.Entities
[Header("UI")] [Header("UI")]
[SerializeField] protected string _uiFriendlyName; [SerializeField] protected string _uiFriendlyName;
[Space]
[SerializeField] private SoEntityBaseRuntimeSet _entityBaseSet;
#region Props #region Props
@ -33,16 +31,6 @@ namespace AsteroidGame.Entities
AssignDamageable(); AssignDamageable();
} }
protected virtual void OnEnable()
{
_entityBaseSet.Add(this);
}
protected virtual void OnDisable()
{
_entityBaseSet.Remove(this);
}
private void InitializeDamageable() private void InitializeDamageable()
{ {
if (Damageable != null) return; if (Damageable != null) return;

View File

@ -1,3 +1,6 @@
//using AsteroidGame.ScriptableObjects;
using System;
using AsteroidGame.ScriptableObjects; using AsteroidGame.ScriptableObjects;
using GameDev.CoreSystems; using GameDev.CoreSystems;
using UnityEngine; using UnityEngine;
@ -12,11 +15,25 @@ namespace AsteroidGame.Entities
[SerializeField] protected int _maxPower; [SerializeField] protected int _maxPower;
[SerializeField] protected int _currentPower; [SerializeField] protected int _currentPower;
[SerializeField] private SoPowerSystemRuntimeSet _powerBaseSet;
public void SetConfig(SoPowerConfig config) public void SetConfig(SoPowerConfig config)
{ {
_isGenerator = config.isGenerator; _isGenerator = config.isGenerator;
_isConsumer = config.isConsumer; _isConsumer = config.isConsumer;
_maxPower = config.maxPower; _maxPower = config.maxPower;
_powerBaseSet = config._runtimeSet;
_powerBaseSet.Add(this);
}
private void OnEnable()
{
_powerBaseSet.Add(this);
}
private void OnDisable()
{
_powerBaseSet.Remove(this);
} }
#region Setters #region Setters

View File

@ -1,4 +1,3 @@
using AsteroidGame.ScriptableObjects;
using GameDev.CoreSystems; using GameDev.CoreSystems;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
@ -40,7 +39,7 @@ namespace AsteroidGame.Entities
var currentBestValue = Mathf.Infinity; var currentBestValue = Mathf.Infinity;
var targetFound = false; var targetFound = false;
foreach (var targetEntity in _activeTargetable._list) foreach (var targetEntity in _activeTargetable)
{ {
var distanceToTarget = var distanceToTarget =
Vector3.Magnitude(targetEntity.GetCenterPosition() - _targeterParent.GetCenterPosition()); Vector3.Magnitude(targetEntity.GetCenterPosition() - _targeterParent.GetCenterPosition());

View File

@ -49,14 +49,11 @@ MonoBehaviour:
<Damageable>k__BackingField: {fileID: 4803755810606958043} <Damageable>k__BackingField: {fileID: 4803755810606958043}
<Targetable>k__BackingField: {fileID: 4098794156838288170} <Targetable>k__BackingField: {fileID: 4098794156838288170}
_uiFriendlyName: Power\nPlant _uiFriendlyName: Power\nPlant
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
_cost: 100 _cost: 100
_buildPlacementBlocked: 0 _buildPlacementBlocked: 0
_buildTimer: 0 _buildTimer: 0
_structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2} _structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2}
_powerBaseSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}
_powerConfig: {fileID: 11400000, guid: 742a00ce6f6a8e04cae160bc40f09e24, type: 2} _powerConfig: {fileID: 11400000, guid: 742a00ce6f6a8e04cae160bc40f09e24, type: 2}
_power: {fileID: 0}
--- !u!1 &1139200854042314162 --- !u!1 &1139200854042314162
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -102,7 +99,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_activeTargetableRuntimeSet: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} _activeTargetableRuntimeSet: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2}
<Damageable>k__BackingField: {fileID: 0} <Damageable>k__BackingField: {fileID: 0}
_centerPosition: {fileID: 4810890945869411434} _centerPosition: {fileID: 4810890945869411434}
_basePosition: {fileID: 4377705888661834325} _basePosition: {fileID: 4377705888661834325}

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3} m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3}
m_Name: PowerplantPowerConfiguration m_Name: PowerplantPowerConfiguration
m_EditorClassIdentifier: m_EditorClassIdentifier:
_activePowerStructures: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}
isGenerator: 1 isGenerator: 1
isConsumer: 0 isConsumer: 0
maxPower: 100 maxPower: 100
_runtimeSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}

View File

@ -1,29 +1,29 @@
using AsteroidGame.ScriptableObjects;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
using ScriptableObjectArchitecture;
namespace AsteroidGame.Entities namespace AsteroidGame.Entities
{ {
public class Disabler : MonoBehaviour public class Disabler : MonoBehaviour
{ {
[FormerlySerializedAs("Set")] [FormerlySerializedAs("Set")]
[SerializeField] private SoStructureBaseRuntimeSet _set; [SerializeField] private GameObjectCollection _set;
[ContextMenu("Disable All")] [ContextMenu("Disable All")]
public void DisableAll() public void DisableAll()
{ {
// Loop backwards since the list may change when disabling // 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")] [ContextMenu("Disable Random")]
public void DisableRandom() public void DisableRandom()
{ {
int index = Random.Range(0, _set._list.Count); int index = Random.Range(0, _set.Count);
_set._list[index].gameObject.SetActive(false); _set[index].gameObject.gameObject.SetActive(false);
} }
} }
} }

View File

@ -1,4 +1,3 @@
using AsteroidGame.ScriptableObjects;
using GameDev.CoreSystems; using GameDev.CoreSystems;
using UnityEngine; using UnityEngine;
@ -12,23 +11,21 @@ namespace AsteroidGame.Entities
[SerializeField] protected float _buildTimer; [SerializeField] protected float _buildTimer;
[Header("Configuration")] [Header("Configuration")]
[SerializeField] private SoEntityBaseRuntimeSet _structureBaseSet; [SerializeField] private SoBuildableRuntimeSet _structureBaseSet;
[SerializeField] private SoPowerBaseRuntimeSet _powerBaseSet;
[Header("Power")] [Header("Power")]
[SerializeField] private SoPowerConfig _powerConfig; [SerializeField] private SoPowerConfig _powerConfig;
[SerializeField] private PowerBase _power; [SerializeField] private IPowerSystem _power;
#region Publics #region Publics
public PowerBase Power => _power; public IPowerSystem Power => _power;
public bool BuildPlacementBlocked => _buildPlacementBlocked; public bool BuildPlacementBlocked => _buildPlacementBlocked;
#endregion #endregion
protected override void OnEnable() protected void OnEnable()
{ {
base.OnEnable();
_structureBaseSet.Add(this); _structureBaseSet.Add(this);
InitializePower(); InitializePower();
} }
@ -37,15 +34,11 @@ namespace AsteroidGame.Entities
{ {
_power = gameObject.AddComponent<PowerBase>(); _power = gameObject.AddComponent<PowerBase>();
_power.SetConfig(_powerConfig); _power.SetConfig(_powerConfig);
_powerBaseSet.Add(_power);
} }
protected override void OnDisable() protected void OnDisable()
{ {
base.OnDisable();
_structureBaseSet.Remove(this); _structureBaseSet.Remove(this);
_powerBaseSet.Remove(_power);
} }
private void OnTriggerStay(Collider other) private void OnTriggerStay(Collider other)

View File

@ -21,7 +21,7 @@ namespace AsteroidGame.Entities
[field: Header("Targeter")] [field: Header("Targeter")]
[field: SerializeField] public Targeter Targeter { get; set; } [field: SerializeField] public Targeter Targeter { get; set; }
protected override void OnEnable() protected void OnEnable()
{ {
base.OnEnable(); base.OnEnable();
InitializeTargeter(); InitializeTargeter();

View File

@ -80,8 +80,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3} m_Script: {fileID: 11500000, guid: 8410932d22e18624787af61d3a4cd191, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_activeTargetableRuntimeSet: {fileID: 11400000, guid: dda2fd5e970bbd642a5ceead1e82783c, type: 2} _activeTargetableRuntimeSet: {fileID: 11400000, guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4, type: 2}
<Damageable>k__BackingField: {fileID: 0} <Damageable>k__BackingField: {fileID: 3620345197547817675}
_centerPosition: {fileID: 6894291031605712785} _centerPosition: {fileID: 6894291031605712785}
_basePosition: {fileID: 9116849480152445015} _basePosition: {fileID: 9116849480152445015}
<Collider>k__BackingField: {fileID: 6912639667868447711} <Collider>k__BackingField: {fileID: 6912639667868447711}
@ -943,7 +943,7 @@ MonoBehaviour:
_targeterConfig: {fileID: 11400000, guid: 9df40bc219ab8f04cb4e86558bc0df86, type: 2} _targeterConfig: {fileID: 11400000, guid: 9df40bc219ab8f04cb4e86558bc0df86, type: 2}
_range: 0 _range: 0
_targetStrategy: 0 _targetStrategy: 0
_activeTargetable: {fileID: 0} _activeTargetable: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2}
_targeterParent: {fileID: 0} _targeterParent: {fileID: 0}
<TargetEntity>k__BackingField: {fileID: 0} <TargetEntity>k__BackingField: {fileID: 0}
--- !u!1 &8385032484663529878 --- !u!1 &8385032484663529878
@ -1136,14 +1136,11 @@ MonoBehaviour:
<Damageable>k__BackingField: {fileID: 3620345197547817675} <Damageable>k__BackingField: {fileID: 3620345197547817675}
<Targetable>k__BackingField: {fileID: 3738931345656042189} <Targetable>k__BackingField: {fileID: 3738931345656042189}
_uiFriendlyName: Turret _uiFriendlyName: Turret
_entityBaseSet: {fileID: 11400000, guid: c5542e77624472441a67b1f34e19a116, type: 2}
_cost: 10 _cost: 10
_buildPlacementBlocked: 0 _buildPlacementBlocked: 0
_buildTimer: 0 _buildTimer: 0
_structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2} _structureBaseSet: {fileID: 11400000, guid: 1925957d2bc2f0c4a9210131f2d2c4e5, type: 2}
_powerBaseSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}
_powerConfig: {fileID: 11400000, guid: 9dc2a0f5f29a11a4d9cabe19e18bdd42, type: 2} _powerConfig: {fileID: 11400000, guid: 9dc2a0f5f29a11a4d9cabe19e18bdd42, type: 2}
_power: {fileID: 0}
_damage: 1 _damage: 1
_fireRate: 1 _fireRate: 1
_projectileSpeed: 5 _projectileSpeed: 5

View File

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3} m_Script: {fileID: 11500000, guid: 87159085b5778b14482ec38673729d95, type: 3}
m_Name: TurretPowerConfiguration m_Name: TurretPowerConfiguration
m_EditorClassIdentifier: m_EditorClassIdentifier:
_activePowerStructures: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}
isGenerator: 0 isGenerator: 0
isConsumer: 1 isConsumer: 1
maxPower: 10 maxPower: 10
_runtimeSet: {fileID: 11400000, guid: 127d26f1f3536e94da36af662f63fa0b, type: 2}

View File

@ -15,4 +15,4 @@ MonoBehaviour:
_maxRange: 15 _maxRange: 15
_minRange: 0.5 _minRange: 0.5
_selectedTargetStrategy: 0 _selectedTargetStrategy: 0
_activeEntities: {fileID: 11400000, guid: 85e03587d1a940f438ceac70a3d544d5, type: 2} _activeEntities: {fileID: 11400000, guid: ab93dbcc7e973184b896173796edc5ac, type: 2}

View File

@ -1,4 +1,5 @@
using AsteroidGame.ScriptableObjects; using AsteroidGame.ScriptableObjects;
using ScriptableObjectArchitecture;
using UnityEngine; using UnityEngine;
namespace AsteroidGame.Handlers namespace AsteroidGame.Handlers
@ -13,6 +14,6 @@ namespace AsteroidGame.Handlers
[SerializeField] private SoEnemyBaseList _availableEnemies; [SerializeField] private SoEnemyBaseList _availableEnemies;
[Header("Lists")] [Header("Lists")]
[SerializeField] private SoEntityBaseRuntimeSet _activeEnemies; [SerializeField] private GameObjectCollection _activeEnemies;
} }
} }

View File

@ -1,5 +1,6 @@
using System; using System;
using AsteroidGame.ScriptableObjects; using GameDev.CoreSystems;
using ScriptableObjectArchitecture;
using UnityEngine; using UnityEngine;
namespace AsteroidGame.Handlers namespace AsteroidGame.Handlers
@ -13,7 +14,7 @@ namespace AsteroidGame.Handlers
[SerializeField] private float _powerFactor; [SerializeField] private float _powerFactor;
[Header("Connections")] [Header("Connections")]
[SerializeField] private SoPowerBaseRuntimeSet _activePowerStructures; [SerializeField] private SoPowerSystemRuntimeSet _activePowerStructures;
private void Update() private void Update()
@ -21,7 +22,7 @@ namespace AsteroidGame.Handlers
_powerConsumption = 0; _powerConsumption = 0;
_powerConsumptionPeak = 0; _powerConsumptionPeak = 0;
_powerCapacity = 0; _powerCapacity = 0;
foreach (var structure in _activePowerStructures._list) foreach (var structure in _activePowerStructures)
{ {
if (structure.IsConsumer) if (structure.IsConsumer)
{ {

View File

@ -10,6 +10,7 @@
"com.unity.test-framework": "1.1.33", "com.unity.test-framework": "1.1.33",
"com.unity.textmeshpro": "3.0.6", "com.unity.textmeshpro": "3.0.6",
"com.unity.timeline": "1.7.5", "com.unity.timeline": "1.7.5",
"com.unity.toolchain.linux-x86_64": "2.0.9",
"com.unity.ugui": "1.0.0", "com.unity.ugui": "1.0.0",
"com.unity.ui": "2.0.0", "com.unity.ui": "2.0.0",
"com.unity.ui.builder": "2.0.0", "com.unity.ui.builder": "2.0.0",

View File

@ -10,11 +10,12 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.burst": { "com.unity.burst": {
"version": "1.8.8", "version": "1.8.18",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.1" "com.unity.mathematics": "1.2.1",
"com.unity.modules.jsonserialize": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
@ -37,18 +38,18 @@
"depth": 0, "depth": 0,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.ide.visualstudio": "2.0.18", "com.unity.ide.visualstudio": "2.0.22",
"com.unity.ide.rider": "3.0.24", "com.unity.ide.rider": "3.0.31",
"com.unity.ide.vscode": "1.2.5", "com.unity.ide.vscode": "1.2.5",
"com.unity.editorcoroutines": "1.0.0", "com.unity.editorcoroutines": "1.0.0",
"com.unity.performance.profile-analyzer": "1.2.2", "com.unity.performance.profile-analyzer": "1.2.2",
"com.unity.test-framework": "1.1.33", "com.unity.test-framework": "1.1.33",
"com.unity.testtools.codecoverage": "1.2.4" "com.unity.testtools.codecoverage": "1.2.6"
} }
}, },
"com.unity.ide.rider": { "com.unity.ide.rider": {
"version": "3.0.25", "version": "3.0.31",
"depth": 0, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.ext.nunit": "1.0.6" "com.unity.ext.nunit": "1.0.6"
@ -56,8 +57,8 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.ide.visualstudio": { "com.unity.ide.visualstudio": {
"version": "2.0.21", "version": "2.0.22",
"depth": 0, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.test-framework": "1.1.9" "com.unity.test-framework": "1.1.9"
@ -95,7 +96,7 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.render-pipelines.core": { "com.unity.render-pipelines.core": {
"version": "14.0.8", "version": "14.0.11",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
@ -111,23 +112,23 @@
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.4", "com.unity.mathematics": "1.2.4",
"com.unity.burst": "1.8.4", "com.unity.burst": "1.8.9",
"com.unity.modules.video": "1.0.0", "com.unity.modules.video": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrain": "1.0.0",
"com.unity.render-pipelines.core": "14.0.8", "com.unity.render-pipelines.core": "14.0.11",
"com.unity.shadergraph": "14.0.8", "com.unity.shadergraph": "14.0.11",
"com.unity.visualeffectgraph": "14.0.8", "com.unity.visualeffectgraph": "14.0.11",
"com.unity.render-pipelines.high-definition-config": "14.0.8" "com.unity.render-pipelines.high-definition-config": "14.0.11"
} }
}, },
"com.unity.render-pipelines.high-definition-config": { "com.unity.render-pipelines.high-definition-config": {
"version": "14.0.8", "version": "14.0.11",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.render-pipelines.core": "14.0.8" "com.unity.render-pipelines.core": "14.0.11"
} }
}, },
"com.unity.searcher": { "com.unity.searcher": {
@ -145,14 +146,30 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.shadergraph": { "com.unity.shadergraph": {
"version": "14.0.8", "version": "14.0.11",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.render-pipelines.core": "14.0.8", "com.unity.render-pipelines.core": "14.0.11",
"com.unity.searcher": "4.9.2" "com.unity.searcher": "4.9.2"
} }
}, },
"com.unity.sysroot": {
"version": "2.0.10",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.sysroot.linux-x86_64": {
"version": "2.0.9",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10"
},
"url": "https://packages.unity.com"
},
"com.unity.test-framework": { "com.unity.test-framework": {
"version": "1.1.33", "version": "1.1.33",
"depth": 0, "depth": 0,
@ -165,7 +182,7 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.testtools.codecoverage": { "com.unity.testtools.codecoverage": {
"version": "1.2.4", "version": "1.2.6",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@ -188,13 +205,23 @@
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.director": "1.0.0", "com.unity.modules.director": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0" "com.unity.modules.particlesystem": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.toolchain.linux-x86_64": {
"version": "2.0.9",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.sysroot": "2.0.10",
"com.unity.sysroot.linux-x86_64": "2.0.9"
},
"url": "https://packages.unity.com"
},
"com.unity.ugui": { "com.unity.ugui": {
"version": "1.0.0", "version": "1.0.0",
"depth": 0, "depth": 0,
@ -217,12 +244,12 @@
"dependencies": {} "dependencies": {}
}, },
"com.unity.visualeffectgraph": { "com.unity.visualeffectgraph": {
"version": "14.0.8", "version": "14.0.11",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.shadergraph": "14.0.8", "com.unity.shadergraph": "14.0.11",
"com.unity.render-pipelines.core": "14.0.8" "com.unity.render-pipelines.core": "14.0.11"
} }
}, },
"com.unity.modules.ai": { "com.unity.modules.ai": {

View File

@ -7,6 +7,7 @@ VFXManager:
m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3} m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3}
m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3} m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3}
m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3} m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3}
m_EmptyShader: {fileID: 4800000, guid: 33a2079f6a2db4c4eb2e44b33f4ddf6b, type: 3}
m_RenderPipeSettingsPath: m_RenderPipeSettingsPath:
m_FixedTimeStep: 0.016666668 m_FixedTimeStep: 0.016666668
m_MaxDeltaTime: 0.05 m_MaxDeltaTime: 0.05