PkmnLib.NET/PkmnLib.Static/Moves/SecondaryEffect.cs

45 lines
1.1 KiB
C#

using PkmnLib.Static.Utils;
namespace PkmnLib.Static.Moves;
/// <summary>
/// A secondary effect is an effect on a move that happens after it hits.
/// </summary>
public interface ISecondaryEffect
{
/// <summary>
/// The chance in percentages that the effect triggers. When less than 0, the effect is always active.
/// </summary>
public float Chance { get; }
/// <summary>
/// The name of the effect.
/// </summary>
public StringKey Name { get; }
/// <summary>
/// Parameters for the effect.
/// </summary>
public IReadOnlyDictionary<StringKey, object> Parameters { get; }
}
/// <inheritdoc />
public class SecondaryEffectImpl : ISecondaryEffect
{
/// <inheritdoc cref="SecondaryEffectImpl" />
public SecondaryEffectImpl(float chance, StringKey name, IReadOnlyDictionary<StringKey, object> parameters)
{
Chance = chance;
Name = name;
Parameters = parameters;
}
/// <inheritdoc />
public float Chance { get; }
/// <inheritdoc />
public StringKey Name { get; }
/// <inheritdoc />
public IReadOnlyDictionary<StringKey, object> Parameters { get; }
}