using PkmnLib.Dynamic.ScriptHandling;
namespace PkmnLib.Dynamic.Models.Choices;
///
/// A choice to pass a turn.
///
public interface IPassChoice : ITurnChoice
{
}
///
public class PassChoice : TurnChoice, IPassChoice
{
///
public PassChoice(IPokemon user) : base(user)
{
}
///
public override int ScriptCount => User.ScriptCount;
///
public override void GetOwnScripts(List> scripts)
{
}
///
public override void CollectScripts(List> scripts)
{
User.CollectScripts(scripts);
}
///
public override string ToString() =>
$"PassChoice: {User}";
protected bool Equals(PassChoice other) => other.User == User;
///
public override bool Equals(object? obj)
{
if (obj is null)
return false;
if (ReferenceEquals(this, obj))
return true;
if (obj is not PassChoice other)
return false;
return Equals(other);
}
///
public override int GetHashCode() =>
User?.GetHashCode() ?? 0;
}