using System; using Core.Extensions; using UnityEngine; public class Ability : MonoBehaviour { [Header("Flags")] public bool cooldownBlocked; public bool blocked; [Header("Cooldown")] public float cooldown; protected float currentCooldown; [Header("Stats")] public float power; public bool TryAbility() { if (!blocked && currentCooldown <= 0) { currentCooldown = cooldown; AbilityEffects(); return true; } return false; } protected virtual void AbilityEffects() { } private void Update() { if (currentCooldown > 0 && !cooldownBlocked) { currentCooldown -= Time.deltaTime; } } protected void ShootBullet(Projectile projectile, Vector3 direction) { Projectile newProjectile = Instantiate(projectile, transform.position, Quaternion.identity); newProjectile.transform.Lookat2D(direction); newProjectile.tag = tag; //will have to figure out stats and projectile creation } }