diff --git a/Assets/Input System/InputControl.cs b/Assets/Input System/InputControl.cs index 1721bcc14fc4a6451cf7b233cb0db63f719486da..9a431f1bb23f47d4feecffa561e86157f51e2c78 100644 --- a/Assets/Input System/InputControl.cs +++ b/Assets/Input System/InputControl.cs @@ -213,7 +213,7 @@ public partial class @InputControl : IInputActionCollection2, IDisposable ""path"": ""<Keyboard>/f"", ""interactions"": """", ""processors"": """", - ""groups"": """", + ""groups"": ""Keyboard"", ""action"": ""Shop"", ""isComposite"": false, ""isPartOfComposite"": false diff --git a/Assets/Input System/InputControl.inputactions b/Assets/Input System/InputControl.inputactions index 8cb38ff4810a20f531e3eccad13be7a347f3b54b..68da11d74e0f0a1710cf1a1c0f04075b98d014e9 100644 --- a/Assets/Input System/InputControl.inputactions +++ b/Assets/Input System/InputControl.inputactions @@ -191,7 +191,7 @@ "path": "<Keyboard>/f", "interactions": "", "processors": "", - "groups": "", + "groups": "Keyboard", "action": "Shop", "isComposite": false, "isPartOfComposite": false diff --git a/Assets/Prefabs/Enemies/EnemyManager.prefab b/Assets/Prefabs/Enemies/EnemyManager.prefab index bd24c7264e5d1b5c9562dbe306cdef1f26f464df..6a1ae7da69bb850fe64d411f0b4a84b27da319d0 100644 --- a/Assets/Prefabs/Enemies/EnemyManager.prefab +++ b/Assets/Prefabs/Enemies/EnemyManager.prefab @@ -18,6 +18,7 @@ GameObject: - component: {fileID: 2056491566893606153} - component: {fileID: 2056491566893606156} - component: {fileID: 8396560265405638811} + - component: {fileID: 3767772172126678300} m_Layer: 0 m_Name: EnemyManager m_TagString: Untagged @@ -366,3 +367,67 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!114 &3767772172126678300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2056491566893606147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de1ce7b2da063c845bb32c30cd8cef70, type: 3} + m_Name: + m_EditorClassIdentifier: + gameEvent: {fileID: 11400000, guid: ea0153e47b9ad634ab84361b023a3c42, type: 2} + response: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2056491566893606150} + m_TargetAssemblyTypeName: EnemySpawnManager, Assembly-CSharp + m_MethodName: OnStopSpawn + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2056491566893606149} + m_TargetAssemblyTypeName: EnemySpawnManager, Assembly-CSharp + m_MethodName: OnStopSpawn + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2056491566893606148} + m_TargetAssemblyTypeName: EnemySpawnManager, Assembly-CSharp + m_MethodName: OnStopSpawn + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 2056491566893606154} + m_TargetAssemblyTypeName: EnemySpawnManager, Assembly-CSharp + m_MethodName: OnStopSpawn + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Assets/Scripts/Enemy/EnemyAttack.cs b/Assets/Scripts/Enemy/EnemyAttack.cs index 843cc926039104322cdaeafadee40700fc69f1d4..baeeb7e2f37521428c0244973a5620f59bdf6f96 100644 --- a/Assets/Scripts/Enemy/EnemyAttack.cs +++ b/Assets/Scripts/Enemy/EnemyAttack.cs @@ -1,125 +1,124 @@ using UnityEngine; -using System.Collections; public class EnemyAttack : MonoBehaviour { - public static EnemyAttack Instance; - public float timeBetweenAttacks = 0.5f; - public bool immunity; - public bool instantKill; - public int attackDamage = 10; - [Header("Events")] - public GameEvent OnPlayerTakeDamage; - - [Header("Events")] - public GameEvent OnPetTakeDamage; - - Animator anim; - GameObject player; - GameObject pet; - EnemyHealth enemyHealth; - PlayerHealth playerHealth; - PetHealth petHealth; - - bool playerInRange; - bool petInRange; - float timer; - - - void Awake () + public static EnemyAttack Instance; + public float timeBetweenAttacks = 0.5f; + public bool immunity; + public bool instantKill; + public int attackDamage = 10; + [Header("Events")] + public GameEvent OnPlayerTakeDamage; + + [Header("Events")] + public GameEvent OnPetTakeDamage; + + Animator anim; + GameObject player; + GameObject pet; + EnemyHealth enemyHealth; + PlayerHealth playerHealth; + PetHealth petHealth; + + bool playerInRange; + bool petInRange; + float timer; + + + void Awake() + { + instantKill = false; + immunity = false; + player = GameObject.FindGameObjectWithTag("Player"); + playerHealth = player.GetComponent<PlayerHealth>(); + + pet = GameObject.FindGameObjectWithTag("Pet"); + if (pet != null) petHealth = pet.GetComponent<PetHealth>(); + + enemyHealth = GetComponent<EnemyHealth>(); + anim = GetComponent<Animator>(); + + petInRange = false; + playerInRange = false; + // if(Instance!= null) + // { + // Destroy(gameObject); + // return; + // } + // Instance = this; + } + + void OnTriggerEnter(Collider other) + { + if (other.gameObject == player && other.isTrigger == false) { - instantKill = false; - immunity = false; - player = GameObject.FindGameObjectWithTag ("Player"); - playerHealth = player.GetComponent<PlayerHealth>(); - - pet = GameObject.FindGameObjectWithTag("Pet"); - if (pet != null) petHealth = pet.GetComponent<PetHealth>(); - - enemyHealth = GetComponent<EnemyHealth>(); - anim = GetComponent <Animator> (); - - petInRange = false; - playerInRange = false; - if(Instance!= null) - { - Destroy(gameObject); - return; - } - Instance = this; + playerInRange = true; } - - void OnTriggerEnter (Collider other) + else if (other.gameObject == pet && other.isTrigger == false) { - if(other.gameObject == player && other.isTrigger == false) - { - playerInRange = true; - } - else if(other.gameObject == pet && other.isTrigger == false) - { - petInRange = true; - } + petInRange = true; } + } - void OnTriggerExit (Collider other) + void OnTriggerExit(Collider other) + { + if (other.gameObject == player) + { + playerInRange = false; + } + else if (other.gameObject == pet) { - if(other.gameObject == player) - { - playerInRange = false; - } - else if (other.gameObject == pet) - { - petInRange = false; - } + petInRange = false; } + } - void Update () + void Update() + { + timer += Time.deltaTime; + + if (timer >= timeBetweenAttacks && playerInRange && enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) + { + AttackPlayer(); + } + + if (timer >= timeBetweenAttacks && petInRange && enemyHealth.currentHealth > 0 && petHealth.currentHealth > 0) { - timer += Time.deltaTime; + AttackPet(); + } + } - if(timer >= timeBetweenAttacks && playerInRange && enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) - { - AttackPlayer(); - } + public void onPlayerDead(Component sender, object data) + { + anim.SetTrigger("PlayerDead"); + } - if(timer >= timeBetweenAttacks && petInRange && enemyHealth.currentHealth > 0 && petHealth.currentHealth > 0) - { - AttackPet(); - } - } - public void onPlayerDead(Component sender, object data) + void AttackPlayer() + { + timer = 0f; + if (!immunity) { - anim.SetTrigger("PlayerDead"); + OnPlayerTakeDamage.Raise(this, attackDamage); } + else + { + OnPlayerTakeDamage.Raise(this, 0); + } + } - void AttackPlayer() + void AttackPet() + { + timer = 0f; + if (!instantKill) { - timer = 0f; - if (!immunity) - { - OnPlayerTakeDamage.Raise(this, attackDamage); - } - else - { - OnPlayerTakeDamage.Raise(this, 0); - - } + OnPetTakeDamage.Raise(this, attackDamage); } - - void AttackPet() + else { - timer = 0f; - if (!instantKill) - { - OnPetTakeDamage.Raise(this, attackDamage); - } - else - { - OnPetTakeDamage.Raise(this, 200); - - } + OnPetTakeDamage.Raise(this, 200); + } + } } diff --git a/Assets/Scripts/Managers/EnemyManager.cs b/Assets/Scripts/Managers/EnemyManager.cs index ac5e460656fb6fe4577221d9df35f4f2547fa33a..987247bc96fa2bc71ac696dfa85c3bb02e5ff6ec 100644 --- a/Assets/Scripts/Managers/EnemyManager.cs +++ b/Assets/Scripts/Managers/EnemyManager.cs @@ -18,7 +18,7 @@ public class EnemyManager : MonoBehaviour public void OnEnemySpawn(Component sender, object data) { numEnemySpawn++; - if (numEnemySpawn == maxNumEnemySpawn) + if (numEnemySpawn >= maxNumEnemySpawn) { stopSpawnEnemy.Raise(this, null); } diff --git a/Assets/Scripts/Managers/EnemySpawnManager.cs b/Assets/Scripts/Managers/EnemySpawnManager.cs index 66cf51e59ca7c4e946c49a97b6444c0f11bd573b..d9911d4813e0ecf925222971cb1fd6f708e033cd 100644 --- a/Assets/Scripts/Managers/EnemySpawnManager.cs +++ b/Assets/Scripts/Managers/EnemySpawnManager.cs @@ -29,6 +29,7 @@ public class EnemySpawnManager : MonoBehaviour { int spawnPointIndex = Random.Range(0, spawnPoints.Length); Instantiate(enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation); + Debug.Log("Instantiate " + enemy.name + " on " + spawnPoints[spawnPointIndex].name); }