Files
AdamuSw/src/GameLogic/INpcIntelligence.cs
2026-07-14 19:00:35 +03:00

52 lines
1.5 KiB
C#

// <copyright file="INpcIntelligence.cs" company="MUnique">
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
// </copyright>
namespace MUnique.OpenMU.GameLogic;
using MUnique.OpenMU.GameLogic.NPC;
using MUnique.OpenMU.Pathfinding;
/// <summary>
/// Interface of a non-player-character artificial intelligence.
/// </summary>
public interface INpcIntelligence
{
/// <summary>
/// Gets or sets the monster which this AI is controlling.
/// </summary>
NonPlayerCharacter Npc { get; set; }
/// <summary>
/// Gets a value indicating whether this instance can walk on safezone.
/// </summary>
/// <value>
/// <c>true</c> if this instance can walk on safezone; otherwise, <c>false</c>.
/// </value>
bool CanWalkOnSafezone { get; }
/// <summary>
/// Registers a hit from an attacker.
/// </summary>
/// <param name="attacker">The attacker.</param>
void RegisterHit(IAttacker attacker);
/// <summary>
/// Starts the actions.
/// </summary>
void Start();
/// <summary>
/// Pauses the actions.
/// </summary>
void Pause();
/// <summary>
/// Determines whether the monster can walk on the specified target.
/// </summary>
/// <param name="target">The target.</param>
/// <returns>
/// <c>true</c> if this instance can walk on the specified target; otherwise, <c>false</c>.
/// </returns>
bool CanWalkOn(Point target);
}