using System.Collections.Generic; using ActionGameFramework.Health; using UnityEngine; namespace TowerDefense.Towers { /// /// A class that allows the TowerConfiguration to delegate /// different firing logic this component /// public interface ILauncher { /// /// The method for crafting the firing logic for the tower /// /// /// The enemy that the tower is targeting /// /// /// The projectile component used to attack the enemy /// /// void Launch(Targetable enemy, GameObject attack, Transform firingPoint, int idx = 0); /// /// The method for crafting the firing logic for the tower /// /// /// The enemy that the tower is targeting /// /// /// The projectile component used to attack the enemy /// /// /// A list of firing points to fire from /// void Launch(Targetable enemy, GameObject attack, Transform[] firingPoints); /// /// The method for crafting firing logic at multiple enemies /// /// /// The collection of enemies to attack /// /// /// The projectile component used to attack the enemy /// /// void Launch(List enemies, GameObject attack, Transform[] firingPoints,int maxAttack = 1); } }