namespace PKHeX.Core { /// /// Ribbon Indexes for Generation 8 /// public enum RibbonIndex { ChampionKalos, ChampionG3, ChampionSinnoh, BestFriends, Training, BattlerSkillful, BattlerExpert, Effort, Alert, Shock, Downcast, Careless, Relax, Snooze, Smile, Gorgeous, Royal, GorgeousRoyal, Artist, Footprint, Record, Legend, Country, National, Earth, World, Classic, Premier, Event, Birthday, Special, Souvenir, Wishing, ChampionBattle, ChampionRegional, ChampionNational, ChampionWorld, CountMemoryContest, CountMemoryBattle, ChampionG6Hoenn, ContestStar, MasterCoolness, MasterBeauty, MasterCuteness, MasterCleverness, MasterToughness, ChampionAlola, BattleRoyale, BattleTreeGreat, BattleTreeMaster, ChampionGalar, TowerMaster, MasterRank, MarkLunchtime, MarkSleepyTime, MarkDusk, MarkDawn, MarkCloudy, MarkRainy, MarkStormy, MarkSnowy, MarkBlizzard, MarkDry, MarkSandstorm, MarkMisty, MarkDestiny, MarkFishing, MarkCurry, MarkUncommon, MarkRare, MarkRowdy, MarkAbsentMinded, MarkJittery, MarkExcited, MarkCharismatic, MarkCalmness, MarkIntense, MarkZonedOut, MarkJoyful, MarkAngry, MarkSmiley, MarkTeary, MarkUpbeat, MarkPeeved, MarkIntellectual, MarkFerocious, MarkCrafty, MarkScowling, MarkKindly, MarkFlustered, MarkPumpedUp, MarkZeroEnergy, MarkPrideful, MarkUnsure, MarkHumble, MarkThorny, MarkVigor, MarkSlump, Pioneer, TwinklingStar, } public static class RibbonIndexExtensions { public static bool GetRibbonIndex(this IRibbonIndex x, RibbonIndex r) => x.GetRibbon((int)r); public static void SetRibbonIndex(this IRibbonIndex x, RibbonIndex r, bool value = true) => x.SetRibbon((int)r, value); public static AreaWeather8 GetWeather8(this RibbonIndex x) => x switch { RibbonIndex.MarkCloudy => AreaWeather8.Overcast, RibbonIndex.MarkRainy => AreaWeather8.Raining, RibbonIndex.MarkStormy => AreaWeather8.Thunderstorm, RibbonIndex.MarkDry => AreaWeather8.Intense_Sun, RibbonIndex.MarkSnowy => AreaWeather8.Snowing, RibbonIndex.MarkBlizzard => AreaWeather8.Snowstorm, RibbonIndex.MarkSandstorm => AreaWeather8.Sandstorm, RibbonIndex.MarkMisty => AreaWeather8.Heavy_Fog, _ => AreaWeather8.None, }; } }