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