From 4151ba005009424b114677815ee3283aab6c1812 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sat, 1 Oct 2022 13:14:33 +0200 Subject: [PATCH] Project cleanup --- .gitignore | 1 + Assets/Entities/Enemies/Enemy.prefab | 11 +- .../Entities/Enemies/Scripts/EnemyHealth.cs | 19 +- .../Entities/Enemies/Scripts/EnemyMovement.cs | 20 +- Assets/Entities/EntityBase.cs | 69 +-- .../Entities/Structures/AllStructures.asset | 17 + .../Structures/AllStructures.asset.meta | 8 + .../Structures/AvailableStructures.asset | 2 +- .../Structures/PowerPlant/PowerPlant.cs | 9 +- .../Structures/PowerPlant/PowerPlant.prefab | 26 +- .../Structures/ScriptableObjects.meta | 8 + .../ScriptableObjects/SWeaponConfig.cs | 23 + .../ScriptableObjects/SWeaponConfig.cs.meta | 11 + .../Structures/Scripts/StructureBase.cs | 78 ++- .../Scripts/StructureBaseScriptableObject.cs | 8 +- .../Structures/{Tower.meta => Turret.meta} | 0 Assets/Entities/Structures/Turret/Model.meta | 8 + .../Structures/{Tower => Turret/Model}/2.mtl | 0 .../{Tower => Turret/Model}/2.mtl.meta | 0 .../Structures/{Tower => Turret/Model}/2.obj | 0 .../{Tower => Turret/Model}/2.obj.meta | 0 .../Structures/{Tower => Turret}/Turret.cs | 73 +-- .../{Tower => Turret}/Turret.cs.meta | 0 .../{Tower => Turret}/Turret.prefab | 48 +- .../{Tower => Turret}/Turret.prefab.meta | 0 Assets/Handlers/BuildingHandler.cs | 64 +-- Assets/Handlers/BuildingHandler.prefab | 53 ++ Assets/Handlers/BuildingHandler.prefab.meta | 7 + Assets/Handlers/EnemyHandler.cs | 22 +- Assets/Handlers/EnemyHandler.prefab | 52 ++ Assets/Handlers/EnemyHandler.prefab.meta | 7 + Assets/Handlers/PowerHandler.cs | 48 +- Assets/Handlers/PowerHandler.prefab | 51 ++ Assets/Handlers/PowerHandler.prefab.meta | 7 + Assets/Handlers/ScoreHandler.cs | 26 +- Assets/Interfaces/IBuildable.cs | 5 +- Assets/Interfaces/IPowerSystem.cs | 4 +- Assets/Interfaces/IWeapon.cs | 8 + Assets/Interfaces/IWeapon.cs.meta | 3 + Assets/Scenes/Playground 1.unity | 452 +++++++++++------- Assets/Scripts/CameraController.cs | 140 +++--- Assets/UI/BuildMenuUiController.cs | 48 +- Assets/UI/BuildingButton.cs | 8 +- Assets/UI/UserInterface.prefab | 64 +++ Assets/UI/UserInterface.prefab.meta | 7 + Entities.csproj.DotSettings | 8 + 46 files changed, 959 insertions(+), 564 deletions(-) create mode 100644 Assets/Entities/Structures/AllStructures.asset create mode 100644 Assets/Entities/Structures/AllStructures.asset.meta create mode 100644 Assets/Entities/Structures/ScriptableObjects.meta create mode 100644 Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs create mode 100644 Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs.meta rename Assets/Entities/Structures/{Tower.meta => Turret.meta} (100%) create mode 100644 Assets/Entities/Structures/Turret/Model.meta rename Assets/Entities/Structures/{Tower => Turret/Model}/2.mtl (100%) rename Assets/Entities/Structures/{Tower => Turret/Model}/2.mtl.meta (100%) rename Assets/Entities/Structures/{Tower => Turret/Model}/2.obj (100%) rename Assets/Entities/Structures/{Tower => Turret/Model}/2.obj.meta (100%) rename Assets/Entities/Structures/{Tower => Turret}/Turret.cs (62%) rename Assets/Entities/Structures/{Tower => Turret}/Turret.cs.meta (100%) rename Assets/Entities/Structures/{Tower => Turret}/Turret.prefab (97%) rename Assets/Entities/Structures/{Tower => Turret}/Turret.prefab.meta (100%) create mode 100644 Assets/Handlers/BuildingHandler.prefab create mode 100644 Assets/Handlers/BuildingHandler.prefab.meta create mode 100644 Assets/Handlers/EnemyHandler.prefab create mode 100644 Assets/Handlers/EnemyHandler.prefab.meta create mode 100644 Assets/Handlers/PowerHandler.prefab create mode 100644 Assets/Handlers/PowerHandler.prefab.meta create mode 100644 Assets/Interfaces/IWeapon.cs create mode 100644 Assets/Interfaces/IWeapon.cs.meta create mode 100644 Assets/UI/UserInterface.prefab create mode 100644 Assets/UI/UserInterface.prefab.meta create mode 100644 Entities.csproj.DotSettings diff --git a/.gitignore b/.gitignore index 37088a8..a92b102 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ crashlytics-build.properties /[Aa]ssets/[Ss]treamingAssets/aa/* game_notes/.obsidian +.idea/.idea.AsteroidGame/.idea/dictionaries diff --git a/Assets/Entities/Enemies/Enemy.prefab b/Assets/Entities/Enemies/Enemy.prefab index 74e6dae..18673bc 100644 --- a/Assets/Entities/Enemies/Enemy.prefab +++ b/Assets/Entities/Enemies/Enemy.prefab @@ -406,11 +406,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a8e2a3a5a069cea4cbe59c093201d8dc, type: 3} m_Name: m_EditorClassIdentifier: - health: 0 - maxHealth: 0 - isInvulnerable: 0 - centerPosition: {fileID: 3291032053430181389} - basePosition: {fileID: 2692714622321691895} + _health: 0 + _maxHealth: 0 + _isInvulnerable: 0 + _centerPosition: {fileID: 3291032053430181389} + _basePosition: {fileID: 2692714622321691895} + _uiFriendlyName: Enemy --- !u!1 &6940800288144322101 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Entities/Enemies/Scripts/EnemyHealth.cs b/Assets/Entities/Enemies/Scripts/EnemyHealth.cs index 5dd0a5c..324e0e2 100644 --- a/Assets/Entities/Enemies/Scripts/EnemyHealth.cs +++ b/Assets/Entities/Enemies/Scripts/EnemyHealth.cs @@ -1,4 +1,3 @@ -using AsteroidGame.Entities.Structures.Tower; using UnityEngine; namespace AsteroidGame.Entities.Enemies.Scripts @@ -10,23 +9,23 @@ namespace AsteroidGame.Entities.Enemies.Scripts // [SerializeField] ScoreHandler scoreHandler; [Header("Parameters")] - [SerializeField] int maxHealth = 5; - [SerializeField] int difficultyRamp = 1; + [SerializeField] int _maxHealth = 5; + [SerializeField] int _difficultyRamp = 1; - [SerializeField] int wealthValue = 5; + [SerializeField] int _wealthValue = 5; [Header("Stats")] - [SerializeField] int currentHealth; + [SerializeField] int _currentHealth; #region Public - public int Health { get=> currentHealth;} + public int Health { get=> _currentHealth;} #endregion void OnEnable() { // enemyHandler = FindObjectOfType(); // scoreHandler = FindObjectOfType(); - currentHealth = maxHealth; + _currentHealth = _maxHealth; } private void OnParticleCollision(GameObject damager) @@ -39,11 +38,11 @@ namespace AsteroidGame.Entities.Enemies.Scripts // SpawnFX(damageVFX); // Debug.Log(damager.GetComponentInParent().GetDamage()); - currentHealth -= damager.GetComponentInParent().Damage; + _currentHealth -= damager.GetComponentInParent().Damage; //UpdateHealthText(health); - if(currentHealth <= 0) + if(_currentHealth <= 0) { ProcessDeathFrom(damager); } @@ -58,7 +57,7 @@ namespace AsteroidGame.Entities.Enemies.Scripts // enemyHandler.RemoveEnemy(gameObject); // Destroy(gameObject); gameObject.SetActive(false); - maxHealth += difficultyRamp; + _maxHealth += _difficultyRamp; } } } diff --git a/Assets/Entities/Enemies/Scripts/EnemyMovement.cs b/Assets/Entities/Enemies/Scripts/EnemyMovement.cs index b738858..cf8b3fd 100644 --- a/Assets/Entities/Enemies/Scripts/EnemyMovement.cs +++ b/Assets/Entities/Enemies/Scripts/EnemyMovement.cs @@ -6,19 +6,19 @@ namespace AsteroidGame.Entities.Enemies public class EnemyMovement : MonoBehaviour { [Header("Parameters")] - [SerializeField] [Range(0f, 5f)] float speed = 1f; - [SerializeField] int damage = 1; + [SerializeField] [Range(0f, 5f)] float _speed = 1f; + [SerializeField] int _damage = 1; // [SerializeField] EnemyHandler enemyHandler; // [SerializeField] ScoreHandler scoreHandler; - Vector3 startPosition; - Vector3 endPosition; - float travelPercent = 0f; + Vector3 _startPosition; + Vector3 _endPosition; + float _travelPercent = 0f; - private IEnumerator followPath; + private IEnumerator _followPath; void Awake() { @@ -35,10 +35,10 @@ namespace AsteroidGame.Entities.Enemies void RecalculatePath() { - if (followPath != null) + if (_followPath != null) { //Debug.Log("Stopping Coroutine"); - StopCoroutine(followPath); + StopCoroutine(_followPath); } } @@ -52,9 +52,9 @@ namespace AsteroidGame.Entities.Enemies gameObject.SetActive(false); } - private Vector3 GetVector3(Vector2Int _coord) + private Vector3 GetVector3(Vector2Int coord) { - return new Vector3((float)_coord.x, 0f, (float)_coord.y) * 10f; + return new Vector3((float)coord.x, 0f, (float)coord.y) * 10f; } } diff --git a/Assets/Entities/EntityBase.cs b/Assets/Entities/EntityBase.cs index 33f1555..128d24a 100644 --- a/Assets/Entities/EntityBase.cs +++ b/Assets/Entities/EntityBase.cs @@ -6,79 +6,58 @@ namespace AsteroidGame.Entities public class EntityBase : MonoBehaviour, IDamageable, ITargetable { [Header("Health")] - [SerializeField] protected int health; - [SerializeField] protected int maxHealth; - [SerializeField] protected bool isInvulnerable; + [SerializeField] protected int _health; + [SerializeField] protected int _maxHealth; + [SerializeField] protected bool _isInvulnerable; [Header("TargetPositions")] - [SerializeField] private Transform centerPosition; - [SerializeField] private Transform basePosition; + [SerializeField] private Transform _centerPosition; + [SerializeField] private Transform _basePosition; [Header("UI")] - [SerializeField]protected string uiFriendlyName; + [SerializeField] protected string _uiFriendlyName; #region Props - public bool IsInvulnerable => isInvulnerable; - public string UiFriendlyName => uiFriendlyName; + public bool IsInvulnerable => _isInvulnerable; + public string UiFriendlyName => _uiFriendlyName; + #endregion #region Methods + public void ModifyHealth(int healthChange) { - if (!isInvulnerable) + if (!_isInvulnerable) { - health += healthChange; + _health += healthChange; } } #endregion - + #region Setters - public void SetHealth(int newHealth) - { - health = newHealth; - } - public void SetMaxHealth(int newHealth) - { - maxHealth = newHealth; - } + public void SetHealth(int newHealth) => _health = newHealth; - public void SetInvulnerable(bool newState) - { - isInvulnerable = newState; - } + public void SetMaxHealth(int newHealth) => _maxHealth = newHealth; + + public void SetInvulnerable(bool newState) => _isInvulnerable = newState; #endregion #region Getters - public Vector3 GetCenterPosition() - { - return centerPosition.transform.position; - } + public Vector3 GetCenterPosition() => _centerPosition.transform.position; - public Vector3 GetBasePosition() - { - return basePosition.transform.position; - } - public int GetHealth() - { - return health; - } + public Vector3 GetBasePosition() => _basePosition.transform.position; - public int GetMaxHealth() - { - return maxHealth; - } + public int GetHealth() => _health; - public float GetHealthFactor() - { - // ReSharper disable once PossibleLossOfFraction - return health / maxHealth; - } + public int GetMaxHealth() => _maxHealth; + + public float GetHealthFactor() => (float)_health / (float)_maxHealth; #endregion } -} +} \ No newline at end of file diff --git a/Assets/Entities/Structures/AllStructures.asset b/Assets/Entities/Structures/AllStructures.asset new file mode 100644 index 0000000..ca244c1 --- /dev/null +++ b/Assets/Entities/Structures/AllStructures.asset @@ -0,0 +1,17 @@ +%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: 652265e583504f4479d63342d0afb59d, type: 3} + m_Name: AllStructures + m_EditorClassIdentifier: + _structureList: + - {fileID: 8787361557661825162, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} + - {fileID: 5166195223278443568, guid: 57a75520298c47140a928041b05d7f3c, type: 3} diff --git a/Assets/Entities/Structures/AllStructures.asset.meta b/Assets/Entities/Structures/AllStructures.asset.meta new file mode 100644 index 0000000..b64d5c4 --- /dev/null +++ b/Assets/Entities/Structures/AllStructures.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6bec5a151656ac428c38df1675ee2e4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Entities/Structures/AvailableStructures.asset b/Assets/Entities/Structures/AvailableStructures.asset index c9f8943..b12ea0c 100644 --- a/Assets/Entities/Structures/AvailableStructures.asset +++ b/Assets/Entities/Structures/AvailableStructures.asset @@ -12,6 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 652265e583504f4479d63342d0afb59d, type: 3} m_Name: AvailableStructures m_EditorClassIdentifier: - structureList: + _structureList: - {fileID: 8787361557661825162, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} - {fileID: 5166195223278443568, guid: 57a75520298c47140a928041b05d7f3c, type: 3} diff --git a/Assets/Entities/Structures/PowerPlant/PowerPlant.cs b/Assets/Entities/Structures/PowerPlant/PowerPlant.cs index fa7972b..203ee93 100644 --- a/Assets/Entities/Structures/PowerPlant/PowerPlant.cs +++ b/Assets/Entities/Structures/PowerPlant/PowerPlant.cs @@ -1,11 +1,6 @@ -using AsteroidGame.Entities.Structures.Scripts; -using AsteroidGame.Interfaces; -using UnityEngine; - -namespace AsteroidGame.Entities.Structures.PowerPlant +namespace AsteroidGame.Entities { public class PowerPlant : StructureBase { - } -} +} \ No newline at end of file diff --git a/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab b/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab index 64dea99..03471a6 100644 --- a/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab +++ b/Assets/Entities/Structures/PowerPlant/PowerPlant.prefab @@ -46,19 +46,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b5b8b24a2cbe7294c90fb34afeca78e7, type: 3} m_Name: m_EditorClassIdentifier: - health: 0 - maxHealth: 0 - isInvulnerable: 0 - centerPosition: {fileID: 0} - basePosition: {fileID: 493861824998956378} - uiFriendlyName: Power\nPlant - cost: 0 - buildPlacementBlocked: 0 - buildTimer: 0 - isPowerGenerator: 1 - isPowerConsumer: 0 - maxPower: 100 - currentPower: 0 + _health: 10 + _maxHealth: 0 + _isInvulnerable: 0 + _centerPosition: {fileID: 1841478903898566568} + _basePosition: {fileID: 493861824998956378} + _uiFriendlyName: Power\nPlant + _cost: 100 + _buildPlacementBlocked: 0 + _buildTimer: 0 + _isGenerator: 1 + _isConsumer: 0 + _maxPower: 100 + _currentPower: 0 --- !u!1 &1863277996181035512 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Entities/Structures/ScriptableObjects.meta b/Assets/Entities/Structures/ScriptableObjects.meta new file mode 100644 index 0000000..06c4f7b --- /dev/null +++ b/Assets/Entities/Structures/ScriptableObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91195dc9638557a4aa7380bb7bb3c5cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs b/Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs new file mode 100644 index 0000000..29d4104 --- /dev/null +++ b/Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs @@ -0,0 +1,23 @@ +using AsteroidGame.Interfaces; +using UnityEngine; + +namespace AsteroidGame.Entities +{ + public class SWeaponConfig : 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/Structures/ScriptableObjects/SWeaponConfig.cs.meta b/Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs.meta new file mode 100644 index 0000000..f7217fb --- /dev/null +++ b/Assets/Entities/Structures/ScriptableObjects/SWeaponConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 19bf3f6dd184a48499aff1db728edfcd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Entities/Structures/Scripts/StructureBase.cs b/Assets/Entities/Structures/Scripts/StructureBase.cs index 9a0bc89..fcfea0a 100644 --- a/Assets/Entities/Structures/Scripts/StructureBase.cs +++ b/Assets/Entities/Structures/Scripts/StructureBase.cs @@ -1,90 +1,74 @@ -using System; using AsteroidGame.Interfaces; using UnityEngine; -using UnityEngine.Serialization; -namespace AsteroidGame.Entities.Structures.Scripts +namespace AsteroidGame.Entities { public class StructureBase : EntityBase, IBuildable, IPowerSystem { - [Header("BuildParameters")] - [SerializeField] - protected int cost; + [Header("BuildParameters")] + [SerializeField] protected int _cost; + [SerializeField] private bool _buildPlacementBlocked; + [SerializeField] protected float _buildTimer; - [SerializeField] private bool buildPlacementBlocked; - [SerializeField] protected float buildTimer; - [Header("Power")] - [SerializeField] protected bool isPowerGenerator; - [SerializeField] protected bool isPowerConsumer; - [SerializeField] protected int maxPower; - [SerializeField] protected int currentPower; - + [SerializeField] protected bool _isGenerator; + [SerializeField] protected bool _isConsumer; + [SerializeField] protected int _maxPower; + [SerializeField] protected int _currentPower; + #region Private - #endregion - + #region Publics - public bool IsPowerGenerator => isPowerGenerator; - public bool IsPowerConsumer => isPowerConsumer; - public bool BuildPlacementBlocked => buildPlacementBlocked; - public int Cost => cost; + + public bool IsGenerator => _isGenerator; + public bool IsConsumer => _isConsumer; + public bool BuildPlacementBlocked => _buildPlacementBlocked; #endregion private void OnEnable() { - if (!isPowerConsumer && !isPowerGenerator) + if (!_isConsumer && !_isGenerator) { - Debug.Log("Power consumer/generator not set!"); + Debug.LogWarning("Power consumer/generator not set!"); } } private void OnTriggerStay(Collider other) { - if(other.name == "BuildCollider") + if (other.name == "BuildCollider") { - buildPlacementBlocked = true; + _buildPlacementBlocked = true; } } private void OnTriggerExit(Collider other) { - if(other.name == "BuildCollider") + if (other.name == "BuildCollider") { - buildPlacementBlocked = false; + _buildPlacementBlocked = false; } } - + #region Setters - public void SetMaxPower(int newValue) - { - maxPower = newValue; - } - + public void SetMaxPower(int newValue) => _maxPower = newValue; + public int SetCost(int newCost) => _cost = newCost; #endregion #region Getters - - public int GetMaxPower() - { - return maxPower; - } - public int GetCurrentPower() - { - return currentPower; - } + public int GetMaxPower() => _maxPower; + + public int GetCurrentPower() => _currentPower; + + public float GetPowerFactor() => (float)_currentPower / _maxPower; + + public int GetCost() => _cost; - public float GetPowerFactor() - { - // ReSharper disable once PossibleLossOfFraction - return currentPower / maxPower; - } - #endregion } } \ No newline at end of file diff --git a/Assets/Entities/Structures/Scripts/StructureBaseScriptableObject.cs b/Assets/Entities/Structures/Scripts/StructureBaseScriptableObject.cs index 0c5b70d..ac5b772 100644 --- a/Assets/Entities/Structures/Scripts/StructureBaseScriptableObject.cs +++ b/Assets/Entities/Structures/Scripts/StructureBaseScriptableObject.cs @@ -1,12 +1,12 @@ using System.Collections.Generic; -using UnityEditor; using UnityEngine; -namespace AsteroidGame.Entities.Structures.Scripts +namespace AsteroidGame.Entities { + [CreateAssetMenu(fileName = "newStructureList", menuName = "Structures/StructureList")] public class StructureBaseScriptableObject : ScriptableObject { - public List structureList; + public List _structureList; } // public static class MakeScriptableObject @@ -24,4 +24,4 @@ namespace AsteroidGame.Entities.Structures.Scripts // Selection.activeObject = asset; // } // } -} +} \ No newline at end of file diff --git a/Assets/Entities/Structures/Tower.meta b/Assets/Entities/Structures/Turret.meta similarity index 100% rename from Assets/Entities/Structures/Tower.meta rename to Assets/Entities/Structures/Turret.meta diff --git a/Assets/Entities/Structures/Turret/Model.meta b/Assets/Entities/Structures/Turret/Model.meta new file mode 100644 index 0000000..c849ea9 --- /dev/null +++ b/Assets/Entities/Structures/Turret/Model.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9db218efcae6ef47ac0d9eb96240cb0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Entities/Structures/Tower/2.mtl b/Assets/Entities/Structures/Turret/Model/2.mtl similarity index 100% rename from Assets/Entities/Structures/Tower/2.mtl rename to Assets/Entities/Structures/Turret/Model/2.mtl diff --git a/Assets/Entities/Structures/Tower/2.mtl.meta b/Assets/Entities/Structures/Turret/Model/2.mtl.meta similarity index 100% rename from Assets/Entities/Structures/Tower/2.mtl.meta rename to Assets/Entities/Structures/Turret/Model/2.mtl.meta diff --git a/Assets/Entities/Structures/Tower/2.obj b/Assets/Entities/Structures/Turret/Model/2.obj similarity index 100% rename from Assets/Entities/Structures/Tower/2.obj rename to Assets/Entities/Structures/Turret/Model/2.obj diff --git a/Assets/Entities/Structures/Tower/2.obj.meta b/Assets/Entities/Structures/Turret/Model/2.obj.meta similarity index 100% rename from Assets/Entities/Structures/Tower/2.obj.meta rename to Assets/Entities/Structures/Turret/Model/2.obj.meta diff --git a/Assets/Entities/Structures/Tower/Turret.cs b/Assets/Entities/Structures/Turret/Turret.cs similarity index 62% rename from Assets/Entities/Structures/Tower/Turret.cs rename to Assets/Entities/Structures/Turret/Turret.cs index d48896d..d89c19b 100644 --- a/Assets/Entities/Structures/Tower/Turret.cs +++ b/Assets/Entities/Structures/Turret/Turret.cs @@ -1,42 +1,36 @@ using AsteroidGame.Entities.Enemies.Scripts; -using AsteroidGame.Entities.Structures.Scripts; -using AsteroidGame.Interfaces; using UnityEngine; -namespace AsteroidGame.Entities.Structures.Tower +namespace AsteroidGame.Entities { public class Turret : StructureBase { [Header("WeaponParameters")] [SerializeField] - private float weaponRange = 40f; + private float _weaponRange = 40f; - [SerializeField] private int damage = 1; - [SerializeField] private float fireRate = 1; - [SerializeField] private float projectileSpeed = 5; - [SerializeField] private TargetStrategy targetStrategy = TargetStrategy.LowestHealth; - - [Header("Stats")] + [SerializeField] private int _damage = 1; + [SerializeField] private float _fireRate = 1; + [SerializeField] private float _projectileSpeed = 5; + [SerializeField] private TargetStrategy _targetStrategy = TargetStrategy.LowestHealth; + + [Header("Stats")] [SerializeField] - private float score = 0f; + private float _score = 0f; - - [Header("RigConnections")] - [SerializeField] private Transform turretHead; - [SerializeField] private Transform barrel; + [Header("RigConnections")] + [SerializeField] private Transform _turretHead; + [SerializeField] private Transform _barrel; #region Privates - - - [SerializeField] - enum TargetStrategy + + [SerializeField] private enum TargetStrategy { ClosestEnemy, LowestHealth }; - [SerializeField] private EnemyBase targetEnemy; - [SerializeField] private Transform[] buildingParts; - + [SerializeField] private EnemyBase _targetEnemy; + [SerializeField] private Transform[] _buildingParts; #endregion @@ -46,32 +40,32 @@ namespace AsteroidGame.Entities.Structures.Tower public int Damage { - get => damage; - set => damage = value; + get => _damage; + set => _damage = value; } public int FireRate { get; set; } - + #endregion private void Awake() { - targetEnemy = FindObjectOfType(); + _targetEnemy = FindObjectOfType(); } private void Start() { // enemyHandler = FindObjectOfType(); // scoreHandler = FindObjectOfType(); - UpdateWeaponParameters(fireRate, projectileSpeed); + UpdateWeaponParameters(_fireRate, _projectileSpeed); } private void Update() { - turretHead.transform.LookAt(targetEnemy.GetCenterPosition()); + _turretHead.transform.LookAt(_targetEnemy.GetCenterPosition()); } - - private void UpdateWeaponParameters(float _fireRate, float _projectileSpeed) + + private void UpdateWeaponParameters(float fireRate, float projectileSpeed) { // var main = _projectile.main; // main.startSpeed = _projectileSpeed; @@ -126,22 +120,5 @@ namespace AsteroidGame.Entities.Structures.Tower // ShootProjectile(true); // } // } - // private void OnTriggerEnter(Collider other) - // { - // print($"TriggerEnter: {other.name}"); - // // if(other.name == "BuildCollider") - // // { - // // _buildPlacementBlocked = true; - // // } - // } - // - // private void OnTriggerExit(Collider other) - // { - // print($"TriggerExit: {other.name}"); - // // if(other.name == "BuildCollider") - // // { - // // _buildPlacementBlocked = false; - // // } - // } } -} +} \ No newline at end of file diff --git a/Assets/Entities/Structures/Tower/Turret.cs.meta b/Assets/Entities/Structures/Turret/Turret.cs.meta similarity index 100% rename from Assets/Entities/Structures/Tower/Turret.cs.meta rename to Assets/Entities/Structures/Turret/Turret.cs.meta diff --git a/Assets/Entities/Structures/Tower/Turret.prefab b/Assets/Entities/Structures/Turret/Turret.prefab similarity index 97% rename from Assets/Entities/Structures/Tower/Turret.prefab rename to Assets/Entities/Structures/Turret/Turret.prefab index f40706e..c2e342d 100644 --- a/Assets/Entities/Structures/Tower/Turret.prefab +++ b/Assets/Entities/Structures/Turret/Turret.prefab @@ -692,7 +692,7 @@ BoxCollider: m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} + m_Size: {x: 1, y: 1.0236204, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &8704396752535238434 GameObject: @@ -742,26 +742,26 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d3a16cf44e28f02409c23498ed14acf5, type: 3} m_Name: m_EditorClassIdentifier: - health: 50 - maxHealth: 50 - isInvulnerable: 0 - centerPosition: {fileID: 5103935544759496321} - basePosition: {fileID: 8324879816836607384} - uiFriendlyName: Turret - cost: 20 - buildPlacementBlocked: 0 - buildTimer: 1 - isPowerGenerator: 0 - isPowerConsumer: 1 - maxPower: 10 - currentPower: 0 - weaponRange: 40 - damage: 1 - fireRate: 1 - projectileSpeed: 5 - targetStrategy: 1 - score: 0 - turretHead: {fileID: 5103935544653627402} - barrel: {fileID: 5103935545559248087} - targetEnemy: {fileID: 0} - buildingParts: [] + _health: 10 + _maxHealth: 0 + _isInvulnerable: 0 + _centerPosition: {fileID: 5103935544759496321} + _basePosition: {fileID: 8324879816836607384} + _uiFriendlyName: Turret + _cost: 10 + _buildPlacementBlocked: 0 + _buildTimer: 0 + _isGenerator: 0 + _isConsumer: 1 + _maxPower: 10 + _currentPower: 0 + _weaponRange: 40 + _damage: 1 + _fireRate: 1 + _projectileSpeed: 5 + _targetStrategy: 1 + _score: 0 + _turretHead: {fileID: 5103935544653627402} + _barrel: {fileID: 5103935545559248087} + _targetEnemy: {fileID: 0} + _buildingParts: [] diff --git a/Assets/Entities/Structures/Tower/Turret.prefab.meta b/Assets/Entities/Structures/Turret/Turret.prefab.meta similarity index 100% rename from Assets/Entities/Structures/Tower/Turret.prefab.meta rename to Assets/Entities/Structures/Turret/Turret.prefab.meta diff --git a/Assets/Handlers/BuildingHandler.cs b/Assets/Handlers/BuildingHandler.cs index f9049b8..cf52411 100644 --- a/Assets/Handlers/BuildingHandler.cs +++ b/Assets/Handlers/BuildingHandler.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using AsteroidGame.Entities.Structures.Scripts; +using AsteroidGame.Entities; using UnityEngine; using UnityEngine.InputSystem; @@ -8,23 +8,23 @@ namespace AsteroidGame.Handlers public class BuildingHandler : HandlerBase { [Header("Config")] - [SerializeField] private Color colorGhost = new Color(1f, 1f, 1f, 0.12f); - [SerializeField] private Color colorBuildingBlocked = new Color(1f, 0f, 0f, 0.12f); - [SerializeField] private Material ghostStructureMaterial; + [SerializeField] private Color _colorGhost = new Color(1f, 1f, 1f, 0.12f); + [SerializeField] private Color _colorBuildingBlocked = new Color(1f, 0f, 0f, 0.12f); + [SerializeField] private Material _ghostStructureMaterial; [Header("State")] - [SerializeField] private bool isBuilding; - [SerializeField] private int buildingSelector; + [SerializeField] private bool _isBuilding; + [SerializeField] private int _buildingSelector; [Header("Structures")] - [SerializeField] private StructureBaseScriptableObject availableStructuresObject; + [SerializeField] private StructureBaseScriptableObject _availableStructuresObject; #region Private - private Dictionary _availableStructures = new(); - [SerializeField] private Color colorCurrent; + private readonly Dictionary _availableStructures = new(); + private Color _colorCurrent; private Camera _camera; - [SerializeField] private List activeStructures; + [SerializeField] private List _activeStructures; private Vector3 _tempVec; private Plane _buildPlane; private StructureBase _tempStructure; @@ -36,31 +36,31 @@ namespace AsteroidGame.Handlers protected override void OnEnable() { base.OnEnable(); - for (int i = 0; i < availableStructuresObject.structureList.Count; i++) + for (int i = 0; i < _availableStructuresObject._structureList.Count; i++) { - _availableStructures.Add(i, availableStructuresObject.structureList[i]); + _availableStructures.Add(i, _availableStructuresObject._structureList[i]); } _camera = Camera.main; _buildPlane = new Plane(Vector3.up, Vector3.zero); - activeStructures.Clear(); + _activeStructures.Clear(); } private void Update() { - if (!isBuilding) return; + if (!_isBuilding) return; _ghostStructure.transform.position = GetPlanePoint(); - SetGhostColor(_ghostStructure.BuildPlacementBlocked ? colorBuildingBlocked : colorGhost); + SetGhostColor(_ghostStructure.BuildPlacementBlocked ? _colorBuildingBlocked : _colorGhost); } private void SetGhostColor(Color newColor) { - if (newColor == colorCurrent) return; + if (newColor == _colorCurrent) return; foreach (var meshRenderer in _ghostStructureMeshRenderers) { meshRenderer.material.color = newColor; } - colorCurrent = newColor; + _colorCurrent = newColor; } protected override void OnLeftClick(InputAction.CallbackContext context) @@ -75,41 +75,41 @@ namespace AsteroidGame.Handlers protected override void OnBuild(InputAction.CallbackContext context) { - EnterBuildMode(buildingSelector); + EnterBuildMode(_buildingSelector); } - public void PlaceStructure() + private void PlaceStructure() { - if (!isBuilding) return; + if (!_isBuilding) return; if (_ghostStructure.BuildPlacementBlocked) return; if (!Keyboard.current.shiftKey.isPressed) { DestroyGhostStructure(); - isBuilding = false; + _isBuilding = false; } SpawnStructure(); } - public void AbortPlaceStructure() + private void AbortPlaceStructure() { - if (!isBuilding) return; + if (!_isBuilding) return; DestroyGhostStructure(); - isBuilding = false; + _isBuilding = false; } public void EnterBuildMode(int index) { - if (isBuilding) return; - isBuilding = true; + if (_isBuilding) return; + _isBuilding = true; SetBuildingIndex(index); SpawnGhostStructure(); } private void SpawnGhostStructure() { - _ghostStructure = Instantiate(_availableStructures[buildingSelector], GetPlanePoint(), Quaternion.identity, transform); + _ghostStructure = Instantiate(_availableStructures[_buildingSelector], GetPlanePoint(), Quaternion.identity, transform); _ghostStructure.name = "GhostStructure"; var rb = _ghostStructure.gameObject.AddComponent(); @@ -119,7 +119,7 @@ namespace AsteroidGame.Handlers foreach (var meshRenderer in _ghostStructureMeshRenderers) { - meshRenderer.material = ghostStructureMaterial; + meshRenderer.material = _ghostStructureMaterial; } _ghostStructure.GetComponent().enabled = false; @@ -132,8 +132,8 @@ namespace AsteroidGame.Handlers private void SpawnStructure() { - _tempStructure = Instantiate(_availableStructures[buildingSelector], GetPlanePoint(), Quaternion.identity, transform); - activeStructures.Add(_tempStructure); + _tempStructure = Instantiate(_availableStructures[_buildingSelector], GetPlanePoint(), Quaternion.identity, transform); + _activeStructures.Add(_tempStructure); } #region Getters @@ -157,7 +157,7 @@ namespace AsteroidGame.Handlers public List GetActiveStructures() { - return activeStructures; + return _activeStructures; } #endregion @@ -166,7 +166,7 @@ namespace AsteroidGame.Handlers public void SetBuildingIndex(int index) { - buildingSelector = index; + _buildingSelector = index; } #endregion diff --git a/Assets/Handlers/BuildingHandler.prefab b/Assets/Handlers/BuildingHandler.prefab new file mode 100644 index 0000000..11a9b98 --- /dev/null +++ b/Assets/Handlers/BuildingHandler.prefab @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &664620742648054783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 664620742648054780} + - component: {fileID: 664620742648054781} + m_Layer: 0 + m_Name: BuildingHandler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &664620742648054780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664620742648054783} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &664620742648054781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664620742648054783} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 51bf353b43f7b2448bbb3088d78ee8a6, type: 3} + m_Name: + m_EditorClassIdentifier: + _colorGhost: {r: 1, g: 1, b: 1, a: 0.12} + _colorBuildingBlocked: {r: 1, g: 0, b: 0, a: 0.12} + _ghostStructureMaterial: {fileID: 2100000, guid: dc919a35edbf85647939132e73b39642, type: 2} + _isBuilding: 0 + _buildingSelector: 0 + _availableStructuresObject: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2} + _activeStructures: [] diff --git a/Assets/Handlers/BuildingHandler.prefab.meta b/Assets/Handlers/BuildingHandler.prefab.meta new file mode 100644 index 0000000..4455957 --- /dev/null +++ b/Assets/Handlers/BuildingHandler.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a89f87af6ee84a459d98a4c296dd1be +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Handlers/EnemyHandler.cs b/Assets/Handlers/EnemyHandler.cs index c80122d..8a10ca6 100644 --- a/Assets/Handlers/EnemyHandler.cs +++ b/Assets/Handlers/EnemyHandler.cs @@ -7,35 +7,35 @@ namespace AsteroidGame.Handlers public class EnemyHandler : HandlerBase { [Header("Parameters")] - [SerializeField] [Range(0.1f, 60f)] float spawnRate = 60f; - [SerializeField] int objectPoolSize = 15; + [SerializeField] [Range(0.1f, 60f)] float _spawnRate = 60f; + [SerializeField] int _objectPoolSize = 15; [Header("Prefabs")] - [SerializeField] GameObject objectPool; - [SerializeField] List enemyPrefabs = new List(); + [SerializeField] GameObject _objectPool; + [SerializeField] List _enemyPrefabs = new List(); [Header("Lists")] - [SerializeField] List enemyPools = new List(); - [SerializeField] List allEnemies = new List(); + [SerializeField] List _enemyPools = new List(); + [SerializeField] List _allEnemies = new List(); private void Start() { } - public void AddEnemyToAllEnemies(GameObject _enemy) + public void AddEnemyToAllEnemies(GameObject enemy) { - allEnemies.Add(_enemy); + _allEnemies.Add(enemy); } - public void RemoveEnemy(GameObject _enemy) + public void RemoveEnemy(GameObject enemy) { - allEnemies.Remove(_enemy); + _allEnemies.Remove(enemy); } public List ReturnAllEnemies() { - return allEnemies; + return _allEnemies; } public void NotifyEnemiesOfNewPath() diff --git a/Assets/Handlers/EnemyHandler.prefab b/Assets/Handlers/EnemyHandler.prefab new file mode 100644 index 0000000..50a8039 --- /dev/null +++ b/Assets/Handlers/EnemyHandler.prefab @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5200388201450229077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5200388201450229074} + - component: {fileID: 5200388201450229075} + m_Layer: 0 + m_Name: EnemyHandler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5200388201450229074 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5200388201450229077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5200388201450229075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5200388201450229077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 62a3dc5f11a44cb4d9faccb4fda8599f, type: 3} + m_Name: + m_EditorClassIdentifier: + _spawnRate: 60 + _objectPoolSize: 15 + _objectPool: {fileID: 0} + _enemyPrefabs: [] + _enemyPools: [] + _allEnemies: [] diff --git a/Assets/Handlers/EnemyHandler.prefab.meta b/Assets/Handlers/EnemyHandler.prefab.meta new file mode 100644 index 0000000..9837aa9 --- /dev/null +++ b/Assets/Handlers/EnemyHandler.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 07826307af1971948b98dd42d1e9457a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Handlers/PowerHandler.cs b/Assets/Handlers/PowerHandler.cs index a9b0f7f..9874f83 100644 --- a/Assets/Handlers/PowerHandler.cs +++ b/Assets/Handlers/PowerHandler.cs @@ -1,75 +1,73 @@ using System; using System.Collections.Generic; -using AsteroidGame.Entities.Structures.Scripts; -using AsteroidGame.Interfaces; +using AsteroidGame.Entities; using UnityEngine; -using UnityEngine.Pool; namespace AsteroidGame.Handlers { public class PowerHandler : HandlerBase { - [Header("State")] [SerializeField] private int powerConsumption; - [SerializeField] private int powerCapacity; - [SerializeField] private float powerFactor; + [Header("State")] + [SerializeField] private int _powerConsumption; + [SerializeField] private int _powerCapacity; + [SerializeField] private float _powerFactor; - [Header("Connections")] [SerializeField] - private BuildingHandler buildingHandler; - // [SerializeField] private BuildingHandler buildingHandler; + [Header("Connections")] + [SerializeField] private BuildingHandler _buildingHandler; #region Private - [SerializeField] private List activeStructures = new(); + [SerializeField] private List _activeStructures = new(); #endregion protected override void OnEnable() { base.OnEnable(); - buildingHandler = FindObjectOfType(); - activeStructures = buildingHandler.GetActiveStructures(); + _buildingHandler = FindObjectOfType(); + _activeStructures = _buildingHandler.GetActiveStructures(); } private void Update() { - powerConsumption = 0; - powerCapacity = 0; - foreach (var structure in activeStructures) + _powerConsumption = 0; + _powerCapacity = 0; + foreach (var structure in _activeStructures) { - if (structure.IsPowerConsumer) + if (structure.IsConsumer) { - powerConsumption += structure.GetMaxPower(); + _powerConsumption += structure.GetMaxPower(); } - if (structure.IsPowerGenerator) + if (structure.IsGenerator) { - powerCapacity += structure.GetMaxPower(); + _powerCapacity += structure.GetMaxPower(); } } - if (powerCapacity > 0) + if (_powerCapacity > 0) { - powerFactor = (float)powerConsumption / (float)powerCapacity; + _powerFactor = (float)_powerConsumption / _powerCapacity; } else { - powerFactor = 0; + _powerFactor = 0; } } public int GetMaxPower() { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } public int GetCurrentPower() { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } public float GetPowerFactor() { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } } } \ No newline at end of file diff --git a/Assets/Handlers/PowerHandler.prefab b/Assets/Handlers/PowerHandler.prefab new file mode 100644 index 0000000..ee46721 --- /dev/null +++ b/Assets/Handlers/PowerHandler.prefab @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5263199550015624125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5263199550015624126} + - component: {fileID: 5263199550015624127} + m_Layer: 0 + m_Name: PowerHandler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5263199550015624126 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5263199550015624125} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5263199550015624127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5263199550015624125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf720c524a2a9624099d0e4ba3d78108, type: 3} + m_Name: + m_EditorClassIdentifier: + _powerConsumption: 0 + _powerCapacity: 0 + _powerFactor: 0 + _buildingHandler: {fileID: 0} + _activeStructures: [] diff --git a/Assets/Handlers/PowerHandler.prefab.meta b/Assets/Handlers/PowerHandler.prefab.meta new file mode 100644 index 0000000..b5d0e2f --- /dev/null +++ b/Assets/Handlers/PowerHandler.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e352ad6389b4234083764d15d4e6a5f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Handlers/ScoreHandler.cs b/Assets/Handlers/ScoreHandler.cs index f4ce5b2..a50e225 100644 --- a/Assets/Handlers/ScoreHandler.cs +++ b/Assets/Handlers/ScoreHandler.cs @@ -9,41 +9,41 @@ namespace AsteroidGame.Handlers { [Header("UI")] [SerializeField] - private TextMeshProUGUI displayBalance; + private TextMeshProUGUI _displayBalance; [Header("Parameters")] [SerializeField] - private int startHealth = 5; + private int _startHealth = 5; [SerializeField] - private int startBalance = 100; + private int _startBalance = 100; [Header("Stats")] [SerializeField] - private int currentHealth; + private int _currentHealth; [SerializeField] - private int currentBalance; - public int CurrentBalance => currentBalance; + private int _currentBalance; + public int CurrentBalance => _currentBalance; private void Start() { - currentHealth = startHealth; - currentBalance = startBalance; + _currentHealth = _startHealth; + _currentBalance = _startBalance; UpdateGUI(); } public void ModifyHealth(GameObject enemy) { - currentHealth -= 1; + _currentHealth -= 1; CheckIfYouLost(); } public void ModifyHealth(int amount) { - currentHealth += amount; + _currentHealth += amount; CheckIfYouLost(); } private void CheckIfYouLost(){ - if(currentHealth <= 0) + if(_currentHealth <= 0) { Debug.Log("You lost"); Reload(); @@ -51,7 +51,7 @@ namespace AsteroidGame.Handlers } public void ModifyWealth(int amount){ - currentBalance += amount; + _currentBalance += amount; UpdateGUI(); // Debug.Log($"Wealth modification. Change:{_amount}. Current: {wealthAmount}"); } @@ -63,7 +63,7 @@ namespace AsteroidGame.Handlers } private void UpdateGUI(){ - displayBalance.text = $"Gold: {currentBalance.ToString()}"; + _displayBalance.text = $"Gold: {_currentBalance.ToString()}"; } } diff --git a/Assets/Interfaces/IBuildable.cs b/Assets/Interfaces/IBuildable.cs index 04c7740..64d55fb 100644 --- a/Assets/Interfaces/IBuildable.cs +++ b/Assets/Interfaces/IBuildable.cs @@ -2,6 +2,7 @@ namespace AsteroidGame.Interfaces { public interface IBuildable { - + public int GetCost(); + public int SetCost(int newCost); } -} +} \ No newline at end of file diff --git a/Assets/Interfaces/IPowerSystem.cs b/Assets/Interfaces/IPowerSystem.cs index d4b3c02..7eb0331 100644 --- a/Assets/Interfaces/IPowerSystem.cs +++ b/Assets/Interfaces/IPowerSystem.cs @@ -2,9 +2,9 @@ namespace AsteroidGame.Interfaces { public interface IPowerSystem { - public bool IsPowerGenerator { get; } + public bool IsGenerator { get; } - public bool IsPowerConsumer { get; } + public bool IsConsumer { get; } public void SetMaxPower(int newValue); diff --git a/Assets/Interfaces/IWeapon.cs b/Assets/Interfaces/IWeapon.cs new file mode 100644 index 0000000..9aee191 --- /dev/null +++ b/Assets/Interfaces/IWeapon.cs @@ -0,0 +1,8 @@ +namespace AsteroidGame.Interfaces +{ + public interface IWeapon + { + public float FireRate { get; set; } + public float Damage { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Interfaces/IWeapon.cs.meta b/Assets/Interfaces/IWeapon.cs.meta new file mode 100644 index 0000000..3c7920f --- /dev/null +++ b/Assets/Interfaces/IWeapon.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a4d06a75a5a64c83aa191a8610f5080f +timeCreated: 1664621279 \ No newline at end of file diff --git a/Assets/Scenes/Playground 1.unity b/Assets/Scenes/Playground 1.unity index c592fe8..dde8b0e 100644 --- a/Assets/Scenes/Playground 1.unity +++ b/Assets/Scenes/Playground 1.unity @@ -153,8 +153,9 @@ Transform: m_Children: - {fileID: 1047643964} - {fileID: 1158682046} + - {fileID: 624469242} m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &95533810 GameObject: @@ -203,6 +204,7 @@ MonoBehaviour: m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} m_DeselectOnBackgroundClick: 1 m_PointerBehavior: 0 + m_CursorLockBehavior: 0 --- !u!114 &95533812 MonoBehaviour: m_ObjectHideFlags: 0 @@ -231,9 +233,9 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1047643963 +--- !u!1 &157782260 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -241,101 +243,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1047643964} - - component: {fileID: 1047643965} + - component: {fileID: 157782261} m_Layer: 0 - m_Name: EnemyHandler + m_Name: TestObjects m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1047643964 +--- !u!4 &157782261 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1047643963} + m_GameObject: {fileID: 157782260} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -4.6326556, y: 0.98203504, z: 6.9309382} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 2079460687} - {fileID: 1715656626} - m_Father: {fileID: 38176946} - m_RootOrder: 0 + - {fileID: 991542217} + m_Father: {fileID: 0} + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1047643965 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1047643963} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 62a3dc5f11a44cb4d9faccb4fda8599f, type: 3} - m_Name: - m_EditorClassIdentifier: - spawnRate: 60 - objectPoolSize: 15 - objectPool: {fileID: 0} - enemyPrefabs: [] - enemyPools: [] - allEnemies: [] ---- !u!1 &1158682045 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1158682046} - - component: {fileID: 1158682047} - m_Layer: 0 - m_Name: BuildingHandler - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1158682046 +--- !u!4 &624469242 stripped Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + m_PrefabInstance: {fileID: 5263199549561108292} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1158682045} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 38176946} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1158682047 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} +--- !u!4 &991542217 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + m_PrefabInstance: {fileID: 8451896670512076735} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1047643964 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + m_PrefabInstance: {fileID: 5200388200885062254} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1158682046 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + m_PrefabInstance: {fileID: 664620741625697858} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1158682045} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 51bf353b43f7b2448bbb3088d78ee8a6, type: 3} - m_Name: - m_EditorClassIdentifier: - colorGhost: {r: 1, g: 1, b: 1, a: 0.12} - colorBuildingBlocked: {r: 1, g: 0, b: 0, a: 0.12} - ghostStructureMaterial: {fileID: 2100000, guid: dc919a35edbf85647939132e73b39642, type: 2} - isBuilding: 0 - buildingSelector: 0 - availableStructuresObject: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2} - colorCurrent: {r: 0, g: 0, b: 0, a: 0} - activeStructures: [] --- !u!1001 &1191794244 PrefabInstance: m_ObjectHideFlags: 0 @@ -349,7 +302,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8083988910661828847, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3} propertyPath: m_RootOrder - value: 3 + value: 2 objectReference: {fileID: 0} - target: {fileID: 8083988910661828847, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3} propertyPath: m_LocalPosition.x @@ -393,90 +346,28 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c2b4fe01faa847f4b976b5539477e1ec, type: 3} ---- !u!1 &1223464901 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1223464903} - - component: {fileID: 1223464902} - - component: {fileID: 1223464904} - m_Layer: 5 - m_Name: UserInterface - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1223464902 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223464901} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_PanelSettings: {fileID: 11400000, guid: e6db20d33c1e6754e961e09ddc91ad73, type: 2} - m_ParentUI: {fileID: 0} - sourceAsset: {fileID: 9197481963319205126, guid: 80724155ca8b2ef4bbd2cbb3b6049114, type: 3} - m_SortingOrder: 0 ---- !u!4 &1223464903 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223464901} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1223464904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1223464901} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e0455460303dea141b831f0bfdd0e47f, type: 3} - m_Name: - m_EditorClassIdentifier: - availableStructuresObject: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2} --- !u!1001 &1715656625 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 1047643964} + m_TransformParent: {fileID: 157782261} m_Modifications: - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} propertyPath: m_RootOrder - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} propertyPath: m_LocalPosition.x - value: -4.95 + value: -0.3173442 objectReference: {fileID: 0} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: -0.98203504 objectReference: {fileID: 0} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} propertyPath: m_LocalPosition.z - value: 6.97 + value: 0.039061546 objectReference: {fileID: 0} - target: {fileID: 2692714622321691895, guid: 4af571b983b23f94f8d5ca4dbda27de5, type: 3} propertyPath: m_LocalRotation.w @@ -734,12 +625,17 @@ MonoBehaviour: m_PointlightHDType: 0 m_SpotLightShape: 0 m_AreaLightShape: 0 +--- !u!4 &2079460687 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} + m_PrefabInstance: {fileID: 2134547390} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2134547390 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 157782261} m_Modifications: - target: {fileID: 3252872069634226352, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_Enabled @@ -751,19 +647,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_RootOrder - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 4.6326556 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: -0.98203504 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalPosition.z - value: 4.04 + value: -2.8909383 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalRotation.w @@ -771,15 +667,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 8324879816836607384, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -804,28 +700,256 @@ PrefabInstance: m_RemovedComponents: - {fileID: 1344974744014620977, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 534f8d15e0c83c646887bebfda2bdfd6, type: 3} ---- !u!1001 &8451896670512076735 +--- !u!1001 &664620741625697858 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 38176946} + m_Modifications: + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054780, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 664620742648054783, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} + propertyPath: m_Name + value: BuildingHandler + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3a89f87af6ee84a459d98a4c296dd1be, type: 3} +--- !u!1001 &3627079579018641133 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + - target: {fileID: 3627079578080913704, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_Name + value: UserInterface + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} propertyPath: m_RootOrder - value: 4 + value: 3 objectReference: {fileID: 0} - - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} propertyPath: m_LocalPosition.x - value: -4.71 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3627079578080913706, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1170a91b91039d6429d389468bd72c6f, type: 3} +--- !u!1001 &5200388200885062254 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 38176946} + m_Modifications: + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229074, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5200388201450229077, guid: 07826307af1971948b98dd42d1e9457a, type: 3} + propertyPath: m_Name + value: EnemyHandler + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 07826307af1971948b98dd42d1e9457a, type: 3} +--- !u!1001 &5263199549561108292 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 38176946} + m_Modifications: + - target: {fileID: 5263199550015624125, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_Name + value: PowerHandler + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5263199550015624126, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2e352ad6389b4234083764d15d4e6a5f, type: 3} +--- !u!1001 &8451896670512076735 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 157782261} + m_Modifications: + - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + propertyPath: m_LocalPosition.x + value: -0.07734442 + objectReference: {fileID: 0} + - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} + propertyPath: m_LocalPosition.y + value: -0.98203504 + objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalPosition.z - value: 1.66 + value: -5.2709384 objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalRotation.w @@ -833,15 +957,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 493861824998956378, guid: 57a75520298c47140a928041b05d7f3c, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/Scripts/CameraController.cs b/Assets/Scripts/CameraController.cs index 191aa00..f87b33d 100644 --- a/Assets/Scripts/CameraController.cs +++ b/Assets/Scripts/CameraController.cs @@ -6,77 +6,77 @@ namespace AsteroidGame { public class CameraController : MonoBehaviour { - private CameraControllActions cameraActions; - private InputAction movement; - private Transform cameraTransform; - private Camera cameraReference; + private CameraControllActions _cameraActions; + private InputAction _movement; + private Transform _cameraTransform; + private Camera _cameraReference; // Horizontal Movement [SerializeField] - private float maxSpeed = 5f; - private float speed; + private float _maxSpeed = 5f; + private float _speed; [SerializeField] - private float acceleration = 10f; + private float _acceleration = 10f; [SerializeField] - private float damping = 15f; + private float _damping = 15f; //Vertial Motion - Zooming [SerializeField] - private float stepSize = 2f; + private float _stepSize = 2f; [SerializeField] - private float zoomDampening = 7.5f; + private float _zoomDampening = 7.5f; [SerializeField] - private float minHeight = 5f; + private float _minHeight = 5f; [SerializeField] - private float maxHeight = 50f; + private float _maxHeight = 50f; [SerializeField] - private float zoomSpeed = 2f; + private float _zoomSpeed = 2f; //Rotation [SerializeField] - private float maxRotationSpeed = 1f; + private float _maxRotationSpeed = 1f; //Screen Edge Motion [SerializeField] [Range(0f, 0.1f)] - private float edgeTolerance = 0.05f; + private float _edgeTolerance = 0.05f; [SerializeField] - private bool useScreenEdge = false; + private bool _useScreenEdge = false; - private Vector3 targetPosition; - private float zoomHeight; - private Vector3 horizontalVelocity; - private Vector3 lastPosition; - private Plane cameraPlane; + private Vector3 _targetPosition; + private float _zoomHeight; + private Vector3 _horizontalVelocity; + private Vector3 _lastPosition; + private Plane _cameraPlane; - Vector3 startDrag; + Vector3 _startDrag; private void Awake() { - cameraActions = new CameraControllActions(); + _cameraActions = new CameraControllActions(); - cameraReference = this.GetComponentInChildren(); - cameraTransform = cameraReference.transform; + _cameraReference = this.GetComponentInChildren(); + _cameraTransform = _cameraReference.transform; } private void OnEnable() { - cameraPlane = new Plane(Vector3.up, Vector3.zero); - zoomHeight = cameraTransform.localPosition.y; - cameraTransform.LookAt(this.transform); - lastPosition = this.transform.position; - movement = cameraActions.Camera.Movement; - cameraActions.Camera.RotateCamera.performed += RotateCamera; - cameraActions.Camera.ZoomCamera.performed += ZoomCamera; - cameraActions.Camera.Enable(); + _cameraPlane = new Plane(Vector3.up, Vector3.zero); + _zoomHeight = _cameraTransform.localPosition.y; + _cameraTransform.LookAt(this.transform); + _lastPosition = this.transform.position; + _movement = _cameraActions.Camera.Movement; + _cameraActions.Camera.RotateCamera.performed += RotateCamera; + _cameraActions.Camera.ZoomCamera.performed += ZoomCamera; + _cameraActions.Camera.Enable(); } private void OnDisable() { - cameraActions.Camera.RotateCamera.performed -= RotateCamera; - cameraActions.Camera.ZoomCamera.performed -= ZoomCamera; - cameraActions.Disable(); + _cameraActions.Camera.RotateCamera.performed -= RotateCamera; + _cameraActions.Camera.ZoomCamera.performed -= ZoomCamera; + _cameraActions.Disable(); } @@ -84,7 +84,7 @@ namespace AsteroidGame private void Update() { GetKeyboardMovement(); - if (useScreenEdge) + if (_useScreenEdge) { CheckMouseAtScreenEdge(); } @@ -97,51 +97,51 @@ namespace AsteroidGame private void UpdateVelocity() { - horizontalVelocity = (this.transform.position - lastPosition) / Time.deltaTime; - horizontalVelocity.y = 0; - lastPosition = this.transform.position; + _horizontalVelocity = (this.transform.position - _lastPosition) / Time.deltaTime; + _horizontalVelocity.y = 0; + _lastPosition = this.transform.position; } private void GetKeyboardMovement() { - Vector3 inputValue = movement.ReadValue().x * GetCameraRight() - + movement.ReadValue().y * GetCameraForward(); + Vector3 inputValue = _movement.ReadValue().x * GetCameraRight() + + _movement.ReadValue().y * GetCameraForward(); inputValue = inputValue.normalized; if (inputValue.sqrMagnitude > 0.1f) { - targetPosition += inputValue; + _targetPosition += inputValue; } } private Vector3 GetCameraRight() { - Vector3 right = cameraTransform.right; + Vector3 right = _cameraTransform.right; right.y = 0; return right; } private Vector3 GetCameraForward() { - Vector3 forward = cameraTransform.forward; + Vector3 forward = _cameraTransform.forward; forward.y = 0; return forward; } private void UpdateBasePosition() { - if (targetPosition.sqrMagnitude > 0.1f) + if (_targetPosition.sqrMagnitude > 0.1f) { - speed = Mathf.Lerp(speed, maxSpeed, Time.deltaTime * acceleration); - transform.position += speed * Time.deltaTime * targetPosition; + _speed = Mathf.Lerp(_speed, _maxSpeed, Time.deltaTime * _acceleration); + transform.position += _speed * Time.deltaTime * _targetPosition; } else { - horizontalVelocity = Vector3.Lerp(horizontalVelocity, Vector3.zero, Time.deltaTime * damping); - transform.position += horizontalVelocity * Time.deltaTime; + _horizontalVelocity = Vector3.Lerp(_horizontalVelocity, Vector3.zero, Time.deltaTime * _damping); + transform.position += _horizontalVelocity * Time.deltaTime; } - targetPosition = Vector3.zero; + _targetPosition = Vector3.zero; } private void RotateCamera(InputAction.CallbackContext inputValue) @@ -149,7 +149,7 @@ namespace AsteroidGame if (!Mouse.current.middleButton.isPressed) { return; } float value = inputValue.ReadValue().x; - transform.rotation = Quaternion.Euler(0f, value * maxRotationSpeed + transform.rotation.eulerAngles.y, 0f); + transform.rotation = Quaternion.Euler(0f, value * _maxRotationSpeed + transform.rotation.eulerAngles.y, 0f); } private void ZoomCamera(InputAction.CallbackContext inputValue) @@ -158,21 +158,21 @@ namespace AsteroidGame if (Mathf.Abs(value) > 0.1f) { - zoomHeight = cameraTransform.localPosition.y + value * stepSize; - if (zoomHeight < minHeight) - zoomHeight = minHeight; - else if (zoomHeight > maxHeight) - zoomHeight = maxHeight; + _zoomHeight = _cameraTransform.localPosition.y + value * _stepSize; + if (_zoomHeight < _minHeight) + _zoomHeight = _minHeight; + else if (_zoomHeight > _maxHeight) + _zoomHeight = _maxHeight; } } private void UpdateCameraPosition() { - Vector3 zoomTarget = new Vector3(cameraTransform.localPosition.x, zoomHeight, cameraTransform.localPosition.z); - zoomTarget -= zoomSpeed * (zoomHeight - cameraTransform.localPosition.y) * Vector3.forward; + Vector3 zoomTarget = new Vector3(_cameraTransform.localPosition.x, _zoomHeight, _cameraTransform.localPosition.z); + zoomTarget -= _zoomSpeed * (_zoomHeight - _cameraTransform.localPosition.y) * Vector3.forward; - cameraTransform.localPosition = Vector3.Lerp(cameraTransform.localPosition, zoomTarget, Time.deltaTime * zoomDampening); - cameraTransform.LookAt(this.transform); + _cameraTransform.localPosition = Vector3.Lerp(_cameraTransform.localPosition, zoomTarget, Time.deltaTime * _zoomDampening); + _cameraTransform.LookAt(this.transform); } private void CheckMouseAtScreenEdge() @@ -180,17 +180,17 @@ namespace AsteroidGame Vector2 mousePosition = Mouse.current.position.ReadValue(); Vector3 moveDirection = Vector3.zero; - if (mousePosition.x < edgeTolerance * Screen.width) + if (mousePosition.x < _edgeTolerance * Screen.width) moveDirection += -GetCameraRight(); - else if (mousePosition.x > (1f - edgeTolerance) * Screen.width) + else if (mousePosition.x > (1f - _edgeTolerance) * Screen.width) moveDirection += GetCameraRight(); - if (mousePosition.y < edgeTolerance * Screen.height) + if (mousePosition.y < _edgeTolerance * Screen.height) moveDirection += -GetCameraForward(); - else if (mousePosition.y > (1f - edgeTolerance) * Screen.height) + else if (mousePosition.y > (1f - _edgeTolerance) * Screen.height) moveDirection += GetCameraForward(); - targetPosition += moveDirection; + _targetPosition += moveDirection; } private void DragCamera() @@ -198,13 +198,13 @@ namespace AsteroidGame if (!Mouse.current.rightButton.isPressed) { return; } - Ray ray = cameraReference.ScreenPointToRay(Mouse.current.position.ReadValue()); - if (cameraPlane.Raycast(ray,out float distance)) + Ray ray = _cameraReference.ScreenPointToRay(Mouse.current.position.ReadValue()); + if (_cameraPlane.Raycast(ray,out float distance)) { if (Mouse.current.rightButton.wasPressedThisFrame) - startDrag = ray.GetPoint(distance); + _startDrag = ray.GetPoint(distance); else - targetPosition += startDrag - ray.GetPoint(distance); + _targetPosition += _startDrag - ray.GetPoint(distance); } } diff --git a/Assets/UI/BuildMenuUiController.cs b/Assets/UI/BuildMenuUiController.cs index 5d3a3b1..a283b57 100644 --- a/Assets/UI/BuildMenuUiController.cs +++ b/Assets/UI/BuildMenuUiController.cs @@ -1,44 +1,42 @@ -using System.Collections; using System.Collections.Generic; +using AsteroidGame.Entities; using UnityEngine; using UnityEngine.UIElements; -using AsteroidGame.Entities.Structures.Scripts; using AsteroidGame.Handlers; -using UnityEditor; -namespace AsteroidGame +namespace AsteroidGame.UI { public class BuildMenuUiController : MonoBehaviour { - [Header("Structures")] - [SerializeField] private StructureBaseScriptableObject availableStructuresObject; + [SerializeField] private StructureBaseScriptableObject _availableStructuresObject; - private VisualElement m_Root; - private VisualElement m_SlotContainer; - private List buildings = new(); - private BuildingHandler buildingHandler; - void OnEnable() + private VisualElement _mRoot; + private VisualElement _mSlotContainer; + private List _buildings = new(); + private BuildingHandler _buildingHandler; + + private void OnEnable() { - buildings = availableStructuresObject.structureList; - buildingHandler = FindObjectOfType(); + _buildings = _availableStructuresObject._structureList; + _buildingHandler = FindObjectOfType(); //Store the root from the UI Document component - m_Root = GetComponent().rootVisualElement; - m_SlotContainer = m_Root.Q("Menu"); + _mRoot = GetComponent().rootVisualElement; + _mSlotContainer = _mRoot.Q("Menu"); - for (int i = 0; i < buildings.Count; i++) + for (int i = 0; i < _buildings.Count; i++) { - StructureBase building = buildings[i]; - BuildingButton button = new(); - button.name = building.name; - button.text = building.UiFriendlyName; - button.RegisterCallback((evt, index) => + StructureBase building = _buildings[i]; + BuildingButton button = new() { - buildingHandler.EnterBuildMode(index); - },i); - m_SlotContainer.Add(button); + name = building.name, + text = building.UiFriendlyName + }; + button.RegisterCallback((evt, index) => { _buildingHandler.EnterBuildMode(index); }, + i); + _mSlotContainer.Add(button); } } } -} +} \ No newline at end of file diff --git a/Assets/UI/BuildingButton.cs b/Assets/UI/BuildingButton.cs index 122366f..223ad32 100644 --- a/Assets/UI/BuildingButton.cs +++ b/Assets/UI/BuildingButton.cs @@ -1,9 +1,6 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; using UnityEngine.UIElements; -namespace AsteroidGame +namespace AsteroidGame.UI { public class BuildingButton : Button { @@ -14,7 +11,6 @@ namespace AsteroidGame icon.AddToClassList("slotIcon"); AddToClassList("button"); - } } -} +} \ No newline at end of file diff --git a/Assets/UI/UserInterface.prefab b/Assets/UI/UserInterface.prefab new file mode 100644 index 0000000..189e185 --- /dev/null +++ b/Assets/UI/UserInterface.prefab @@ -0,0 +1,64 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3627079578080913704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3627079578080913706} + - component: {fileID: 3627079578080913707} + - component: {fileID: 3627079578080913701} + m_Layer: 5 + m_Name: UserInterface + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3627079578080913706 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3627079578080913704} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3627079578080913707 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3627079578080913704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PanelSettings: {fileID: 11400000, guid: e6db20d33c1e6754e961e09ddc91ad73, type: 2} + m_ParentUI: {fileID: 0} + sourceAsset: {fileID: 9197481963319205126, guid: 80724155ca8b2ef4bbd2cbb3b6049114, type: 3} + m_SortingOrder: 0 +--- !u!114 &3627079578080913701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3627079578080913704} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0455460303dea141b831f0bfdd0e47f, type: 3} + m_Name: + m_EditorClassIdentifier: + _availableStructuresObject: {fileID: 11400000, guid: f789f54c47873664284d6e8544724693, type: 2} diff --git a/Assets/UI/UserInterface.prefab.meta b/Assets/UI/UserInterface.prefab.meta new file mode 100644 index 0000000..7a3bdf5 --- /dev/null +++ b/Assets/UI/UserInterface.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1170a91b91039d6429d389468bd72c6f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Entities.csproj.DotSettings b/Entities.csproj.DotSettings new file mode 100644 index 0000000..a71a85d --- /dev/null +++ b/Entities.csproj.DotSettings @@ -0,0 +1,8 @@ + + True + True + True + True + True + True + True \ No newline at end of file