namespace PKHeX.Core;

/// <summary> Ribbons introduced in Generation 4 and were transferred to future Generations (4 and 5 only). </summary>
public interface IRibbonSetUnique4
{
    bool RibbonAbility { get; set; }
    bool RibbonAbilityGreat { get; set; }
    bool RibbonAbilityDouble { get; set; }
    bool RibbonAbilityMulti { get; set; }
    bool RibbonAbilityPair { get; set; }
    bool RibbonAbilityWorld { get; set; }

    bool RibbonG3Cool { get; set; }
    bool RibbonG3CoolSuper { get; set; }
    bool RibbonG3CoolHyper { get; set; }
    bool RibbonG3CoolMaster { get; set; }
    bool RibbonG3Beauty { get; set; }
    bool RibbonG3BeautySuper { get; set; }
    bool RibbonG3BeautyHyper { get; set; }
    bool RibbonG3BeautyMaster { get; set; }
    bool RibbonG3Cute { get; set; }
    bool RibbonG3CuteSuper { get; set; }
    bool RibbonG3CuteHyper { get; set; }
    bool RibbonG3CuteMaster { get; set; }
    bool RibbonG3Smart { get; set; }
    bool RibbonG3SmartSuper { get; set; }
    bool RibbonG3SmartHyper { get; set; }
    bool RibbonG3SmartMaster { get; set; }
    bool RibbonG3Tough { get; set; }
    bool RibbonG3ToughSuper { get; set; }
    bool RibbonG3ToughHyper { get; set; }
    bool RibbonG3ToughMaster { get; set; }

    bool RibbonG4Cool { get; set; }
    bool RibbonG4CoolGreat { get; set; }
    bool RibbonG4CoolUltra { get; set; }
    bool RibbonG4CoolMaster { get; set; }
    bool RibbonG4Beauty { get; set; }
    bool RibbonG4BeautyGreat { get; set; }
    bool RibbonG4BeautyUltra { get; set; }
    bool RibbonG4BeautyMaster { get; set; }
    bool RibbonG4Cute { get; set; }
    bool RibbonG4CuteGreat { get; set; }
    bool RibbonG4CuteUltra { get; set; }
    bool RibbonG4CuteMaster { get; set; }
    bool RibbonG4Smart { get; set; }
    bool RibbonG4SmartGreat { get; set; }
    bool RibbonG4SmartUltra { get; set; }
    bool RibbonG4SmartMaster { get; set; }
    bool RibbonG4Tough { get; set; }
    bool RibbonG4ToughGreat { get; set; }
    bool RibbonG4ToughUltra { get; set; }
    bool RibbonG4ToughMaster { get; set; }
}
