//
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
//
namespace MUnique.OpenMU.GameLogic.PlugIns;
using System.Runtime.InteropServices;
using MUnique.OpenMU.Pathfinding;
using MUnique.OpenMU.PlugIns;
///
/// A plugin interface which is called when a target got attacked by an area skill.
/// The key is the skill number.
///
[Guid("BAE1E31E-08EA-4B77-BE0E-89DECD9EAA29")]
[PlugInPoint("Area skill plugins", "Is called when a target got attacked by an area skill.")]
public interface IAreaSkillPlugIn : IStrategyPlugIn
{
///
/// Is called after a target got automatically attacked by an area skill, regardless if the attack effectively hit or not.
///
/// The attacker.
/// The target.
/// The skill entry.
/// The target area center.
/// Hit info produced by the skill.
ValueTask AfterTargetGotAttackedAsync(IAttacker attacker, IAttackable target, SkillEntry skillEntry, Point targetAreaCenter, HitInfo? hitInfo);
}