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);
}
}