Dev/ScriptableObjectsRefactor #4
|
@ -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
|
|
@ -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
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
"name": "Entities",
|
"name": "Entities",
|
||||||
"rootNamespace": "AsteroidGame",
|
"rootNamespace": "AsteroidGame",
|
||||||
"references": [
|
"references": [
|
||||||
"GUID:5d38ea13ae8f69a4395d425d401a557a"
|
"GUID:5d38ea13ae8f69a4395d425d401a557a",
|
||||||
|
"GUID:63ebd60d5c68886498ecfee04b5d6a12"
|
||||||
],
|
],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
|
|
|
@ -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: []
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: e5f25127d92be074aac6e7b745fae107
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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: []
|
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c5542e77624472441a67b1f34e19a116
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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: []
|
|
||||||
|
|
|
@ -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: []
|
|
||||||
|
|
|
@ -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: []
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: dda2fd5e970bbd642a5ceead1e82783c
|
guid: 2f4ea1ba11a5a3740a0c828fd2fa47d4
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
||||||
|
|
|
@ -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: []
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 85e03587d1a940f438ceac70a3d544d5
|
guid: ab93dbcc7e973184b896173796edc5ac
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
||||||
|
|
|
@ -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>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 33f48df2d03212c4986fe2c47c5de796
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 9da2d6a0206101c47a22881a0ba2ece2
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3c46c7dedba14f3da958a2e6a3d3feaa
|
|
||||||
timeCreated: 1665006553
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 87159085b5778b14482ec38673729d95
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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>
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: fbc6f67c9903cc8448f793da64d840cf
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 02781660543c12d4ebddaf334eb0d730
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 19bf3f6dd184a48499aff1db728edfcd
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -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())
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
@ -32,17 +30,7 @@ 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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue