Added some scriptable objects from AsteroidGame

This commit is contained in:
Stedd 2023-10-28 18:08:32 +02:00
parent c82e4960a8
commit b031ed3db7
16 changed files with 170 additions and 8 deletions

8
Configs.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 53030be49a9c3984fbb21dee5c9e1f8d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

13
Configs/SoPowerConfig.cs Normal file
View File

@ -0,0 +1,13 @@
using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newPowerConfiguration", menuName = "Configuration/Power")]
public class SoPowerConfig : ScriptableObject
{
public bool isGenerator;
public bool isConsumer;
public int maxPower;
public SoPowerSystemRuntimeSet _runtimeSet;
}
}

View File

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

View File

@ -0,0 +1,21 @@
using UnityEngine;
using UnityEngine.Serialization;
namespace GameDev.CoreSystems
{
[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

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

23
Configs/SoWeaponConfig.cs Normal file
View File

@ -0,0 +1,23 @@
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

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

View File

@ -3,15 +3,17 @@ namespace GameDev.CoreSystems
public interface IPowerSystem
{
public bool IsGenerator { get; }
public bool IsConsumer { get; }
public void SetMaxPower(int newValue);
public void SetConfig(SoPowerConfig config);
public int GetMaxPower();
public int GetCurrentPower();
public float GetPowerFactor();
}
}
}

View File

@ -5,7 +5,7 @@ namespace GameDev.CoreSystems
public interface ITargetable
{
public Vector3 GetCenterPosition();
public Vector3 GetBasePosition();
}
}
}

View File

@ -0,0 +1,10 @@
using ScriptableObjectArchitecture;
using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newBuildableRuntimeSet", menuName = "RuntimeSet/IBuildable")]
public class SoBuildableRuntimeSet : Collection<IBuildable>
{
}
}

View File

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

View File

@ -1,11 +1,10 @@
using ScriptableObjectArchitecture;
using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newDamageableRuntimeSet", menuName = "RuntimeSet/Damageable")]
public class SoDamageableRuntimeSet : Collection<Damageable>
[CreateAssetMenu(fileName = "newDamageableRuntimeSet", menuName = "RuntimeSet/IDamageable")]
public class SoDamageableRuntimeSet : Collection<IDamageable>
{
}
}

View File

@ -0,0 +1,10 @@
using ScriptableObjectArchitecture;
using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newPowerSystemRuntimeSet", menuName = "RuntimeSet/IPowerSystem")]
public class SoPowerSystemRuntimeSet : Collection<IPowerSystem>
{
}
}

View File

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

View File

@ -0,0 +1,10 @@
using ScriptableObjectArchitecture;
using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newWeaponRuntimeSet", menuName = "RuntimeSet/IWeapon")]
public class SoWeaponRuntimeSet : Collection<IWeapon>
{
}
}

View File

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