From f2355fc7825d8f09a407b31aaa4178b6fbdd3406 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sun, 8 Oct 2023 13:50:28 +0200 Subject: [PATCH] Moved scripts to submodule --- CoreSystems.asmdef | 16 ++++++++++++ CoreSystems.asmdef.meta | 7 ++++++ Interfaces.meta | 8 ++++++ Interfaces/IBuildable.cs | 8 ++++++ Interfaces/IBuildable.cs.meta | 11 +++++++++ Interfaces/IDamageable.cs | 31 +++++++++++++++++++++++ Interfaces/IDamageable.cs.meta | 11 +++++++++ Interfaces/IPowerSystem.cs | 17 +++++++++++++ Interfaces/IPowerSystem.cs.meta | 11 +++++++++ Interfaces/ITargetable.cs | 11 +++++++++ Interfaces/ITargetable.cs.meta | 11 +++++++++ Interfaces/IWeapon.cs | 8 ++++++ Interfaces/IWeapon.cs.meta | 3 +++ README.md.meta | 7 ++++++ Scripts.meta | 8 ++++++ Scripts/Damageable.cs | 44 +++++++++++++++++++++++++++++++++ Scripts/Damageable.cs.meta | 11 +++++++++ Scripts/Targetable.cs | 15 +++++++++++ Scripts/Targetable.cs.meta | 11 +++++++++ 19 files changed, 249 insertions(+) create mode 100644 CoreSystems.asmdef create mode 100644 CoreSystems.asmdef.meta create mode 100644 Interfaces.meta create mode 100644 Interfaces/IBuildable.cs create mode 100644 Interfaces/IBuildable.cs.meta create mode 100644 Interfaces/IDamageable.cs create mode 100644 Interfaces/IDamageable.cs.meta create mode 100644 Interfaces/IPowerSystem.cs create mode 100644 Interfaces/IPowerSystem.cs.meta create mode 100644 Interfaces/ITargetable.cs create mode 100644 Interfaces/ITargetable.cs.meta create mode 100644 Interfaces/IWeapon.cs create mode 100644 Interfaces/IWeapon.cs.meta create mode 100644 README.md.meta create mode 100644 Scripts.meta create mode 100644 Scripts/Damageable.cs create mode 100644 Scripts/Damageable.cs.meta create mode 100644 Scripts/Targetable.cs create mode 100644 Scripts/Targetable.cs.meta diff --git a/CoreSystems.asmdef b/CoreSystems.asmdef new file mode 100644 index 0000000..e5dfda9 --- /dev/null +++ b/CoreSystems.asmdef @@ -0,0 +1,16 @@ +{ + "name": "CoreSystems", + "rootNamespace": "AsteroidGame", + "references": [ + "GUID:eb3099ff524d60545a136315a154d67b" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/CoreSystems.asmdef.meta b/CoreSystems.asmdef.meta new file mode 100644 index 0000000..b81047b --- /dev/null +++ b/CoreSystems.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5d38ea13ae8f69a4395d425d401a557a +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces.meta b/Interfaces.meta new file mode 100644 index 0000000..3e7b162 --- /dev/null +++ b/Interfaces.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45bb6db30a5284f47ab4bf3079628eef +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces/IBuildable.cs b/Interfaces/IBuildable.cs new file mode 100644 index 0000000..28359ac --- /dev/null +++ b/Interfaces/IBuildable.cs @@ -0,0 +1,8 @@ +namespace AsteroidGame.CoreSystems +{ + public interface IBuildable + { + public int GetCost(); + public int SetCost(int newCost); + } +} \ No newline at end of file diff --git a/Interfaces/IBuildable.cs.meta b/Interfaces/IBuildable.cs.meta new file mode 100644 index 0000000..2cd13ee --- /dev/null +++ b/Interfaces/IBuildable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 99361805272d7f6419384097857e2bd6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces/IDamageable.cs b/Interfaces/IDamageable.cs new file mode 100644 index 0000000..1be36af --- /dev/null +++ b/Interfaces/IDamageable.cs @@ -0,0 +1,31 @@ +namespace AsteroidGame.CoreSystems +{ + public interface IDamageable + { + #region Methods + + public void ModifyHealth(int healthChange); + + #endregion + + #region Setters + + public void SetCurrentHealth(int newHealth); + + public void SetMaxHealth(int newHealth); + + public void SetInvulnerable(bool newState); + + #endregion + + #region Getters + + public int GetCurrentHealth(); + + public int GetMaxHealth(); + + public float GetHealthFactor(); + + #endregion + } +} \ No newline at end of file diff --git a/Interfaces/IDamageable.cs.meta b/Interfaces/IDamageable.cs.meta new file mode 100644 index 0000000..c2af229 --- /dev/null +++ b/Interfaces/IDamageable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0290b6d2e8462547a0d40b67a1076e3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces/IPowerSystem.cs b/Interfaces/IPowerSystem.cs new file mode 100644 index 0000000..2430d36 --- /dev/null +++ b/Interfaces/IPowerSystem.cs @@ -0,0 +1,17 @@ +namespace AsteroidGame.CoreSystems +{ + public interface IPowerSystem + { + public bool IsGenerator { get; } + + public bool IsConsumer { get; } + + public void SetMaxPower(int newValue); + + public int GetMaxPower(); + + public int GetCurrentPower(); + + public float GetPowerFactor(); + } +} diff --git a/Interfaces/IPowerSystem.cs.meta b/Interfaces/IPowerSystem.cs.meta new file mode 100644 index 0000000..16813a0 --- /dev/null +++ b/Interfaces/IPowerSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c3e9b410a74a04f4ab85e908d2a684a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces/ITargetable.cs b/Interfaces/ITargetable.cs new file mode 100644 index 0000000..c7880e4 --- /dev/null +++ b/Interfaces/ITargetable.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +namespace AsteroidGame.CoreSystems +{ + public interface ITargetable + { + public Vector3 GetCenterPosition(); + + public Vector3 GetBasePosition(); + } +} diff --git a/Interfaces/ITargetable.cs.meta b/Interfaces/ITargetable.cs.meta new file mode 100644 index 0000000..6d6d937 --- /dev/null +++ b/Interfaces/ITargetable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3d338501124dcf349b3852a83d20dbe4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Interfaces/IWeapon.cs b/Interfaces/IWeapon.cs new file mode 100644 index 0000000..2903ddd --- /dev/null +++ b/Interfaces/IWeapon.cs @@ -0,0 +1,8 @@ +namespace AsteroidGame.CoreSystems +{ + public interface IWeapon + { + public float FireRate { get; set; } + public float Damage { get; set; } + } +} \ No newline at end of file diff --git a/Interfaces/IWeapon.cs.meta b/Interfaces/IWeapon.cs.meta new file mode 100644 index 0000000..3c7920f --- /dev/null +++ b/Interfaces/IWeapon.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a4d06a75a5a64c83aa191a8610f5080f +timeCreated: 1664621279 \ No newline at end of file diff --git a/README.md.meta b/README.md.meta new file mode 100644 index 0000000..45ad2d5 --- /dev/null +++ b/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e7c9c9dd27534804094d63a678cdb663 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts.meta b/Scripts.meta new file mode 100644 index 0000000..56fc7e0 --- /dev/null +++ b/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ba0c810efb9bc34697d807fc63a2b84 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Damageable.cs b/Scripts/Damageable.cs new file mode 100644 index 0000000..7e22afe --- /dev/null +++ b/Scripts/Damageable.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace AsteroidGame.CoreSystems +{ + public class Damageable : MonoBehaviour, IDamageable + { + [field: Header("Health")] + [field: SerializeField] public int CurrentHealth { get; private set; } + [field: SerializeField] public int MaxHealth { get; private set; } + + [field: Header("Modifiers")] + [field: SerializeField] public bool IsInvulnerable { get; private set; } + + #region Methods + + public void ModifyHealth(int healthChange) + { + if (IsInvulnerable) return; + CurrentHealth += healthChange; + } + + #endregion + + #region Setters + + public void SetCurrentHealth(int newHealth) => CurrentHealth = newHealth; + + public void SetMaxHealth(int newHealth) => MaxHealth = newHealth; + + public void SetInvulnerable(bool newState) => IsInvulnerable = newState; + + #endregion + + #region Getters + + public int GetCurrentHealth() => CurrentHealth; + + public int GetMaxHealth() => MaxHealth; + + public float GetHealthFactor() => (float)CurrentHealth / (float)MaxHealth; + + #endregion + } +} \ No newline at end of file diff --git a/Scripts/Damageable.cs.meta b/Scripts/Damageable.cs.meta new file mode 100644 index 0000000..97b98f8 --- /dev/null +++ b/Scripts/Damageable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a845ca774f1a2d341b32451b100c0d1c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Targetable.cs b/Scripts/Targetable.cs new file mode 100644 index 0000000..9bd6924 --- /dev/null +++ b/Scripts/Targetable.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +namespace AsteroidGame.CoreSystems +{ + public class Targetable : MonoBehaviour, ITargetable + { + [Header("TargetPositions")] + [SerializeField] private Transform _centerPosition; + [SerializeField] private Transform _basePosition; + + public Vector3 GetCenterPosition() => _centerPosition.transform.position; + + public Vector3 GetBasePosition() => _basePosition.transform.position; + } +} \ No newline at end of file diff --git a/Scripts/Targetable.cs.meta b/Scripts/Targetable.cs.meta new file mode 100644 index 0000000..5452880 --- /dev/null +++ b/Scripts/Targetable.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8410932d22e18624787af61d3a4cd191 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: