PKHeX/PKHeX.Core/Ribbons/IRibbonSetMark8.cs
Kurt 5bcccc6d92
HOME 2.0.0: Handle conversion behavior & restrictions (#3506)
* Revises legality checks to account for traveling between the three game islands (PLA/BDSP/SWSH)
* Adds conversion mechanisms between the three formats, as well as flexible conversion options to backfill missing data (thanks GameFreak/ILCA for opting for lossy conversion instead of updating the games).
* Adds API abstractions for HOME data storage format (EKH/PKH format 1, aka EH1/PH1).
* Revises some APIs for better usage:
  - `PKM` now exposes a `Context` to indicate the isolation context for legality purposes.
  - Some method signatures have changed to accept `Context` or `GameVersion` instead of a vague `int` for Generation.
  - Evolution History is now tracked in the Legality parse for specific contexts, rather than only per generation.
2022-05-30 21:43:52 -07:00

215 lines
No EOL
9.7 KiB
C#

namespace PKHeX.Core
{
/// <summary> Marks introduced in Generation 8 </summary>
public interface IRibbonSetMark8
{
bool RibbonMarkLunchtime { get; set; }
bool RibbonMarkSleepyTime { get; set; }
bool RibbonMarkDusk { get; set; }
bool RibbonMarkDawn { get; set; }
bool RibbonMarkCloudy { get; set; }
bool RibbonMarkRainy { get; set; }
bool RibbonMarkStormy { get; set; }
bool RibbonMarkSnowy { get; set; }
bool RibbonMarkBlizzard { get; set; }
bool RibbonMarkDry { get; set; }
bool RibbonMarkSandstorm { get; set; }
bool RibbonMarkMisty { get; set; }
bool RibbonMarkDestiny { get; set; }
bool RibbonMarkFishing { get; set; }
bool RibbonMarkCurry { get; set; }
bool RibbonMarkUncommon { get; set; }
bool RibbonMarkRare { get; set; }
bool RibbonMarkRowdy { get; set; }
bool RibbonMarkAbsentMinded { get; set; }
bool RibbonMarkJittery { get; set; }
bool RibbonMarkExcited { get; set; }
bool RibbonMarkCharismatic { get; set; }
bool RibbonMarkCalmness { get; set; }
bool RibbonMarkIntense { get; set; }
bool RibbonMarkZonedOut { get; set; }
bool RibbonMarkJoyful { get; set; }
bool RibbonMarkAngry { get; set; }
bool RibbonMarkSmiley { get; set; }
bool RibbonMarkTeary { get; set; }
bool RibbonMarkUpbeat { get; set; }
bool RibbonMarkPeeved { get; set; }
bool RibbonMarkIntellectual { get; set; }
bool RibbonMarkFerocious { get; set; }
bool RibbonMarkCrafty { get; set; }
bool RibbonMarkScowling { get; set; }
bool RibbonMarkKindly { get; set; }
bool RibbonMarkFlustered { get; set; }
bool RibbonMarkPumpedUp { get; set; }
bool RibbonMarkZeroEnergy { get; set; }
bool RibbonMarkPrideful { get; set; }
bool RibbonMarkUnsure { get; set; }
bool RibbonMarkHumble { get; set; }
bool RibbonMarkThorny { get; set; }
bool RibbonMarkVigor { get; set; }
bool RibbonMarkSlump { get; set; }
bool HasMark();
}
internal static partial class RibbonExtensions
{
public static bool HasWeatherMark(this IRibbonSetMark8 m)
{
return m.RibbonMarkCloudy || m.RibbonMarkRainy || m.RibbonMarkStormy || m.RibbonMarkSnowy
|| m.RibbonMarkBlizzard || m.RibbonMarkDry || m.RibbonMarkSandstorm || m.RibbonMarkMisty;
}
private static readonly string[] RibbonSetNamesMark8 =
{
nameof(IRibbonSetMark8.RibbonMarkLunchtime),
nameof(IRibbonSetMark8.RibbonMarkSleepyTime),
nameof(IRibbonSetMark8.RibbonMarkDusk),
nameof(IRibbonSetMark8.RibbonMarkDawn),
nameof(IRibbonSetMark8.RibbonMarkCloudy),
nameof(IRibbonSetMark8.RibbonMarkRainy),
nameof(IRibbonSetMark8.RibbonMarkStormy),
nameof(IRibbonSetMark8.RibbonMarkSnowy),
nameof(IRibbonSetMark8.RibbonMarkBlizzard),
nameof(IRibbonSetMark8.RibbonMarkDry),
nameof(IRibbonSetMark8.RibbonMarkSandstorm),
nameof(IRibbonSetMark8.RibbonMarkMisty),
nameof(IRibbonSetMark8.RibbonMarkDestiny),
nameof(IRibbonSetMark8.RibbonMarkFishing),
nameof(IRibbonSetMark8.RibbonMarkCurry),
nameof(IRibbonSetMark8.RibbonMarkUncommon),
nameof(IRibbonSetMark8.RibbonMarkRare),
nameof(IRibbonSetMark8.RibbonMarkRowdy),
nameof(IRibbonSetMark8.RibbonMarkAbsentMinded),
nameof(IRibbonSetMark8.RibbonMarkJittery),
nameof(IRibbonSetMark8.RibbonMarkExcited),
nameof(IRibbonSetMark8.RibbonMarkCharismatic),
nameof(IRibbonSetMark8.RibbonMarkCalmness),
nameof(IRibbonSetMark8.RibbonMarkIntense),
nameof(IRibbonSetMark8.RibbonMarkZonedOut),
nameof(IRibbonSetMark8.RibbonMarkJoyful),
nameof(IRibbonSetMark8.RibbonMarkAngry),
nameof(IRibbonSetMark8.RibbonMarkSmiley),
nameof(IRibbonSetMark8.RibbonMarkTeary),
nameof(IRibbonSetMark8.RibbonMarkUpbeat),
nameof(IRibbonSetMark8.RibbonMarkPeeved),
nameof(IRibbonSetMark8.RibbonMarkIntellectual),
nameof(IRibbonSetMark8.RibbonMarkFerocious),
nameof(IRibbonSetMark8.RibbonMarkCrafty),
nameof(IRibbonSetMark8.RibbonMarkScowling),
nameof(IRibbonSetMark8.RibbonMarkKindly),
nameof(IRibbonSetMark8.RibbonMarkFlustered),
nameof(IRibbonSetMark8.RibbonMarkPumpedUp),
nameof(IRibbonSetMark8.RibbonMarkZeroEnergy),
nameof(IRibbonSetMark8.RibbonMarkPrideful),
nameof(IRibbonSetMark8.RibbonMarkUnsure),
nameof(IRibbonSetMark8.RibbonMarkHumble),
nameof(IRibbonSetMark8.RibbonMarkThorny),
nameof(IRibbonSetMark8.RibbonMarkVigor),
nameof(IRibbonSetMark8.RibbonMarkSlump),
};
internal static bool[] RibbonBits(this IRibbonSetMark8 set)
{
return new[]
{
set.RibbonMarkLunchtime,
set.RibbonMarkSleepyTime,
set.RibbonMarkDusk,
set.RibbonMarkDawn,
set.RibbonMarkCloudy,
set.RibbonMarkRainy,
set.RibbonMarkStormy,
set.RibbonMarkSnowy,
set.RibbonMarkBlizzard,
set.RibbonMarkDry,
set.RibbonMarkSandstorm,
set.RibbonMarkMisty,
set.RibbonMarkDestiny,
set.RibbonMarkFishing,
set.RibbonMarkCurry,
set.RibbonMarkUncommon,
set.RibbonMarkRare,
set.RibbonMarkRowdy,
set.RibbonMarkAbsentMinded,
set.RibbonMarkJittery,
set.RibbonMarkExcited,
set.RibbonMarkCharismatic,
set.RibbonMarkCalmness,
set.RibbonMarkIntense,
set.RibbonMarkZonedOut,
set.RibbonMarkJoyful,
set.RibbonMarkAngry,
set.RibbonMarkSmiley,
set.RibbonMarkTeary,
set.RibbonMarkUpbeat,
set.RibbonMarkPeeved,
set.RibbonMarkIntellectual,
set.RibbonMarkFerocious,
set.RibbonMarkCrafty,
set.RibbonMarkScowling,
set.RibbonMarkKindly,
set.RibbonMarkFlustered,
set.RibbonMarkPumpedUp,
set.RibbonMarkZeroEnergy,
set.RibbonMarkPrideful,
set.RibbonMarkUnsure,
set.RibbonMarkHumble,
set.RibbonMarkThorny,
set.RibbonMarkVigor,
set.RibbonMarkSlump,
};
}
internal static string[] RibbonNames(this IRibbonSetMark8 _) => RibbonSetNamesMark8;
internal static void CopyRibbonSetMark8(this IRibbonSetMark8 set, IRibbonSetMark8 dest)
{
dest.RibbonMarkLunchtime = set.RibbonMarkLunchtime;
dest.RibbonMarkSleepyTime = set.RibbonMarkSleepyTime;
dest.RibbonMarkDusk = set.RibbonMarkDusk;
dest.RibbonMarkDawn = set.RibbonMarkDawn;
dest.RibbonMarkCloudy = set.RibbonMarkCloudy;
dest.RibbonMarkRainy = set.RibbonMarkRainy;
dest.RibbonMarkStormy = set.RibbonMarkStormy;
dest.RibbonMarkSnowy = set.RibbonMarkSnowy;
dest.RibbonMarkBlizzard = set.RibbonMarkBlizzard;
dest.RibbonMarkDry = set.RibbonMarkDry;
dest.RibbonMarkSandstorm = set.RibbonMarkSandstorm;
dest.RibbonMarkMisty = set.RibbonMarkMisty;
dest.RibbonMarkDestiny = set.RibbonMarkDestiny;
dest.RibbonMarkFishing = set.RibbonMarkFishing;
dest.RibbonMarkCurry = set.RibbonMarkCurry;
dest.RibbonMarkUncommon = set.RibbonMarkUncommon;
dest.RibbonMarkRare = set.RibbonMarkRare;
dest.RibbonMarkRowdy = set.RibbonMarkRowdy;
dest.RibbonMarkAbsentMinded = set.RibbonMarkAbsentMinded;
dest.RibbonMarkJittery = set.RibbonMarkJittery;
dest.RibbonMarkExcited = set.RibbonMarkExcited;
dest.RibbonMarkCharismatic = set.RibbonMarkCharismatic;
dest.RibbonMarkCalmness = set.RibbonMarkCalmness;
dest.RibbonMarkIntense = set.RibbonMarkIntense;
dest.RibbonMarkZonedOut = set.RibbonMarkZonedOut;
dest.RibbonMarkJoyful = set.RibbonMarkJoyful;
dest.RibbonMarkAngry = set.RibbonMarkAngry;
dest.RibbonMarkSmiley = set.RibbonMarkSmiley;
dest.RibbonMarkTeary = set.RibbonMarkTeary;
dest.RibbonMarkUpbeat = set.RibbonMarkUpbeat;
dest.RibbonMarkPeeved = set.RibbonMarkPeeved;
dest.RibbonMarkIntellectual = set.RibbonMarkIntellectual;
dest.RibbonMarkFerocious = set.RibbonMarkFerocious;
dest.RibbonMarkCrafty = set.RibbonMarkCrafty;
dest.RibbonMarkScowling = set.RibbonMarkScowling;
dest.RibbonMarkKindly = set.RibbonMarkKindly;
dest.RibbonMarkFlustered = set.RibbonMarkFlustered;
dest.RibbonMarkPumpedUp = set.RibbonMarkPumpedUp;
dest.RibbonMarkZeroEnergy = set.RibbonMarkZeroEnergy;
dest.RibbonMarkPrideful = set.RibbonMarkPrideful;
dest.RibbonMarkUnsure = set.RibbonMarkUnsure;
dest.RibbonMarkHumble = set.RibbonMarkHumble;
dest.RibbonMarkThorny = set.RibbonMarkThorny;
dest.RibbonMarkVigor = set.RibbonMarkVigor;
dest.RibbonMarkSlump = set.RibbonMarkSlump;
}
}
}