using System.Collections.Generic; namespace PKHeX.Core { /// /// Generation 6 Static Encounter /// /// public sealed record EncounterStatic6 : EncounterStatic, IContestStats, IContestStatsRecord { public override int Generation => 6; public int CNT_Cool { get; init; } public int CNT_Beauty { get; init; } public int CNT_Cute { get; init; } public int CNT_Smart { get; init; } public int CNT_Tough { get; init; } public int CNT_Sheen { get; init; } public IReadOnlyList Contest { init { CNT_Cool = value[0]; CNT_Beauty = value[1]; CNT_Cute = value[2]; CNT_Smart = value[3]; CNT_Tough = value[4]; CNT_Sheen = value[5]; } } protected override bool IsMatchLocation(PKM pkm) { if (base.IsMatchLocation(pkm)) return true; if (Species != (int) Core.Species.Pikachu) return false; // Cosplay Pikachu is given from multiple locations var loc = pkm.Met_Location; return loc is 180 or 186 or 194; } protected override void ApplyDetails(ITrainerInfo sav, EncounterCriteria criteria, PKM pk) { base.ApplyDetails(sav, criteria, pk); var pk6 = (PK6)pk; this.CopyContestStatsTo(pk6); pk6.SetRandomMemory6(); } } }