diff --git a/UOP1_Project/Assets/Prefabs/Characters/SlimeCritter_Base.prefab b/UOP1_Project/Assets/Prefabs/Characters/SlimeCritter_Base.prefab index 0a4a10591..11a755d81 100644 --- a/UOP1_Project/Assets/Prefabs/Characters/SlimeCritter_Base.prefab +++ b/UOP1_Project/Assets/Prefabs/Characters/SlimeCritter_Base.prefab @@ -58,6 +58,21 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _attackConfigSO: {fileID: 11400000, guid: fa67200955f70e64abecdd0107951472, type: 2} + onHit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2038924309811281612} + m_TargetAssemblyTypeName: SlimeCritterAttackController, Assembly-CSharp + m_MethodName: StopAttack + m_Mode: 1 + 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 --- !u!135 &6188918218575104391 SphereCollider: m_ObjectHideFlags: 0 diff --git a/UOP1_Project/Assets/Scripts/Characters/Attack.cs b/UOP1_Project/Assets/Scripts/Characters/Attack.cs index d1de43acc..9679173dd 100644 --- a/UOP1_Project/Assets/Scripts/Characters/Attack.cs +++ b/UOP1_Project/Assets/Scripts/Characters/Attack.cs @@ -1,10 +1,13 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.Events; public class Attack : MonoBehaviour { [SerializeField] private AttackConfigSO _attackConfigSO; + [SerializeField] [Tooltip("Any additional events to be called upon a successful hit")] + private UnityEvent onHit; public AttackConfigSO AttackConfig => _attackConfigSO; @@ -21,7 +24,11 @@ private void OnTriggerEnter(Collider other) if (other.TryGetComponent(out Damageable damageableComp)) { if (!damageableComp.GetHit) + { damageableComp.ReceiveAnAttack(_attackConfigSO.AttackStrength); + // Invoke any necessary hit events + onHit?.Invoke(); + } } } } diff --git a/UOP1_Project/Assets/Scripts/Characters/SlimeCritterAttackController.cs b/UOP1_Project/Assets/Scripts/Characters/SlimeCritterAttackController.cs index 67be82862..da635a603 100644 --- a/UOP1_Project/Assets/Scripts/Characters/SlimeCritterAttackController.cs +++ b/UOP1_Project/Assets/Scripts/Characters/SlimeCritterAttackController.cs @@ -40,4 +40,10 @@ void Update() _innerTime -= Time.deltaTime; } } + + public void StopAttack() + { + // Reset innerTime + _innerTime = 0.0f; + } }