// // ICombatState.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using NosSmooth.Core.Client; using NosSmooth.Extensions.Combat.Operations; using NosSmooth.Game.Data.Entities; namespace NosSmooth.Extensions.Combat; /// /// The combat technique state used for queuing operations and storing information. /// public interface ICombatState { /// /// Gets the combat manager. /// public CombatManager CombatManager { get; } /// /// Gets the game. /// public Game.Game Game { get; } /// /// Gets the NosTale client. /// public INostaleClient Client { get; } /// /// Cancel the combat technique, quit the combat state. /// public void QuitCombat(); /// /// Replace the current operation with this one. /// /// The operation to use. /// Whether to empty the queue of the operations. /// Whether to still use the current operation (true) after this one or discard it (false). public void SetCurrentOperation (ICombatOperation operation, bool emptyQueue = false, bool prependCurrentOperationToQueue = false); /// /// Enqueue the operation at the end of the queue. /// /// The operation to enqueue. public void EnqueueOperation(ICombatOperation operation); /// /// Remove the operations by the given filter. /// /// Called for each operation, should return true if it should be removed. public void RemoveOperations(Func filter); }