Deukhoofd 6d71de375e
All checks were successful
Build / Build (push) Successful in 48s
More abilities, refactor custom triggers to be typed.
2025-06-13 11:15:48 +02:00

111 lines
3.7 KiB
C#

namespace PkmnLib.Plugin.Gen7.Scripts;
public static class CustomTriggers
{
public static readonly StringKey AuroraVeilDuration = "aurora_veil_duration";
public record AuroraVeilDurationArgs(IExecutingMove Move, int Duration) : ICustomTriggerArgs
{
public int Duration { get; set; } = Duration;
}
public static readonly StringKey ModifyBind = "modify_bind";
public record ModifyBindArgs(IExecutingMove Move) : ICustomTriggerArgs
{
public int Duration { get; set; } = 5;
public float DamagePercent { get; set; } = 1f / 8f;
}
public static readonly StringKey IgnoreHail = "ignores_hail";
public record IgnoreHailArgs(IPokemon Pokemon) : ICustomTriggerArgs
{
public bool Ignore { get; set; } = false;
}
public static readonly StringKey LightScreenNumberOfTurns = "light_screen_number_of_turns";
public record LightScreenNumberOfTurnsArgs(IExecutingMove Move, int Duration) : ICustomTriggerArgs
{
public int Duration { get; set; } = Duration;
}
public static readonly StringKey ReflectNumberOfTurns = "reflect_number_of_turns";
public record ReflectNumberOfTurnsArgs(IExecutingMove Move, int Duration) : ICustomTriggerArgs
{
public int Duration { get; set; } = Duration;
}
public static readonly StringKey BypassSleep = "bypass_sleep";
public record BypassSleepArgs(IExecutingMove Move, bool Bypass) : ICustomTriggerArgs
{
public bool Bypass { get; set; } = Bypass;
}
public static readonly StringKey Whirlpool = "whirlpool";
public record WhirlpoolArgs(IExecutingMove Move, IPokemon Target, byte HitIndex, int Turns, float DamagePercent)
: ICustomTriggerArgs
{
public int Turns { get; set; } = Turns;
public float DamagePercent { get; set; } = DamagePercent;
}
public static readonly StringKey ModifyAuraEffect = "modify_aura_effect";
public record ModifyAuraEffectArgs(IExecutingMove Move, IPokemon Target, byte HitIndex, float AuraEffect)
: ICustomTriggerArgs
{
public float AuraEffect { get; set; } = AuraEffect;
}
public static readonly StringKey BypassChargeMove = "bypass_charge_move";
public record BypassChargeMoveArgs(IExecutingMove Move, bool Bypass) : ICustomTriggerArgs
{
public bool Bypass { get; set; } = Bypass;
}
public static readonly StringKey ModifySleepTurns = "modify_sleep_turns";
public record ModifySleepTurnsArgs(IPokemon Pokemon, int Turns) : ICustomTriggerArgs
{
public int Turns { get; set; } = Turns;
}
public static readonly StringKey BypassProtection = "bypass_protection";
public record BypassProtectionArgs(IExecutingMove Move, IPokemon Target, byte HitIndex, bool Bypass)
: ICustomTriggerArgs
{
public bool Bypass { get; set; } = Bypass;
}
public static readonly StringKey BypassSubstitute = "bypass_subsitute";
public record BypassSubstituteArgs(IExecutingMove Move, IPokemon Target, byte HitIndex, bool Bypass)
: ICustomTriggerArgs
{
public bool Bypass { get; set; } = Bypass;
}
public static readonly StringKey ModifyDrain = "modify_drain";
public record ModifyDrainArgs(IExecutingMove Move, IPokemon Target, byte Hit, uint Damage, uint Healed, bool Invert)
: ICustomTriggerArgs
{
public uint Healed { get; set; } = Healed;
public bool Invert { get; set; } = Invert;
}
public static readonly StringKey ModifyHealPercent = "modify_heal_percent";
public record ModifyHealPercentArgs(IExecutingMove Move, IPokemon Target, byte Hit, float HealPercent)
: ICustomTriggerArgs
{
public float HealPercent { get; set; } = HealPercent;
}
}