diff --git a/PKHeX.Core/Saves/Pokeathlon4.cs b/PKHeX.Core/Saves/Pokeathlon4.cs index d8236722e..e59ce3114 100644 --- a/PKHeX.Core/Saves/Pokeathlon4.cs +++ b/PKHeX.Core/Saves/Pokeathlon4.cs @@ -16,7 +16,7 @@ public class Pokeathlon4(Memory Raw) // 0xD9D4 within SAV4HGSS // 5 courses to store record data public PokeathlonCourseRecord4 GetCourseRecord(PokeathlonStat4 index) { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonStat4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonStat4.Count); return new(Raw.Slice((int)index * PokeathlonCourseRecord4.SIZE, PokeathlonCourseRecord4.SIZE)); } @@ -27,14 +27,14 @@ public PokeathlonCourseRecord4 GetCourseRecord(PokeathlonStat4 index) // 0x2CC, 0xDCA0 within SAV public PokeathlonEventData4 GetEventSelf(PokeathlonEvent4 index) { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); return new(Raw.Slice(0x2CC + ((int)index * PokeathlonEventData4.SIZE), PokeathlonEventData4.SIZE)); } // 0x484, 0xDE58 within SAV public PokeathlonConnection4 GetEventConnection(PokeathlonEvent4 index) { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); return new(Raw.Slice(0x484 + ((int)index * PokeathlonConnection4.SIZE), PokeathlonConnection4.SIZE)); } @@ -45,13 +45,13 @@ public PokeathlonConnection4 GetEventConnection(PokeathlonEvent4 index) /// public ushort GetBestScore(PokeathlonEvent4 index) { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); return ReadUInt16LittleEndian(Data[(0xAEC + ((int)index * 2))..]); } public void SetBestScore(PokeathlonEvent4 index, ushort score) { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); WriteUInt16LittleEndian(Data[(0xAEC + ((int)index * 2))..], score); } @@ -93,10 +93,10 @@ public void SetBestScore(PokeathlonEvent4 index, ushort score) public uint CalculateGlobalScore() { uint result = 0; - for (PokeathlonStat4 i = 0; i < PokeathlonStat4.MAX_COUNT; i++) + for (PokeathlonStat4 i = 0; i < PokeathlonStat4.Count; i++) result += GetCourseRecord(i).ScoreMax; result += Medals.GetTotalCount(); - for (PokeathlonEvent4 i = 0; i < PokeathlonEvent4.MAX_COUNT; i++) + for (PokeathlonEvent4 i = 0; i < PokeathlonEvent4.Count; i++) result += GetBestScore(i); return result; } @@ -250,6 +250,9 @@ public struct PokeathlonConnection4(Memory Raw) public PokeathlonEventData4 Inner => new(Raw.Slice(0 * PokeathlonEventData4.SIZE, PokeathlonEventData4.SIZE)); + /// + /// Correlated to the indexed records. + /// public PokeathlonEventTrainer4 GetTrainer(int index) { ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, MaxTrainer); @@ -363,12 +366,12 @@ public struct PokeathlonGlobalCounters4(Memory Raw) { get { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); return ReadUInt32LittleEndian(Data[(0x44 + ((int)index * 4))..]); } set { - ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.MAX_COUNT); + ArgumentOutOfRangeException.ThrowIfGreaterThanOrEqual((uint)index, (uint)PokeathlonEvent4.Count); WriteUInt32LittleEndian(Data[(0x44 + ((int)index * 4))..], Math.Min(MaxStat, value)); } } @@ -379,7 +382,7 @@ public uint TotalEventFirst get { uint total = 0; - for (PokeathlonEvent4 i = 0; i < PokeathlonEvent4.MAX_COUNT; i++) + for (PokeathlonEvent4 i = 0; i < PokeathlonEvent4.Count; i++) total += this[i]; return total; } @@ -548,7 +551,7 @@ public enum PokeathlonStat4 : byte Stamina = 3, Jump = 4, - MAX_COUNT = 5, + Count = 5, } public enum PokeathlonEvent4 : byte @@ -564,7 +567,7 @@ public enum PokeathlonEvent4 : byte SnowThrow = 8, GoalRoll = 9, - MAX_COUNT = 10, + Count = 10, } /// @@ -608,5 +611,5 @@ public enum DataCard4 : byte Instructions = 25, // Pokémon Instructions TimeSpent = 26, // Time Spent in Pokéathlon - MAX_COUNT = 27, + Count = 27, }; diff --git a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs index dfba5cc49..8bde4dae2 100644 --- a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs +++ b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.Designer.cs @@ -93,6 +93,7 @@ private void InitializeComponent() B_FestivalPlaza = new System.Windows.Forms.Button(); B_MailBox = new System.Windows.Forms.Button(); B_OpenApricorn = new System.Windows.Forms.Button(); + B_OpenPokeathlon = new System.Windows.Forms.Button(); B_Raids = new System.Windows.Forms.Button(); B_RaidsDLC1 = new System.Windows.Forms.Button(); B_RaidsDLC2 = new System.Windows.Forms.Button(); @@ -443,6 +444,7 @@ private void InitializeComponent() FLP_SAVtools.Controls.Add(B_OpenGeonetEditor); FLP_SAVtools.Controls.Add(B_OpenUnityTowerEditor); FLP_SAVtools.Controls.Add(B_OpenJoinAvenueEditor); + FLP_SAVtools.Controls.Add(B_OpenPokeathlon); FLP_SAVtools.Controls.Add(B_OpenMedalsEditor); FLP_SAVtools.Controls.Add(B_OpenChatterEditor); FLP_SAVtools.Controls.Add(B_Roamer); @@ -835,7 +837,7 @@ private void InitializeComponent() // // B_Raids // - B_Raids.Location = new System.Drawing.Point(4, 324); + B_Raids.Location = new System.Drawing.Point(108, 324); B_Raids.Margin = new System.Windows.Forms.Padding(4); B_Raids.Name = "B_Raids"; B_Raids.Size = new System.Drawing.Size(96, 32); @@ -844,9 +846,20 @@ private void InitializeComponent() B_Raids.UseVisualStyleBackColor = true; B_Raids.Click += B_OpenRaids_Click; // + // B_OpenPokeathlon + // + B_OpenPokeathlon.Location = new System.Drawing.Point(4, 324); + B_OpenPokeathlon.Margin = new System.Windows.Forms.Padding(4); + B_OpenPokeathlon.Name = "B_OpenPokeathlon"; + B_OpenPokeathlon.Size = new System.Drawing.Size(96, 32); + B_OpenPokeathlon.TabIndex = 1; + B_OpenPokeathlon.Text = "Pokéathlon"; + B_OpenPokeathlon.UseVisualStyleBackColor = true; + B_OpenPokeathlon.Click += B_OpenPokeathlon_Click; + // // B_RaidsDLC1 // - B_RaidsDLC1.Location = new System.Drawing.Point(108, 324); + B_RaidsDLC1.Location = new System.Drawing.Point(212, 324); B_RaidsDLC1.Margin = new System.Windows.Forms.Padding(4); B_RaidsDLC1.Name = "B_RaidsDLC1"; B_RaidsDLC1.Size = new System.Drawing.Size(96, 32); @@ -857,7 +870,7 @@ private void InitializeComponent() // // B_RaidsDLC2 // - B_RaidsDLC2.Location = new System.Drawing.Point(212, 324); + B_RaidsDLC2.Location = new System.Drawing.Point(316, 324); B_RaidsDLC2.Margin = new System.Windows.Forms.Padding(4); B_RaidsDLC2.Name = "B_RaidsDLC2"; B_RaidsDLC2.Size = new System.Drawing.Size(96, 32); @@ -868,7 +881,7 @@ private void InitializeComponent() // // B_Blocks // - B_Blocks.Location = new System.Drawing.Point(316, 324); + B_Blocks.Location = new System.Drawing.Point(4, 364); B_Blocks.Margin = new System.Windows.Forms.Padding(4); B_Blocks.Name = "B_Blocks"; B_Blocks.Size = new System.Drawing.Size(96, 32); @@ -879,7 +892,7 @@ private void InitializeComponent() // // B_OtherSlots // - B_OtherSlots.Location = new System.Drawing.Point(4, 364); + B_OtherSlots.Location = new System.Drawing.Point(108, 364); B_OtherSlots.Margin = new System.Windows.Forms.Padding(4); B_OtherSlots.Name = "B_OtherSlots"; B_OtherSlots.Size = new System.Drawing.Size(96, 32); @@ -890,7 +903,7 @@ private void InitializeComponent() // // B_OpenSealStickers // - B_OpenSealStickers.Location = new System.Drawing.Point(108, 364); + B_OpenSealStickers.Location = new System.Drawing.Point(212, 364); B_OpenSealStickers.Margin = new System.Windows.Forms.Padding(4); B_OpenSealStickers.Name = "B_OpenSealStickers"; B_OpenSealStickers.Size = new System.Drawing.Size(96, 32); @@ -901,7 +914,7 @@ private void InitializeComponent() // // B_Poffins // - B_Poffins.Location = new System.Drawing.Point(212, 364); + B_Poffins.Location = new System.Drawing.Point(316, 364); B_Poffins.Margin = new System.Windows.Forms.Padding(4); B_Poffins.Name = "B_Poffins"; B_Poffins.Size = new System.Drawing.Size(96, 32); @@ -912,7 +925,7 @@ private void InitializeComponent() // // B_RaidsSevenStar // - B_RaidsSevenStar.Location = new System.Drawing.Point(316, 364); + B_RaidsSevenStar.Location = new System.Drawing.Point(4, 404); B_RaidsSevenStar.Margin = new System.Windows.Forms.Padding(4); B_RaidsSevenStar.Name = "B_RaidsSevenStar"; B_RaidsSevenStar.Size = new System.Drawing.Size(96, 32); @@ -923,7 +936,7 @@ private void InitializeComponent() // // B_OpenBattlePass // - B_OpenBattlePass.Location = new System.Drawing.Point(4, 404); + B_OpenBattlePass.Location = new System.Drawing.Point(108, 404); B_OpenBattlePass.Margin = new System.Windows.Forms.Padding(4); B_OpenBattlePass.Name = "B_OpenBattlePass"; B_OpenBattlePass.Size = new System.Drawing.Size(96, 32); @@ -934,7 +947,7 @@ private void InitializeComponent() // // B_OpenGear // - B_OpenGear.Location = new System.Drawing.Point(108, 404); + B_OpenGear.Location = new System.Drawing.Point(212, 404); B_OpenGear.Margin = new System.Windows.Forms.Padding(4); B_OpenGear.Name = "B_OpenGear"; B_OpenGear.Size = new System.Drawing.Size(96, 32); @@ -945,7 +958,7 @@ private void InitializeComponent() // // B_OpenFashion // - B_OpenFashion.Location = new System.Drawing.Point(212, 404); + B_OpenFashion.Location = new System.Drawing.Point(316, 404); B_OpenFashion.Margin = new System.Windows.Forms.Padding(4); B_OpenFashion.Name = "B_OpenFashion"; B_OpenFashion.Size = new System.Drawing.Size(96, 32); @@ -1137,6 +1150,7 @@ private void InitializeComponent() private System.Windows.Forms.Button B_FestivalPlaza; private System.Windows.Forms.Button B_MailBox; private System.Windows.Forms.Button B_OpenApricorn; + private System.Windows.Forms.Button B_OpenPokeathlon; internal SlotList SL_Extra; private PartyEditor SL_Party; private System.Windows.Forms.Button B_Raids; diff --git a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs index 87a7d0c78..7d2346d4b 100644 --- a/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs +++ b/PKHeX.WinForms/Controls/SAV Editor/SAVEditor.cs @@ -639,6 +639,7 @@ private static void OpenDialog(Form f) private void B_CellsStickers_Click(object sender, EventArgs e) => OpenDialog(new SAV_ZygardeCell((SAV7)SAV)); private void B_LinkInfo_Click(object sender, EventArgs e) => OpenDialog(new SAV_Link6(SAV)); private void B_OpenApricorn_Click(object sender, EventArgs e) => OpenDialog(new SAV_Apricorn((SAV4HGSS)SAV)); + private void B_OpenPokeathlon_Click(object sender, EventArgs e) => OpenDialog(new SAV_Pokeathlon4((SAV4HGSS)SAV)); private void B_DLC_Click(object sender, EventArgs e) => OpenDialog(new SAV_DLC5((SAV5)SAV)); private void B_OpenTrainerInfo_Click(object sender, EventArgs e) => OpenDialog(GetTrainerEditor(SAV)); private void B_OpenOPowers_Click(object sender, EventArgs e) => OpenDialog(new SAV_OPower((ISaveBlock6Main)SAV)); @@ -1318,6 +1319,7 @@ private void ToggleViewSubEditors(SaveFile sav) B_OpenBattlePass.Visible = B_OpenGear.Visible = sav is SAV4BR; B_OpenSealStickers.Visible = B_Poffins.Visible = sav is SAV8BS; B_OpenApricorn.Visible = sav is SAV4HGSS; + B_OpenPokeathlon.Visible = sav is SAV4HGSS; B_OpenRTCEditor.Visible = (sav.Generation == 2 && sav is not SAV2Stadium) || sav is SAV3 { SmallBlock: ISaveBlock3SmallHoenn }; B_MailBox.Visible = sav is SAV2 or SAV2Stadium or SAV3 or SAV4 or SAV5; diff --git a/PKHeX.WinForms/Resources/text/lang_de.txt b/PKHeX.WinForms/Resources/text/lang_de.txt index 17ae2f95e..a7caa0eb0 100644 --- a/PKHeX.WinForms/Resources/text/lang_de.txt +++ b/PKHeX.WinForms/Resources/text/lang_de.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Sonstiges SAV_MysteryGiftDB=Datenbank SAV_OPower=O-Kraft-Editor SAV_Poffin8b=Knursp-Editor +SAV_Pokeathlon4=Pokéathlon-Editor SAV_Pokebean=Pokébohnen-Editor SAV_PokeBlockORAS=Pokériegel-Editor SAV_Pokedex4=Pokédex-Editor @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Pokémon-Link Main.B_OpenMedalsEditor=Medaillen Main.B_OpenMiscEditor=Sonstiges Main.B_OpenOPowers=O-Kräfte +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Pokébohnen Main.B_OpenPokeblocks=Pokériegel Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Hell (Weiblich) PlayerSkinColor8.PaleM=Hell (Männlich) PlayerSkinColor8.TanF=Gebräunt (Weiblich) PlayerSkinColor8.TanM=Gebräunt (Männlich) +PokeathlonEvent4.BlockSmash=Blöcke brechen +PokeathlonEvent4.CirclePush=Kreisschieben +PokeathlonEvent4.DiscCatch=Scheibenfangen +PokeathlonEvent4.GoalRoll=Zielrollen +PokeathlonEvent4.HurdleDash=Hürdenlauf +PokeathlonEvent4.LampJump=Lampensprung +PokeathlonEvent4.PennantCapture=Fähnchenfang +PokeathlonEvent4.RelayRun=Staffellauf +PokeathlonEvent4.RingDrop=Ringwurf +PokeathlonEvent4.SnowThrow=Schneewurf +PokeathlonStat4.Jump=Sprung +PokeathlonStat4.Power=Kraft +PokeathlonStat4.Skill=Technik +PokeathlonStat4.Speed=Tempo +PokeathlonStat4.Stamina=Ausdauer PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=Alle SAV_Poffin8b.B_Cancel=Abbr. SAV_Poffin8b.B_None=Keine SAV_Poffin8b.B_Save=Speich. +SAV_Pokeathlon4.B_Cancel=Abbrechen +SAV_Pokeathlon4.B_MedalsClearAll=Alle entfernen +SAV_Pokeathlon4.B_MedalsGiveAll=Alle geben +SAV_Pokeathlon4.B_Save=Speichern +SAV_Pokeathlon4.CHK_IsShiny=Schillernd +SAV_Pokeathlon4.DGV_Jump=Sprung +SAV_Pokeathlon4.DGV_Power=Kraft +SAV_Pokeathlon4.DGV_Skill=Technik +SAV_Pokeathlon4.DGV_Species=Spezies +SAV_Pokeathlon4.DGV_Speed=Tempo +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Ausdauer +SAV_Pokeathlon4.L_Acquired=Erhalten: +SAV_Pokeathlon4.L_Attempts=Versuche: +SAV_Pokeathlon4.L_BlockSmashFirst=Blöcke brechen 1. Platz: +SAV_Pokeathlon4.L_BonusesEarned=Boni erhalten: +SAV_Pokeathlon4.L_CirclePushFirst=Kreisschieben 1. Platz: +SAV_Pokeathlon4.L_ConnectionFirst=Verbindung 1. Platz: +SAV_Pokeathlon4.L_ConnectionIndex=Index: +SAV_Pokeathlon4.L_ConnectionJoined=Verbindungen absolviert: +SAV_Pokeathlon4.L_ConnectionLast=Verbindung letzter Platz: +SAV_Pokeathlon4.L_CourseIndex=Index: +SAV_Pokeathlon4.L_CourseParticipant0=Teilnehmer 1: +SAV_Pokeathlon4.L_CourseParticipant1=Teilnehmer 2: +SAV_Pokeathlon4.L_CourseParticipant2=Teilnehmer 3: +SAV_Pokeathlon4.L_CourseScore0=Punktzahl 1: +SAV_Pokeathlon4.L_CourseScore1=Punktzahl 2: +SAV_Pokeathlon4.L_CourseScore2=Punktzahl 3: +SAV_Pokeathlon4.L_CourseScoreMax=Max. Punktzahl: +SAV_Pokeathlon4.L_DailyShopFlags=Tagesladen: +SAV_Pokeathlon4.L_Dashed=Gesprintet: +SAV_Pokeathlon4.L_DataCards=Datenkarten: +SAV_Pokeathlon4.L_DiscCatchFirst=Scheibenfangen 1. Platz: +SAV_Pokeathlon4.L_Failed=Gescheitert: +SAV_Pokeathlon4.L_Fame=Ruhm: +SAV_Pokeathlon4.L_FellDown=Gefallen: +SAV_Pokeathlon4.L_GoalRollFirst=Zielrollen 1. Platz: +SAV_Pokeathlon4.L_HurdleDashFirst=Hürdenlauf 1. Platz: +SAV_Pokeathlon4.L_Instructions=Anleitungen: +SAV_Pokeathlon4.L_Jumped=Gesprungen: +SAV_Pokeathlon4.L_LampJumpFirst=Lampensprung 1. Platz: +SAV_Pokeathlon4.L_Language=Sprache: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=Fähnchenfang 1. Platz: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=1. Platz: +SAV_Pokeathlon4.L_PlacedLast=Letzter Platz: +SAV_Pokeathlon4.L_Points=Punkte: +SAV_Pokeathlon4.L_Record=Rekord: +SAV_Pokeathlon4.L_RelayRunFirst=Staffellauf 1. Platz: +SAV_Pokeathlon4.L_RingDropFirst=Ringwurf 1. Platz: +SAV_Pokeathlon4.L_SelfEventIndex=Index: +SAV_Pokeathlon4.L_SelfImpeded=Selbst behindert: +SAV_Pokeathlon4.L_SessionsJoined=Sitzungen beigetreten: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=Schneewurf 1. Platz: +SAV_Pokeathlon4.L_Switched=Gewechselt: +SAV_Pokeathlon4.L_Tackled=Getackelt: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=Zeit verbracht: +SAV_Pokeathlon4.L_TotalEventFirst=Gesamt 1. Platz: +SAV_Pokeathlon4.L_TotalEventLast=Gesamt letzter Platz: +SAV_Pokeathlon4.L_Trainer0=Trainer 1: +SAV_Pokeathlon4.L_Trainer1=Trainer 2: +SAV_Pokeathlon4.L_Trainer2=Trainer 3: +SAV_Pokeathlon4.L_Trainer3=Trainer 4: +SAV_Pokeathlon4.L_Trainer4=Trainer 5: +SAV_Pokeathlon4.Tab_Best=Bestwerte +SAV_Pokeathlon4.Tab_Connection=Verbindung +SAV_Pokeathlon4.Tab_Counters=Zähler +SAV_Pokeathlon4.Tab_Courses=Courses +SAV_Pokeathlon4.Tab_General=Allgemein +SAV_Pokeathlon4.Tab_Medals=Medaillen +SAV_Pokeathlon4.Tab_SelfEvent=Eigenes Event SAV_Pokebean.B_All=Alle SAV_Pokebean.B_Cancel=Abbrechen SAV_Pokebean.B_None=Keine diff --git a/PKHeX.WinForms/Resources/text/lang_en.txt b/PKHeX.WinForms/Resources/text/lang_en.txt index 18c2b2eca..610623e47 100644 --- a/PKHeX.WinForms/Resources/text/lang_en.txt +++ b/PKHeX.WinForms/Resources/text/lang_en.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Misc Editor SAV_MysteryGiftDB=Database SAV_OPower=O-Power Editor SAV_Poffin8b=Poffin Editor +SAV_Pokeathlon4=Pokéathlon Editor SAV_Pokebean=Poké Beans Editor SAV_PokeBlockORAS=Pokéblock Editor SAV_Pokedex4=Pokédex Editor @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Link Data Main.B_OpenMedalsEditor=Medals Main.B_OpenMiscEditor=Misc Edits Main.B_OpenOPowers=O-Powers +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Poké Beans Main.B_OpenPokeblocks=Pokéblocks Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Pale (Female) PlayerSkinColor8.PaleM=Pale (Male) PlayerSkinColor8.TanF=Tan (Female) PlayerSkinColor8.TanM=Tan (Male) +PokeathlonEvent4.BlockSmash=Block Smash +PokeathlonEvent4.CirclePush=Circle Push +PokeathlonEvent4.DiscCatch=Disc Catch +PokeathlonEvent4.GoalRoll=Goal Roll +PokeathlonEvent4.HurdleDash=Hurdle Dash +PokeathlonEvent4.LampJump=Lamp Jump +PokeathlonEvent4.PennantCapture=Pennant Capture +PokeathlonEvent4.RelayRun=Relay Run +PokeathlonEvent4.RingDrop=Ring Drop +PokeathlonEvent4.SnowThrow=Snow Throw +PokeathlonStat4.Jump=Jump +PokeathlonStat4.Power=Power +PokeathlonStat4.Skill=Skill +PokeathlonStat4.Speed=Speed +PokeathlonStat4.Stamina=Stamina PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=All SAV_Poffin8b.B_Cancel=Cancel SAV_Poffin8b.B_None=None SAV_Poffin8b.B_Save=Save +SAV_Pokeathlon4.B_Cancel=Cancel +SAV_Pokeathlon4.B_MedalsClearAll=Clear All +SAV_Pokeathlon4.B_MedalsGiveAll=Give All +SAV_Pokeathlon4.B_Save=Save +SAV_Pokeathlon4.CHK_IsShiny=Shiny +SAV_Pokeathlon4.DGV_Jump=Jump +SAV_Pokeathlon4.DGV_Power=Power +SAV_Pokeathlon4.DGV_Skill=Skill +SAV_Pokeathlon4.DGV_Species=Species +SAV_Pokeathlon4.DGV_Speed=Speed +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Stamina +SAV_Pokeathlon4.L_Acquired=Acquired: +SAV_Pokeathlon4.L_Attempts=Attempts: +SAV_Pokeathlon4.L_BlockSmashFirst=Block Smash 1st: +SAV_Pokeathlon4.L_BonusesEarned=Bonuses Earned: +SAV_Pokeathlon4.L_CirclePushFirst=Circle Push 1st: +SAV_Pokeathlon4.L_ConnectionFirst=Connection 1st: +SAV_Pokeathlon4.L_ConnectionIndex=Index: +SAV_Pokeathlon4.L_ConnectionJoined=Connections Joined: +SAV_Pokeathlon4.L_ConnectionLast=Connection Last: +SAV_Pokeathlon4.L_CourseIndex=Index: +SAV_Pokeathlon4.L_CourseParticipant0=Participant 1: +SAV_Pokeathlon4.L_CourseParticipant1=Participant 2: +SAV_Pokeathlon4.L_CourseParticipant2=Participant 3: +SAV_Pokeathlon4.L_CourseScore0=Score 1: +SAV_Pokeathlon4.L_CourseScore1=Score 2: +SAV_Pokeathlon4.L_CourseScore2=Score 3: +SAV_Pokeathlon4.L_CourseScoreMax=Max Score: +SAV_Pokeathlon4.L_DailyShopFlags=Daily Shop: +SAV_Pokeathlon4.L_Dashed=Dashed: +SAV_Pokeathlon4.L_DataCards=Data Cards: +SAV_Pokeathlon4.L_DiscCatchFirst=Disc Catch 1st: +SAV_Pokeathlon4.L_Failed=Failed: +SAV_Pokeathlon4.L_Fame=Fame: +SAV_Pokeathlon4.L_FellDown=Fell Down: +SAV_Pokeathlon4.L_GoalRollFirst=Goal Roll 1st: +SAV_Pokeathlon4.L_HurdleDashFirst=Hurdle Dash 1st: +SAV_Pokeathlon4.L_Instructions=Instructions: +SAV_Pokeathlon4.L_Jumped=Jumped: +SAV_Pokeathlon4.L_LampJumpFirst=Lamp Jump 1st: +SAV_Pokeathlon4.L_Language=Language: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=Pennant Capture 1st: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=Placed 1st: +SAV_Pokeathlon4.L_PlacedLast=Placed Last: +SAV_Pokeathlon4.L_Points=Points: +SAV_Pokeathlon4.L_Record=Record: +SAV_Pokeathlon4.L_RelayRunFirst=Relay Run 1st: +SAV_Pokeathlon4.L_RingDropFirst=Ring Drop 1st: +SAV_Pokeathlon4.L_SelfEventIndex=Index: +SAV_Pokeathlon4.L_SelfImpeded=Self-Impeded: +SAV_Pokeathlon4.L_SessionsJoined=Sessions Joined: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=Snow Throw 1st: +SAV_Pokeathlon4.L_Switched=Switched: +SAV_Pokeathlon4.L_Tackled=Tackled: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=Time Spent: +SAV_Pokeathlon4.L_TotalEventFirst=Total Event 1st: +SAV_Pokeathlon4.L_TotalEventLast=Total Event Last: +SAV_Pokeathlon4.L_Trainer0=Trainer 1: +SAV_Pokeathlon4.L_Trainer1=Trainer 2: +SAV_Pokeathlon4.L_Trainer2=Trainer 3: +SAV_Pokeathlon4.L_Trainer3=Trainer 4: +SAV_Pokeathlon4.L_Trainer4=Trainer 5: +SAV_Pokeathlon4.Tab_Best=Best +SAV_Pokeathlon4.Tab_Connection=Connection +SAV_Pokeathlon4.Tab_Counters=Counters +SAV_Pokeathlon4.Tab_Courses=Courses +SAV_Pokeathlon4.Tab_General=General +SAV_Pokeathlon4.Tab_Medals=Medals +SAV_Pokeathlon4.Tab_SelfEvent=Self Event SAV_Pokebean.B_All=All SAV_Pokebean.B_Cancel=Cancel SAV_Pokebean.B_None=None diff --git a/PKHeX.WinForms/Resources/text/lang_es-419.txt b/PKHeX.WinForms/Resources/text/lang_es-419.txt index 0f1649f2a..f04a277fd 100644 --- a/PKHeX.WinForms/Resources/text/lang_es-419.txt +++ b/PKHeX.WinForms/Resources/text/lang_es-419.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Editor Misceláneo SAV_MysteryGiftDB=Base de Datos SAV_OPower=Editor de Poder O SAV_Poffin8b=Editor de Pokochos +SAV_Pokeathlon4=Editor de Pokéathlon SAV_Pokebean=Editor de Pokéhaba SAV_PokeBlockORAS=Editor de Pokécubos SAV_Pokedex4=Editor de Pokédex @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Datos Nexo Main.B_OpenMedalsEditor=Medallas Main.B_OpenMiscEditor=Misceláneo Main.B_OpenOPowers=Poder O +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Pokéhabas Main.B_OpenPokeblocks=Pokécubos Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Pálida (Hembra) PlayerSkinColor8.PaleM=Pálido (Macho) PlayerSkinColor8.TanF=Bronceada (Hembra) PlayerSkinColor8.TanM=Bronceado (Macho) +PokeathlonEvent4.BlockSmash=Rompebloques +PokeathlonEvent4.CirclePush=Empuje Circular +PokeathlonEvent4.DiscCatch=Atrapa Discos +PokeathlonEvent4.GoalRoll=Rodada a Meta +PokeathlonEvent4.HurdleDash=Carrera de Vallas +PokeathlonEvent4.LampJump=Salto de Lámparas +PokeathlonEvent4.PennantCapture=Captura de Banderines +PokeathlonEvent4.RelayRun=Carrera de Relevos +PokeathlonEvent4.RingDrop=Caída de Anillos +PokeathlonEvent4.SnowThrow=Lanzamiento de Nieve +PokeathlonStat4.Jump=Salto +PokeathlonStat4.Power=Potencia +PokeathlonStat4.Skill=Técnica +PokeathlonStat4.Speed=Velocidad +PokeathlonStat4.Stamina=Resistencia PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=Todos SAV_Poffin8b.B_Cancel=Cancelar SAV_Poffin8b.B_None=Ninguno SAV_Poffin8b.B_Save=Guardar +SAV_Pokeathlon4.B_Cancel=Cancelar +SAV_Pokeathlon4.B_MedalsClearAll=Quitar todo +SAV_Pokeathlon4.B_MedalsGiveAll=Dar todo +SAV_Pokeathlon4.B_Save=Guardar +SAV_Pokeathlon4.CHK_IsShiny=Variocolor +SAV_Pokeathlon4.DGV_Jump=Salto +SAV_Pokeathlon4.DGV_Power=Potencia +SAV_Pokeathlon4.DGV_Skill=Técnica +SAV_Pokeathlon4.DGV_Species=Especie +SAV_Pokeathlon4.DGV_Speed=Velocidad +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Resistencia +SAV_Pokeathlon4.L_Acquired=Obtenido: +SAV_Pokeathlon4.L_Attempts=Intentos: +SAV_Pokeathlon4.L_BlockSmashFirst=Rompebloques 1.º: +SAV_Pokeathlon4.L_BonusesEarned=Bonos conseguidos: +SAV_Pokeathlon4.L_CirclePushFirst=Empuje Circular 1.º: +SAV_Pokeathlon4.L_ConnectionFirst=Conexión 1.º: +SAV_Pokeathlon4.L_ConnectionIndex=Índice: +SAV_Pokeathlon4.L_ConnectionJoined=Conexiones jugadas: +SAV_Pokeathlon4.L_ConnectionLast=Conexión último: +SAV_Pokeathlon4.L_CourseIndex=Índice: +SAV_Pokeathlon4.L_CourseParticipant0=Participante 1: +SAV_Pokeathlon4.L_CourseParticipant1=Participante 2: +SAV_Pokeathlon4.L_CourseParticipant2=Participante 3: +SAV_Pokeathlon4.L_CourseScore0=Puntuación 1: +SAV_Pokeathlon4.L_CourseScore1=Puntuación 2: +SAV_Pokeathlon4.L_CourseScore2=Puntuación 3: +SAV_Pokeathlon4.L_CourseScoreMax=Puntuación máxima: +SAV_Pokeathlon4.L_DailyShopFlags=Tienda diaria: +SAV_Pokeathlon4.L_Dashed=Carrera: +SAV_Pokeathlon4.L_DataCards=Tarjetas de datos: +SAV_Pokeathlon4.L_DiscCatchFirst=Atrapa Discos 1.º: +SAV_Pokeathlon4.L_Failed=Fallos: +SAV_Pokeathlon4.L_Fame=Fama: +SAV_Pokeathlon4.L_FellDown=Se cayó: +SAV_Pokeathlon4.L_GoalRollFirst=Rodada a Meta 1.º: +SAV_Pokeathlon4.L_HurdleDashFirst=Carrera de Vallas 1.º: +SAV_Pokeathlon4.L_Instructions=Instrucciones: +SAV_Pokeathlon4.L_Jumped=Saltó: +SAV_Pokeathlon4.L_LampJumpFirst=Salto de Lámparas 1.º: +SAV_Pokeathlon4.L_Language=Idioma: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=Captura de Banderines 1.º: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=Quedó 1.º: +SAV_Pokeathlon4.L_PlacedLast=Quedó último: +SAV_Pokeathlon4.L_Points=Puntos: +SAV_Pokeathlon4.L_Record=Récord: +SAV_Pokeathlon4.L_RelayRunFirst=Carrera de Relevos 1.º: +SAV_Pokeathlon4.L_RingDropFirst=Caída de Anillos 1.º: +SAV_Pokeathlon4.L_SelfEventIndex=Índice: +SAV_Pokeathlon4.L_SelfImpeded=Se estorbó a sí mismo: +SAV_Pokeathlon4.L_SessionsJoined=Sesiones jugadas: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=Lanzamiento de Nieve 1.º: +SAV_Pokeathlon4.L_Switched=Cambió: +SAV_Pokeathlon4.L_Tackled=Placó: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=Tiempo invertido: +SAV_Pokeathlon4.L_TotalEventFirst=Total 1.º: +SAV_Pokeathlon4.L_TotalEventLast=Total último: +SAV_Pokeathlon4.L_Trainer0=Entrenador 1: +SAV_Pokeathlon4.L_Trainer1=Entrenador 2: +SAV_Pokeathlon4.L_Trainer2=Entrenador 3: +SAV_Pokeathlon4.L_Trainer3=Entrenador 4: +SAV_Pokeathlon4.L_Trainer4=Entrenador 5: +SAV_Pokeathlon4.Tab_Best=Récords +SAV_Pokeathlon4.Tab_Connection=Conexión +SAV_Pokeathlon4.Tab_Counters=Contadores +SAV_Pokeathlon4.Tab_Courses=Cursos +SAV_Pokeathlon4.Tab_General=General +SAV_Pokeathlon4.Tab_Medals=Medallas +SAV_Pokeathlon4.Tab_SelfEvent=Evento propio SAV_Pokebean.B_All=Todos SAV_Pokebean.B_Cancel=Cancelar SAV_Pokebean.B_None=Ninguno diff --git a/PKHeX.WinForms/Resources/text/lang_es.txt b/PKHeX.WinForms/Resources/text/lang_es.txt index ba2b4ccf6..9392d9aed 100644 --- a/PKHeX.WinForms/Resources/text/lang_es.txt +++ b/PKHeX.WinForms/Resources/text/lang_es.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Editor de Varios SAV_MysteryGiftDB=Base de Datos SAV_OPower=Editor de Poder O SAV_Poffin8b=Editor de Pokochos +SAV_Pokeathlon4=Editor de Pokéathlon SAV_Pokebean=Editor de Pokéhaba SAV_PokeBlockORAS=Editor de Pokécubos SAV_Pokedex4=Editor de Pokédex @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Datos Nexo Main.B_OpenMedalsEditor=Medallas Main.B_OpenMiscEditor=Varios Main.B_OpenOPowers=Poder O +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Pokéhabas Main.B_OpenPokeblocks=Pokécubos Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Pálida (Hembra) PlayerSkinColor8.PaleM=Pálido (Macho) PlayerSkinColor8.TanF=Bronceada (Hembra) PlayerSkinColor8.TanM=Bronceado (Macho) +PokeathlonEvent4.BlockSmash=Rompebloques +PokeathlonEvent4.CirclePush=Empuje Circular +PokeathlonEvent4.DiscCatch=Atrapa Discos +PokeathlonEvent4.GoalRoll=Rodada a Meta +PokeathlonEvent4.HurdleDash=Carrera de Vallas +PokeathlonEvent4.LampJump=Salto de Lámparas +PokeathlonEvent4.PennantCapture=Captura de Banderines +PokeathlonEvent4.RelayRun=Carrera de Relevos +PokeathlonEvent4.RingDrop=Caída de Anillos +PokeathlonEvent4.SnowThrow=Lanzamiento de Nieve +PokeathlonStat4.Jump=Salto +PokeathlonStat4.Power=Potencia +PokeathlonStat4.Skill=Técnica +PokeathlonStat4.Speed=Velocidad +PokeathlonStat4.Stamina=Resistencia PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=Todos SAV_Poffin8b.B_Cancel=Cancelar SAV_Poffin8b.B_None=Ninguno SAV_Poffin8b.B_Save=Guardar +SAV_Pokeathlon4.B_Cancel=Cancelar +SAV_Pokeathlon4.B_MedalsClearAll=Quitar todo +SAV_Pokeathlon4.B_MedalsGiveAll=Dar todo +SAV_Pokeathlon4.B_Save=Guardar +SAV_Pokeathlon4.CHK_IsShiny=Variocolor +SAV_Pokeathlon4.DGV_Jump=Salto +SAV_Pokeathlon4.DGV_Power=Potencia +SAV_Pokeathlon4.DGV_Skill=Técnica +SAV_Pokeathlon4.DGV_Species=Especie +SAV_Pokeathlon4.DGV_Speed=Velocidad +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Resistencia +SAV_Pokeathlon4.L_Acquired=Obtenido: +SAV_Pokeathlon4.L_Attempts=Intentos: +SAV_Pokeathlon4.L_BlockSmashFirst=Rompebloques 1.º: +SAV_Pokeathlon4.L_BonusesEarned=Bonos conseguidos: +SAV_Pokeathlon4.L_CirclePushFirst=Empuje Circular 1.º: +SAV_Pokeathlon4.L_ConnectionFirst=Conexión 1.º: +SAV_Pokeathlon4.L_ConnectionIndex=Índice: +SAV_Pokeathlon4.L_ConnectionJoined=Conexiones jugadas: +SAV_Pokeathlon4.L_ConnectionLast=Conexión último: +SAV_Pokeathlon4.L_CourseIndex=Índice: +SAV_Pokeathlon4.L_CourseParticipant0=Participante 1: +SAV_Pokeathlon4.L_CourseParticipant1=Participante 2: +SAV_Pokeathlon4.L_CourseParticipant2=Participante 3: +SAV_Pokeathlon4.L_CourseScore0=Puntuación 1: +SAV_Pokeathlon4.L_CourseScore1=Puntuación 2: +SAV_Pokeathlon4.L_CourseScore2=Puntuación 3: +SAV_Pokeathlon4.L_CourseScoreMax=Puntuación máxima: +SAV_Pokeathlon4.L_DailyShopFlags=Tienda diaria: +SAV_Pokeathlon4.L_Dashed=Carrera: +SAV_Pokeathlon4.L_DataCards=Tarjetas de datos: +SAV_Pokeathlon4.L_DiscCatchFirst=Atrapa Discos 1.º: +SAV_Pokeathlon4.L_Failed=Fallos: +SAV_Pokeathlon4.L_Fame=Fama: +SAV_Pokeathlon4.L_FellDown=Se cayó: +SAV_Pokeathlon4.L_GoalRollFirst=Rodada a Meta 1.º: +SAV_Pokeathlon4.L_HurdleDashFirst=Carrera de Vallas 1.º: +SAV_Pokeathlon4.L_Instructions=Instrucciones: +SAV_Pokeathlon4.L_Jumped=Saltó: +SAV_Pokeathlon4.L_LampJumpFirst=Salto de Lámparas 1.º: +SAV_Pokeathlon4.L_Language=Idioma: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=Captura de Banderines 1.º: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=Quedó 1.º: +SAV_Pokeathlon4.L_PlacedLast=Quedó último: +SAV_Pokeathlon4.L_Points=Puntos: +SAV_Pokeathlon4.L_Record=Récord: +SAV_Pokeathlon4.L_RelayRunFirst=Carrera de Relevos 1.º: +SAV_Pokeathlon4.L_RingDropFirst=Caída de Anillos 1.º: +SAV_Pokeathlon4.L_SelfEventIndex=Índice: +SAV_Pokeathlon4.L_SelfImpeded=Se estorbó a sí mismo: +SAV_Pokeathlon4.L_SessionsJoined=Sesiones jugadas: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=Lanzamiento de Nieve 1.º: +SAV_Pokeathlon4.L_Switched=Cambió: +SAV_Pokeathlon4.L_Tackled=Placó: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=Tiempo invertido: +SAV_Pokeathlon4.L_TotalEventFirst=Total 1.º: +SAV_Pokeathlon4.L_TotalEventLast=Total último: +SAV_Pokeathlon4.L_Trainer0=Entrenador 1: +SAV_Pokeathlon4.L_Trainer1=Entrenador 2: +SAV_Pokeathlon4.L_Trainer2=Entrenador 3: +SAV_Pokeathlon4.L_Trainer3=Entrenador 4: +SAV_Pokeathlon4.L_Trainer4=Entrenador 5: +SAV_Pokeathlon4.Tab_Best=Récords +SAV_Pokeathlon4.Tab_Connection=Conexión +SAV_Pokeathlon4.Tab_Counters=Contadores +SAV_Pokeathlon4.Tab_Courses=Cursos +SAV_Pokeathlon4.Tab_General=General +SAV_Pokeathlon4.Tab_Medals=Medallas +SAV_Pokeathlon4.Tab_SelfEvent=Evento propio SAV_Pokebean.B_All=Todos SAV_Pokebean.B_Cancel=Cancelar SAV_Pokebean.B_None=Ninguno diff --git a/PKHeX.WinForms/Resources/text/lang_fr.txt b/PKHeX.WinForms/Resources/text/lang_fr.txt index 2ce4c37c3..b29df20eb 100644 --- a/PKHeX.WinForms/Resources/text/lang_fr.txt +++ b/PKHeX.WinForms/Resources/text/lang_fr.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Éditeur divers SAV_MysteryGiftDB=Base de données SAV_OPower=Éditeur O-Auras SAV_Poffin8b=Éditeur Poffins +SAV_Pokeathlon4=Éditeur Pokéathlon SAV_Pokebean=Éditeur Poké Fèves SAV_PokeBlockORAS=Éditeur Pokéblocs SAV_Pokedex4=Éditeur Pokédex @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Poké Lien Main.B_OpenMedalsEditor=Médailles Main.B_OpenMiscEditor=Éditeur divers Main.B_OpenOPowers=O-Auras +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Poké Fèves Main.B_OpenPokeblocks=Pokéblocs Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Pâle (Femelle) PlayerSkinColor8.PaleM=Pâle (Mâle) PlayerSkinColor8.TanF=Bronzé (Femelle) PlayerSkinColor8.TanM=Bronzé (Mâle) +PokeathlonEvent4.BlockSmash=Brise Blocs +PokeathlonEvent4.CirclePush=Poussée Circulaire +PokeathlonEvent4.DiscCatch=Attrape Disques +PokeathlonEvent4.GoalRoll=Roulé au But +PokeathlonEvent4.HurdleDash=Course de Haies +PokeathlonEvent4.LampJump=Saut de Lampes +PokeathlonEvent4.PennantCapture=Capture de Fanions +PokeathlonEvent4.RelayRun=Relais +PokeathlonEvent4.RingDrop=Chute d'Anneaux +PokeathlonEvent4.SnowThrow=Lancer de Neige +PokeathlonStat4.Jump=Saut +PokeathlonStat4.Power=Puissance +PokeathlonStat4.Skill=Technique +PokeathlonStat4.Speed=Vitesse +PokeathlonStat4.Stamina=Endurance PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=Tout SAV_Poffin8b.B_Cancel=Annuler SAV_Poffin8b.B_None=Aucun SAV_Poffin8b.B_Save=Sauvegarder +SAV_Pokeathlon4.B_Cancel=Annuler +SAV_Pokeathlon4.B_MedalsClearAll=Tout effacer +SAV_Pokeathlon4.B_MedalsGiveAll=Tout donner +SAV_Pokeathlon4.B_Save=Sauvegarder +SAV_Pokeathlon4.CHK_IsShiny=Chromatique +SAV_Pokeathlon4.DGV_Jump=Saut +SAV_Pokeathlon4.DGV_Power=Puissance +SAV_Pokeathlon4.DGV_Skill=Technique +SAV_Pokeathlon4.DGV_Species=Espèce +SAV_Pokeathlon4.DGV_Speed=Vitesse +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Endurance +SAV_Pokeathlon4.L_Acquired=Obtenu : +SAV_Pokeathlon4.L_Attempts=Tentatives : +SAV_Pokeathlon4.L_BlockSmashFirst=Brise Blocs 1re place : +SAV_Pokeathlon4.L_BonusesEarned=Bonus gagnés : +SAV_Pokeathlon4.L_CirclePushFirst=Poussée Circulaire 1re place : +SAV_Pokeathlon4.L_ConnectionFirst=Connexion 1re place : +SAV_Pokeathlon4.L_ConnectionIndex=Indice : +SAV_Pokeathlon4.L_ConnectionJoined=Connexions rejointes : +SAV_Pokeathlon4.L_ConnectionLast=Connexion dernière place : +SAV_Pokeathlon4.L_CourseIndex=Indice : +SAV_Pokeathlon4.L_CourseParticipant0=Participant 1 : +SAV_Pokeathlon4.L_CourseParticipant1=Participant 2 : +SAV_Pokeathlon4.L_CourseParticipant2=Participant 3 : +SAV_Pokeathlon4.L_CourseScore0=Score 1 : +SAV_Pokeathlon4.L_CourseScore1=Score 2 : +SAV_Pokeathlon4.L_CourseScore2=Score 3 : +SAV_Pokeathlon4.L_CourseScoreMax=Score max : +SAV_Pokeathlon4.L_DailyShopFlags=Boutique du jour : +SAV_Pokeathlon4.L_Dashed=Sprints : +SAV_Pokeathlon4.L_DataCards=Cartes de données : +SAV_Pokeathlon4.L_DiscCatchFirst=Attrape Disques 1re place : +SAV_Pokeathlon4.L_Failed=Échecs : +SAV_Pokeathlon4.L_Fame=Renommée : +SAV_Pokeathlon4.L_FellDown=Tombé : +SAV_Pokeathlon4.L_GoalRollFirst=Roulé au But 1re place : +SAV_Pokeathlon4.L_HurdleDashFirst=Course de Haies 1re place : +SAV_Pokeathlon4.L_Instructions=Instructions : +SAV_Pokeathlon4.L_Jumped=Sauts : +SAV_Pokeathlon4.L_LampJumpFirst=Saut de Lampes 1re place : +SAV_Pokeathlon4.L_Language=Langue : +SAV_Pokeathlon4.L_OT=DO : +SAV_Pokeathlon4.L_PennantCaptureFirst=Capture de Fanions 1re place : +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=Placé 1er : +SAV_Pokeathlon4.L_PlacedLast=Placé dernier : +SAV_Pokeathlon4.L_Points=Points : +SAV_Pokeathlon4.L_Record=Record : +SAV_Pokeathlon4.L_RelayRunFirst=Relais 1re place : +SAV_Pokeathlon4.L_RingDropFirst=Chute d'Anneaux 1re place : +SAV_Pokeathlon4.L_SelfEventIndex=Indice : +SAV_Pokeathlon4.L_SelfImpeded=Gêné soi-même : +SAV_Pokeathlon4.L_SessionsJoined=Sessions rejointes : +SAV_Pokeathlon4.L_SID16=SID : +SAV_Pokeathlon4.L_SnowThrowFirst=Lancer de Neige 1re place : +SAV_Pokeathlon4.L_Switched=Changé : +SAV_Pokeathlon4.L_Tackled=Plaqué : +SAV_Pokeathlon4.L_TID16=TID : +SAV_Pokeathlon4.L_TimeSpent=Temps passé : +SAV_Pokeathlon4.L_TotalEventFirst=Total 1re place : +SAV_Pokeathlon4.L_TotalEventLast=Total dernière place : +SAV_Pokeathlon4.L_Trainer0=Dresseur 1 : +SAV_Pokeathlon4.L_Trainer1=Dresseur 2 : +SAV_Pokeathlon4.L_Trainer2=Dresseur 3 : +SAV_Pokeathlon4.L_Trainer3=Dresseur 4 : +SAV_Pokeathlon4.L_Trainer4=Dresseur 5 : +SAV_Pokeathlon4.Tab_Best=Meilleurs +SAV_Pokeathlon4.Tab_Connection=Connexion +SAV_Pokeathlon4.Tab_Counters=Compteurs +SAV_Pokeathlon4.Tab_Courses=Parcours +SAV_Pokeathlon4.Tab_General=Général +SAV_Pokeathlon4.Tab_Medals=Médailles +SAV_Pokeathlon4.Tab_SelfEvent=Épreuve solo SAV_Pokebean.B_All=Tout SAV_Pokebean.B_Cancel=Annuler SAV_Pokebean.B_None=Aucun diff --git a/PKHeX.WinForms/Resources/text/lang_it.txt b/PKHeX.WinForms/Resources/text/lang_it.txt index 93ffdde32..cec883fa7 100644 --- a/PKHeX.WinForms/Resources/text/lang_it.txt +++ b/PKHeX.WinForms/Resources/text/lang_it.txt @@ -48,6 +48,7 @@ SAV_Misc8b=Editor Varie SAV_MysteryGiftDB=Database SAV_OPower=Editor Poteri-O SAV_Poffin8b=Editor Poffin +SAV_Pokeathlon4=Editor Pokéathlon SAV_Pokebean=Editor Pokégioli SAV_PokeBlockORAS=Editor Pokémelle SAV_Pokedex4=Editor Pokédex @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=Dati Link Main.B_OpenMedalsEditor=Premi Main.B_OpenMiscEditor=Mod. Varie Main.B_OpenOPowers=Poteri O +Main.B_OpenPokeathlon=Pokéathlon Main.B_OpenPokeBeans=Pokégioli Main.B_OpenPokeblocks=Pokémelle Main.B_OpenPokedex=Pokédex @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Chiara (Femmina) PlayerSkinColor8.PaleM=Chiara (Maschio) PlayerSkinColor8.TanF=Olivastra (Femmina) PlayerSkinColor8.TanM=Olivastra (Maschio) +PokeathlonEvent4.BlockSmash=Spacca Blocchi +PokeathlonEvent4.CirclePush=Spinta Circolare +PokeathlonEvent4.DiscCatch=Acchiappa Dischi +PokeathlonEvent4.GoalRoll=Rotola in Porta +PokeathlonEvent4.HurdleDash=Corsa a Ostacoli +PokeathlonEvent4.LampJump=Salto Lampade +PokeathlonEvent4.PennantCapture=Cattura Gagliardetti +PokeathlonEvent4.RelayRun=Staffetta +PokeathlonEvent4.RingDrop=Caduta Anelli +PokeathlonEvent4.SnowThrow=Lancio di Neve +PokeathlonStat4.Jump=Salto +PokeathlonStat4.Power=Potenza +PokeathlonStat4.Skill=Tecnica +PokeathlonStat4.Speed=Velocità +PokeathlonStat4.Stamina=Resistenza PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=Tutto SAV_Poffin8b.B_Cancel=Annulla SAV_Poffin8b.B_None=Nessuno SAV_Poffin8b.B_Save=Salva +SAV_Pokeathlon4.B_Cancel=Annulla +SAV_Pokeathlon4.B_MedalsClearAll=Rimuovi tutto +SAV_Pokeathlon4.B_MedalsGiveAll=Dai tutto +SAV_Pokeathlon4.B_Save=Salva +SAV_Pokeathlon4.CHK_IsShiny=Cromatico +SAV_Pokeathlon4.DGV_Jump=Salto +SAV_Pokeathlon4.DGV_Power=Potenza +SAV_Pokeathlon4.DGV_Skill=Tecnica +SAV_Pokeathlon4.DGV_Species=Specie +SAV_Pokeathlon4.DGV_Speed=Velocità +SAV_Pokeathlon4.DGV_Sprite=Sprite +SAV_Pokeathlon4.DGV_Stamina=Resistenza +SAV_Pokeathlon4.L_Acquired=Ottenuto: +SAV_Pokeathlon4.L_Attempts=Tentativi: +SAV_Pokeathlon4.L_BlockSmashFirst=Spacca Blocchi 1º: +SAV_Pokeathlon4.L_BonusesEarned=Bonus ottenuti: +SAV_Pokeathlon4.L_CirclePushFirst=Spinta Circolare 1º: +SAV_Pokeathlon4.L_ConnectionFirst=Connessione 1º: +SAV_Pokeathlon4.L_ConnectionIndex=Indice: +SAV_Pokeathlon4.L_ConnectionJoined=Connessioni giocate: +SAV_Pokeathlon4.L_ConnectionLast=Connessione ultimo: +SAV_Pokeathlon4.L_CourseIndex=Indice: +SAV_Pokeathlon4.L_CourseParticipant0=Partecipante 1: +SAV_Pokeathlon4.L_CourseParticipant1=Partecipante 2: +SAV_Pokeathlon4.L_CourseParticipant2=Partecipante 3: +SAV_Pokeathlon4.L_CourseScore0=Punteggio 1: +SAV_Pokeathlon4.L_CourseScore1=Punteggio 2: +SAV_Pokeathlon4.L_CourseScore2=Punteggio 3: +SAV_Pokeathlon4.L_CourseScoreMax=Punteggio max: +SAV_Pokeathlon4.L_DailyShopFlags=Negozio giornaliero: +SAV_Pokeathlon4.L_Dashed=Scatti: +SAV_Pokeathlon4.L_DataCards=Schede dati: +SAV_Pokeathlon4.L_DiscCatchFirst=Acchiappa Dischi 1º: +SAV_Pokeathlon4.L_Failed=Fallimenti: +SAV_Pokeathlon4.L_Fame=Fama: +SAV_Pokeathlon4.L_FellDown=Caduto: +SAV_Pokeathlon4.L_GoalRollFirst=Rotola in Porta 1º: +SAV_Pokeathlon4.L_HurdleDashFirst=Corsa a Ostacoli 1º: +SAV_Pokeathlon4.L_Instructions=Istruzioni: +SAV_Pokeathlon4.L_Jumped=Salti: +SAV_Pokeathlon4.L_LampJumpFirst=Salto Lampade 1º: +SAV_Pokeathlon4.L_Language=Lingua: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=Cattura Gagliardetti 1º: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=Primo posto: +SAV_Pokeathlon4.L_PlacedLast=Ultimo posto: +SAV_Pokeathlon4.L_Points=Punti: +SAV_Pokeathlon4.L_Record=Record: +SAV_Pokeathlon4.L_RelayRunFirst=Staffetta 1º: +SAV_Pokeathlon4.L_RingDropFirst=Caduta Anelli 1º: +SAV_Pokeathlon4.L_SelfEventIndex=Indice: +SAV_Pokeathlon4.L_SelfImpeded=Si è ostacolato da solo: +SAV_Pokeathlon4.L_SessionsJoined=Sessioni giocate: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=Lancio di Neve 1º: +SAV_Pokeathlon4.L_Switched=Cambiato: +SAV_Pokeathlon4.L_Tackled=Placcato: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=Tempo trascorso: +SAV_Pokeathlon4.L_TotalEventFirst=Totale 1º: +SAV_Pokeathlon4.L_TotalEventLast=Totale ultimo: +SAV_Pokeathlon4.L_Trainer0=Allenatore 1: +SAV_Pokeathlon4.L_Trainer1=Allenatore 2: +SAV_Pokeathlon4.L_Trainer2=Allenatore 3: +SAV_Pokeathlon4.L_Trainer3=Allenatore 4: +SAV_Pokeathlon4.L_Trainer4=Allenatore 5: +SAV_Pokeathlon4.Tab_Best=Migliori +SAV_Pokeathlon4.Tab_Connection=Connessione +SAV_Pokeathlon4.Tab_Counters=Contatori +SAV_Pokeathlon4.Tab_Courses=Corsi +SAV_Pokeathlon4.Tab_General=Generale +SAV_Pokeathlon4.Tab_Medals=Medaglie +SAV_Pokeathlon4.Tab_SelfEvent=Evento personale SAV_Pokebean.B_All=Tutto SAV_Pokebean.B_Cancel=Annulla SAV_Pokebean.B_None=Nessuno diff --git a/PKHeX.WinForms/Resources/text/lang_ja.txt b/PKHeX.WinForms/Resources/text/lang_ja.txt index 6e85adef9..3f3d7fb96 100644 --- a/PKHeX.WinForms/Resources/text/lang_ja.txt +++ b/PKHeX.WinForms/Resources/text/lang_ja.txt @@ -48,6 +48,7 @@ SAV_Misc8b=その他 SAV_MysteryGiftDB=ふしぎなおくりものデータベース SAV_OPower=Oパワー SAV_Poffin8b=ポフィン +SAV_Pokeathlon4=ポケスロン SAV_Pokebean=ポケマメ SAV_PokeBlockORAS=ポロック SAV_Pokedex4=ポケモン図鑑 @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=ポケモンリンク Main.B_OpenMedalsEditor=メダル Main.B_OpenMiscEditor=その他 Main.B_OpenOPowers= Oパワー +Main.B_OpenPokeathlon=ポケスロン Main.B_OpenPokeBeans=ポケマメ Main.B_OpenPokeblocks=ポロック Main.B_OpenPokedex=ポケモン図鑑 @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=Pale (Female) PlayerSkinColor8.PaleM=Pale (Male) PlayerSkinColor8.TanF=Tan (Female) PlayerSkinColor8.TanM=Tan (Male) +PokeathlonEvent4.BlockSmash=ブロックスマッシュ +PokeathlonEvent4.CirclePush=サークルプッシュ +PokeathlonEvent4.DiscCatch=ディスクキャッチ +PokeathlonEvent4.GoalRoll=ゴールロール +PokeathlonEvent4.HurdleDash=ハードルダッシュ +PokeathlonEvent4.LampJump=ランプジャンプ +PokeathlonEvent4.PennantCapture=ペナントキャプチャ +PokeathlonEvent4.RelayRun=リレーラン +PokeathlonEvent4.RingDrop=リングドロップ +PokeathlonEvent4.SnowThrow=スノースロー +PokeathlonStat4.Jump=ジャンプ +PokeathlonStat4.Power=パワー +PokeathlonStat4.Skill=テクニック +PokeathlonStat4.Speed=スピード +PokeathlonStat4.Stamina=スタミナ PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=全て SAV_Poffin8b.B_Cancel=キャンセル SAV_Poffin8b.B_None=リセット SAV_Poffin8b.B_Save=保存 +SAV_Pokeathlon4.B_Cancel=キャンセル +SAV_Pokeathlon4.B_MedalsClearAll=すべて消去 +SAV_Pokeathlon4.B_MedalsGiveAll=すべて付与 +SAV_Pokeathlon4.B_Save=保存 +SAV_Pokeathlon4.CHK_IsShiny=色違い +SAV_Pokeathlon4.DGV_Jump=ジャンプ +SAV_Pokeathlon4.DGV_Power=パワー +SAV_Pokeathlon4.DGV_Skill=テクニック +SAV_Pokeathlon4.DGV_Species=種族 +SAV_Pokeathlon4.DGV_Speed=スピード +SAV_Pokeathlon4.DGV_Sprite=スプライト +SAV_Pokeathlon4.DGV_Stamina=スタミナ +SAV_Pokeathlon4.L_Acquired=入手済み: +SAV_Pokeathlon4.L_Attempts=挑戦回数: +SAV_Pokeathlon4.L_BlockSmashFirst=ブロックスマッシュ1位: +SAV_Pokeathlon4.L_BonusesEarned=獲得ボーナス: +SAV_Pokeathlon4.L_CirclePushFirst=サークルプッシュ1位: +SAV_Pokeathlon4.L_ConnectionFirst=通信1位: +SAV_Pokeathlon4.L_ConnectionIndex=番号: +SAV_Pokeathlon4.L_ConnectionJoined=通信参加回数: +SAV_Pokeathlon4.L_ConnectionLast=通信最下位: +SAV_Pokeathlon4.L_CourseIndex=番号: +SAV_Pokeathlon4.L_CourseParticipant0=参加者1: +SAV_Pokeathlon4.L_CourseParticipant1=参加者2: +SAV_Pokeathlon4.L_CourseParticipant2=参加者3: +SAV_Pokeathlon4.L_CourseScore0=スコア1: +SAV_Pokeathlon4.L_CourseScore1=スコア2: +SAV_Pokeathlon4.L_CourseScore2=スコア3: +SAV_Pokeathlon4.L_CourseScoreMax=最高スコア: +SAV_Pokeathlon4.L_DailyShopFlags=日替わりショップ: +SAV_Pokeathlon4.L_Dashed=ダッシュ回数: +SAV_Pokeathlon4.L_DataCards=データカード: +SAV_Pokeathlon4.L_DiscCatchFirst=ディスクキャッチ1位: +SAV_Pokeathlon4.L_Failed=失敗: +SAV_Pokeathlon4.L_Fame=名声: +SAV_Pokeathlon4.L_FellDown=転倒: +SAV_Pokeathlon4.L_GoalRollFirst=ゴールロール1位: +SAV_Pokeathlon4.L_HurdleDashFirst=ハードルダッシュ1位: +SAV_Pokeathlon4.L_Instructions=説明: +SAV_Pokeathlon4.L_Jumped=ジャンプ回数: +SAV_Pokeathlon4.L_LampJumpFirst=ランプジャンプ1位: +SAV_Pokeathlon4.L_Language=言語: +SAV_Pokeathlon4.L_OT=親名: +SAV_Pokeathlon4.L_PennantCaptureFirst=ペナントキャプチャ1位: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=1位回数: +SAV_Pokeathlon4.L_PlacedLast=最下位回数: +SAV_Pokeathlon4.L_Points=ポイント: +SAV_Pokeathlon4.L_Record=記録: +SAV_Pokeathlon4.L_RelayRunFirst=リレーラン1位: +SAV_Pokeathlon4.L_RingDropFirst=リングドロップ1位: +SAV_Pokeathlon4.L_SelfEventIndex=番号: +SAV_Pokeathlon4.L_SelfImpeded=自分で妨害: +SAV_Pokeathlon4.L_SessionsJoined=参加セッション数: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=スノースロー1位: +SAV_Pokeathlon4.L_Switched=交代: +SAV_Pokeathlon4.L_Tackled=タックル: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=経過時間: +SAV_Pokeathlon4.L_TotalEventFirst=総合1位: +SAV_Pokeathlon4.L_TotalEventLast=総合最下位: +SAV_Pokeathlon4.L_Trainer0=トレーナー1: +SAV_Pokeathlon4.L_Trainer1=トレーナー2: +SAV_Pokeathlon4.L_Trainer2=トレーナー3: +SAV_Pokeathlon4.L_Trainer3=トレーナー4: +SAV_Pokeathlon4.L_Trainer4=トレーナー5: +SAV_Pokeathlon4.Tab_Best=ベスト +SAV_Pokeathlon4.Tab_Connection=通信 +SAV_Pokeathlon4.Tab_Counters=カウンター +SAV_Pokeathlon4.Tab_Courses=コース +SAV_Pokeathlon4.Tab_General=基本 +SAV_Pokeathlon4.Tab_Medals=メダル +SAV_Pokeathlon4.Tab_SelfEvent=自己競技 SAV_Pokebean.B_All=全て取得 SAV_Pokebean.B_Cancel=キャンセル SAV_Pokebean.B_None=全て消去 diff --git a/PKHeX.WinForms/Resources/text/lang_ko.txt b/PKHeX.WinForms/Resources/text/lang_ko.txt index faf8480db..451cf4d4a 100644 --- a/PKHeX.WinForms/Resources/text/lang_ko.txt +++ b/PKHeX.WinForms/Resources/text/lang_ko.txt @@ -48,6 +48,7 @@ SAV_Misc8b=기타 편집 도구 SAV_MysteryGiftDB=데이터베이스 SAV_OPower=O파워 편집 도구 SAV_Poffin8b=포핀 편집 도구 +SAV_Pokeathlon4=포켓슬론 SAV_Pokebean=포켓콩 편집 도구 SAV_PokeBlockORAS=포켓몬스넥 편집 도구 SAV_Pokedex4=포켓몬 도감 편집 도구 @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=링크 데이터 Main.B_OpenMedalsEditor=메달 Main.B_OpenMiscEditor=기타 편집 Main.B_OpenOPowers=O파워 +Main.B_OpenPokeathlon=포켓슬론 Main.B_OpenPokeBeans=포켓콩 Main.B_OpenPokeblocks=포켓몬스넥 Main.B_OpenPokedex=포켓몬 도감 @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=밝은 피부 (여) PlayerSkinColor8.PaleM=밝은 피부 (남) PlayerSkinColor8.TanF=태닝한 피부 (여) PlayerSkinColor8.TanM=태닝한 피부 (남) +PokeathlonEvent4.BlockSmash=블록 스매시 +PokeathlonEvent4.CirclePush=서클 푸시 +PokeathlonEvent4.DiscCatch=디스크 캐치 +PokeathlonEvent4.GoalRoll=골 롤 +PokeathlonEvent4.HurdleDash=허들 대시 +PokeathlonEvent4.LampJump=램프 점프 +PokeathlonEvent4.PennantCapture=페넌트 캐치 +PokeathlonEvent4.RelayRun=릴레이 런 +PokeathlonEvent4.RingDrop=링 드롭 +PokeathlonEvent4.SnowThrow=스노우 스로 +PokeathlonStat4.Jump=점프 +PokeathlonStat4.Power=파워 +PokeathlonStat4.Skill=스킬 +PokeathlonStat4.Speed=스피드 +PokeathlonStat4.Stamina=스태미나 PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=모두 SAV_Poffin8b.B_Cancel=취소 SAV_Poffin8b.B_None=없음 SAV_Poffin8b.B_Save=저장 +SAV_Pokeathlon4.B_Cancel=취소 +SAV_Pokeathlon4.B_MedalsClearAll=모두 지우기 +SAV_Pokeathlon4.B_MedalsGiveAll=모두 지급 +SAV_Pokeathlon4.B_Save=저장 +SAV_Pokeathlon4.CHK_IsShiny=색이 다른 +SAV_Pokeathlon4.DGV_Jump=점프 +SAV_Pokeathlon4.DGV_Power=파워 +SAV_Pokeathlon4.DGV_Skill=스킬 +SAV_Pokeathlon4.DGV_Species=종족 +SAV_Pokeathlon4.DGV_Speed=스피드 +SAV_Pokeathlon4.DGV_Sprite=스프라이트 +SAV_Pokeathlon4.DGV_Stamina=스태미나 +SAV_Pokeathlon4.L_Acquired=획득: +SAV_Pokeathlon4.L_Attempts=도전 횟수: +SAV_Pokeathlon4.L_BlockSmashFirst=블록 스매시 1위: +SAV_Pokeathlon4.L_BonusesEarned=획득 보너스: +SAV_Pokeathlon4.L_CirclePushFirst=서클 푸시 1위: +SAV_Pokeathlon4.L_ConnectionFirst=통신 1위: +SAV_Pokeathlon4.L_ConnectionIndex=번호: +SAV_Pokeathlon4.L_ConnectionJoined=통신 참가: +SAV_Pokeathlon4.L_ConnectionLast=통신 꼴찌: +SAV_Pokeathlon4.L_CourseIndex=번호: +SAV_Pokeathlon4.L_CourseParticipant0=참가자 1: +SAV_Pokeathlon4.L_CourseParticipant1=참가자 2: +SAV_Pokeathlon4.L_CourseParticipant2=참가자 3: +SAV_Pokeathlon4.L_CourseScore0=점수 1: +SAV_Pokeathlon4.L_CourseScore1=점수 2: +SAV_Pokeathlon4.L_CourseScore2=점수 3: +SAV_Pokeathlon4.L_CourseScoreMax=최고 점수: +SAV_Pokeathlon4.L_DailyShopFlags=일일 상점: +SAV_Pokeathlon4.L_Dashed=질주 횟수: +SAV_Pokeathlon4.L_DataCards=데이터 카드: +SAV_Pokeathlon4.L_DiscCatchFirst=디스크 캐치 1위: +SAV_Pokeathlon4.L_Failed=실패: +SAV_Pokeathlon4.L_Fame=명성: +SAV_Pokeathlon4.L_FellDown=넘어짐: +SAV_Pokeathlon4.L_GoalRollFirst=골 롤 1위: +SAV_Pokeathlon4.L_HurdleDashFirst=허들 대시 1위: +SAV_Pokeathlon4.L_Instructions=설명: +SAV_Pokeathlon4.L_Jumped=점프 횟수: +SAV_Pokeathlon4.L_LampJumpFirst=램프 점프 1위: +SAV_Pokeathlon4.L_Language=언어: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=페넌트 캐치 1위: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=1위 달성: +SAV_Pokeathlon4.L_PlacedLast=꼴찌 기록: +SAV_Pokeathlon4.L_Points=포인트: +SAV_Pokeathlon4.L_Record=기록: +SAV_Pokeathlon4.L_RelayRunFirst=릴레이 런 1위: +SAV_Pokeathlon4.L_RingDropFirst=링 드롭 1위: +SAV_Pokeathlon4.L_SelfEventIndex=번호: +SAV_Pokeathlon4.L_SelfImpeded=자기 방해: +SAV_Pokeathlon4.L_SessionsJoined=참가 세션: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=스노우 스로 1위: +SAV_Pokeathlon4.L_Switched=교체: +SAV_Pokeathlon4.L_Tackled=태클: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=플레이 시간: +SAV_Pokeathlon4.L_TotalEventFirst=총합 1위: +SAV_Pokeathlon4.L_TotalEventLast=총합 꼴찌: +SAV_Pokeathlon4.L_Trainer0=트레이너 1: +SAV_Pokeathlon4.L_Trainer1=트레이너 2: +SAV_Pokeathlon4.L_Trainer2=트레이너 3: +SAV_Pokeathlon4.L_Trainer3=트레이너 4: +SAV_Pokeathlon4.L_Trainer4=트레이너 5: +SAV_Pokeathlon4.Tab_Best=베스트 +SAV_Pokeathlon4.Tab_Connection=통신 +SAV_Pokeathlon4.Tab_Counters=카운터 +SAV_Pokeathlon4.Tab_Courses=코스 +SAV_Pokeathlon4.Tab_General=일반 +SAV_Pokeathlon4.Tab_Medals=메달 +SAV_Pokeathlon4.Tab_SelfEvent=개인 이벤트 SAV_Pokebean.B_All=모두 SAV_Pokebean.B_Cancel=취소 SAV_Pokebean.B_None=없음 diff --git a/PKHeX.WinForms/Resources/text/lang_zh-Hans.txt b/PKHeX.WinForms/Resources/text/lang_zh-Hans.txt index 25eea434a..e205643e9 100644 --- a/PKHeX.WinForms/Resources/text/lang_zh-Hans.txt +++ b/PKHeX.WinForms/Resources/text/lang_zh-Hans.txt @@ -48,6 +48,7 @@ SAV_Misc8b=杂项编辑 SAV_MysteryGiftDB=礼物数据库 SAV_OPower=O-力量 SAV_Poffin8b=宝芬编辑 +SAV_Pokeathlon4=宝可全能竞技 SAV_Pokebean=宝可豆 SAV_PokeBlockORAS=宝可方块 SAV_Pokedex4=图鉴编辑 @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=宝可梦连接 Main.B_OpenMedalsEditor=奖牌 Main.B_OpenMiscEditor=杂项编辑 Main.B_OpenOPowers=O-力量 +Main.B_OpenPokeathlon=宝可全能竞技 Main.B_OpenPokeBeans=宝可豆 Main.B_OpenPokeblocks=宝可方块 Main.B_OpenPokedex=宝可梦图鉴 @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=浅色肤色(女) PlayerSkinColor8.PaleM=浅色肤色(男) PlayerSkinColor8.TanF=棕色肤色(女) PlayerSkinColor8.TanM=棕色肤色(男) +PokeathlonEvent4.BlockSmash=粉碎方块 +PokeathlonEvent4.CirclePush=圆环推进 +PokeathlonEvent4.DiscCatch=飞盘接取 +PokeathlonEvent4.GoalRoll=滚向球门 +PokeathlonEvent4.HurdleDash=跨栏冲刺 +PokeathlonEvent4.LampJump=跳灯赛 +PokeathlonEvent4.PennantCapture=夺旗赛 +PokeathlonEvent4.RelayRun=接力赛跑 +PokeathlonEvent4.RingDrop=投环赛 +PokeathlonEvent4.SnowThrow=雪球投掷 +PokeathlonStat4.Jump=跳跃 +PokeathlonStat4.Power=力量 +PokeathlonStat4.Skill=技巧 +PokeathlonStat4.Speed=速度 +PokeathlonStat4.Stamina=耐力 PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=所有 SAV_Poffin8b.B_Cancel=取消 SAV_Poffin8b.B_None=清空 SAV_Poffin8b.B_Save=保存 +SAV_Pokeathlon4.B_Cancel=取消 +SAV_Pokeathlon4.B_MedalsClearAll=全部清空 +SAV_Pokeathlon4.B_MedalsGiveAll=全部获得 +SAV_Pokeathlon4.B_Save=保存 +SAV_Pokeathlon4.CHK_IsShiny=异色 +SAV_Pokeathlon4.DGV_Jump=跳跃 +SAV_Pokeathlon4.DGV_Power=力量 +SAV_Pokeathlon4.DGV_Skill=技巧 +SAV_Pokeathlon4.DGV_Species=种类 +SAV_Pokeathlon4.DGV_Speed=速度 +SAV_Pokeathlon4.DGV_Sprite=精灵 +SAV_Pokeathlon4.DGV_Stamina=耐力 +SAV_Pokeathlon4.L_Acquired=已获得: +SAV_Pokeathlon4.L_Attempts=尝试次数: +SAV_Pokeathlon4.L_BlockSmashFirst=粉碎方块第一: +SAV_Pokeathlon4.L_BonusesEarned=奖励获得: +SAV_Pokeathlon4.L_CirclePushFirst=圆环推进第一: +SAV_Pokeathlon4.L_ConnectionFirst=连接第一: +SAV_Pokeathlon4.L_ConnectionIndex=编号: +SAV_Pokeathlon4.L_ConnectionJoined=连接参加次数: +SAV_Pokeathlon4.L_ConnectionLast=连接最后: +SAV_Pokeathlon4.L_CourseIndex=编号: +SAV_Pokeathlon4.L_CourseParticipant0=参加者1: +SAV_Pokeathlon4.L_CourseParticipant1=参加者2: +SAV_Pokeathlon4.L_CourseParticipant2=参加者3: +SAV_Pokeathlon4.L_CourseScore0=分数1: +SAV_Pokeathlon4.L_CourseScore1=分数2: +SAV_Pokeathlon4.L_CourseScore2=分数3: +SAV_Pokeathlon4.L_CourseScoreMax=最高分: +SAV_Pokeathlon4.L_DailyShopFlags=每日商店: +SAV_Pokeathlon4.L_Dashed=冲刺次数: +SAV_Pokeathlon4.L_DataCards=数据卡: +SAV_Pokeathlon4.L_DiscCatchFirst=飞盘接取第一: +SAV_Pokeathlon4.L_Failed=失败: +SAV_Pokeathlon4.L_Fame=名望: +SAV_Pokeathlon4.L_FellDown=摔倒: +SAV_Pokeathlon4.L_GoalRollFirst=滚向球门第一: +SAV_Pokeathlon4.L_HurdleDashFirst=跨栏冲刺第一: +SAV_Pokeathlon4.L_Instructions=说明: +SAV_Pokeathlon4.L_Jumped=跳跃次数: +SAV_Pokeathlon4.L_LampJumpFirst=跳灯赛第一: +SAV_Pokeathlon4.L_Language=语言: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=夺旗赛第一: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=第一名次数: +SAV_Pokeathlon4.L_PlacedLast=最后一名次数: +SAV_Pokeathlon4.L_Points=点数: +SAV_Pokeathlon4.L_Record=记录: +SAV_Pokeathlon4.L_RelayRunFirst=接力赛跑第一: +SAV_Pokeathlon4.L_RingDropFirst=投环赛第一: +SAV_Pokeathlon4.L_SelfEventIndex=编号: +SAV_Pokeathlon4.L_SelfImpeded=自我妨碍: +SAV_Pokeathlon4.L_SessionsJoined=参加会话数: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=雪球投掷第一: +SAV_Pokeathlon4.L_Switched=切换次数: +SAV_Pokeathlon4.L_Tackled=擒抱: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=花费时间: +SAV_Pokeathlon4.L_TotalEventFirst=总赛事第一: +SAV_Pokeathlon4.L_TotalEventLast=总赛事最后: +SAV_Pokeathlon4.L_Trainer0=训练家1: +SAV_Pokeathlon4.L_Trainer1=训练家2: +SAV_Pokeathlon4.L_Trainer2=训练家3: +SAV_Pokeathlon4.L_Trainer3=训练家4: +SAV_Pokeathlon4.L_Trainer4=训练家5: +SAV_Pokeathlon4.Tab_Best=最佳 +SAV_Pokeathlon4.Tab_Connection=连接 +SAV_Pokeathlon4.Tab_Counters=计数 +SAV_Pokeathlon4.Tab_Courses=赛程 +SAV_Pokeathlon4.Tab_General=一般 +SAV_Pokeathlon4.Tab_Medals=奖牌 +SAV_Pokeathlon4.Tab_SelfEvent=个人赛事 SAV_Pokebean.B_All=全部 SAV_Pokebean.B_Cancel=取消 SAV_Pokebean.B_None=清空 diff --git a/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt b/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt index 6ca203538..6777456d8 100644 --- a/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt +++ b/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt @@ -48,6 +48,7 @@ SAV_Misc8b=訓練家資料雜項編輯 SAV_MysteryGiftDB=神秘禮物資料庫 SAV_OPower=O-力量編輯器 SAV_Poffin8b=寶芬編輯器 +SAV_Pokeathlon4=寶可全能競技 SAV_Pokebean=寶可豆編輯器 SAV_PokeBlockORAS=寶可方塊編輯器 SAV_Pokedex4=圖鑒編輯器 @@ -429,6 +430,7 @@ Main.B_OpenLinkInfo=寶可夢連接 Main.B_OpenMedalsEditor=獎牌 Main.B_OpenMiscEditor=雜項編輯 Main.B_OpenOPowers=O-力量 +Main.B_OpenPokeathlon=寶可全能競技 Main.B_OpenPokeBeans=寶可豆 Main.B_OpenPokeblocks=寶可方塊 Main.B_OpenPokedex=寶可夢圖鑒 @@ -914,6 +916,21 @@ PlayerSkinColor8.PaleF=淺色膚色(女) PlayerSkinColor8.PaleM=淺色膚色(男) PlayerSkinColor8.TanF=棕色膚色(女) PlayerSkinColor8.TanM=棕色膚色(男) +PokeathlonEvent4.BlockSmash=粉碎方塊 +PokeathlonEvent4.CirclePush=圓環推進 +PokeathlonEvent4.DiscCatch=飛盤接取 +PokeathlonEvent4.GoalRoll=滾向球門 +PokeathlonEvent4.HurdleDash=跨欄衝刺 +PokeathlonEvent4.LampJump=跳燈賽 +PokeathlonEvent4.PennantCapture=奪旗賽 +PokeathlonEvent4.RelayRun=接力賽跑 +PokeathlonEvent4.RingDrop=投環賽 +PokeathlonEvent4.SnowThrow=雪球投擲 +PokeathlonStat4.Jump=跳躍 +PokeathlonStat4.Power=力量 +PokeathlonStat4.Skill=技巧 +PokeathlonStat4.Speed=速度 +PokeathlonStat4.Stamina=耐力 PokeSize.L=L PokeSize.M=M PokeSize.S=S @@ -1834,6 +1851,80 @@ SAV_Poffin8b.B_All=所有 SAV_Poffin8b.B_Cancel=取消 SAV_Poffin8b.B_None=清空 SAV_Poffin8b.B_Save=儲存 +SAV_Pokeathlon4.B_Cancel=取消 +SAV_Pokeathlon4.B_MedalsClearAll=全部清空 +SAV_Pokeathlon4.B_MedalsGiveAll=全部獲得 +SAV_Pokeathlon4.B_Save=儲存 +SAV_Pokeathlon4.CHK_IsShiny=異色 +SAV_Pokeathlon4.DGV_Jump=跳躍 +SAV_Pokeathlon4.DGV_Power=力量 +SAV_Pokeathlon4.DGV_Skill=技巧 +SAV_Pokeathlon4.DGV_Species=種類 +SAV_Pokeathlon4.DGV_Speed=速度 +SAV_Pokeathlon4.DGV_Sprite=精靈 +SAV_Pokeathlon4.DGV_Stamina=耐力 +SAV_Pokeathlon4.L_Acquired=已獲得: +SAV_Pokeathlon4.L_Attempts=嘗試次數: +SAV_Pokeathlon4.L_BlockSmashFirst=粉碎方塊第一: +SAV_Pokeathlon4.L_BonusesEarned=獎勵獲得: +SAV_Pokeathlon4.L_CirclePushFirst=圓環推進第一: +SAV_Pokeathlon4.L_ConnectionFirst=連接第一: +SAV_Pokeathlon4.L_ConnectionIndex=編號: +SAV_Pokeathlon4.L_ConnectionJoined=連接參加次數: +SAV_Pokeathlon4.L_ConnectionLast=連接最後: +SAV_Pokeathlon4.L_CourseIndex=編號: +SAV_Pokeathlon4.L_CourseParticipant0=參加者1: +SAV_Pokeathlon4.L_CourseParticipant1=參加者2: +SAV_Pokeathlon4.L_CourseParticipant2=參加者3: +SAV_Pokeathlon4.L_CourseScore0=分數1: +SAV_Pokeathlon4.L_CourseScore1=分數2: +SAV_Pokeathlon4.L_CourseScore2=分數3: +SAV_Pokeathlon4.L_CourseScoreMax=最高分: +SAV_Pokeathlon4.L_DailyShopFlags=每日商店: +SAV_Pokeathlon4.L_Dashed=衝刺次數: +SAV_Pokeathlon4.L_DataCards=資料卡: +SAV_Pokeathlon4.L_DiscCatchFirst=飛盤接取第一: +SAV_Pokeathlon4.L_Failed=失敗: +SAV_Pokeathlon4.L_Fame=名望: +SAV_Pokeathlon4.L_FellDown=摔倒: +SAV_Pokeathlon4.L_GoalRollFirst=滾向球門第一: +SAV_Pokeathlon4.L_HurdleDashFirst=跨欄衝刺第一: +SAV_Pokeathlon4.L_Instructions=說明: +SAV_Pokeathlon4.L_Jumped=跳躍次數: +SAV_Pokeathlon4.L_LampJumpFirst=跳燈賽第一: +SAV_Pokeathlon4.L_Language=語言: +SAV_Pokeathlon4.L_OT=OT: +SAV_Pokeathlon4.L_PennantCaptureFirst=奪旗賽第一: +SAV_Pokeathlon4.L_PID=PID: +SAV_Pokeathlon4.L_PlacedFirst=第一名次數: +SAV_Pokeathlon4.L_PlacedLast=最後一名次數: +SAV_Pokeathlon4.L_Points=點數: +SAV_Pokeathlon4.L_Record=記錄: +SAV_Pokeathlon4.L_RelayRunFirst=接力賽跑第一: +SAV_Pokeathlon4.L_RingDropFirst=投環賽第一: +SAV_Pokeathlon4.L_SelfEventIndex=編號: +SAV_Pokeathlon4.L_SelfImpeded=自我妨礙: +SAV_Pokeathlon4.L_SessionsJoined=參加會話數: +SAV_Pokeathlon4.L_SID16=SID: +SAV_Pokeathlon4.L_SnowThrowFirst=雪球投擲第一: +SAV_Pokeathlon4.L_Switched=切換次數: +SAV_Pokeathlon4.L_Tackled=擒抱: +SAV_Pokeathlon4.L_TID16=TID: +SAV_Pokeathlon4.L_TimeSpent=花費時間: +SAV_Pokeathlon4.L_TotalEventFirst=總賽事第一: +SAV_Pokeathlon4.L_TotalEventLast=總賽事最後: +SAV_Pokeathlon4.L_Trainer0=訓練家1: +SAV_Pokeathlon4.L_Trainer1=訓練家2: +SAV_Pokeathlon4.L_Trainer2=訓練家3: +SAV_Pokeathlon4.L_Trainer3=訓練家4: +SAV_Pokeathlon4.L_Trainer4=訓練家5: +SAV_Pokeathlon4.Tab_Best=最佳 +SAV_Pokeathlon4.Tab_Connection=連接 +SAV_Pokeathlon4.Tab_Counters=計數 +SAV_Pokeathlon4.Tab_Courses=賽程 +SAV_Pokeathlon4.Tab_General=一般 +SAV_Pokeathlon4.Tab_Medals=獎牌 +SAV_Pokeathlon4.Tab_SelfEvent=個人賽事 SAV_Pokebean.B_All=全部 SAV_Pokebean.B_Cancel=取消 SAV_Pokebean.B_None=清空 diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.Designer.cs new file mode 100644 index 000000000..0fc984b23 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.Designer.cs @@ -0,0 +1,307 @@ +namespace PKHeX.WinForms +{ + partial class PokeathlonConnection4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + FLP_Attempts = new System.Windows.Forms.FlowLayoutPanel(); + L_Attempts = new System.Windows.Forms.Label(); + NUD_Attempts = new System.Windows.Forms.NumericUpDown(); + UC_Record0 = new PokeathlonEventRecord4Editor(); + L_Trainer0 = new System.Windows.Forms.Label(); + UC_Trainer0 = new PokeathlonEventTrainer4Editor(); + UC_Record1 = new PokeathlonEventRecord4Editor(); + L_Trainer1 = new System.Windows.Forms.Label(); + UC_Trainer1 = new PokeathlonEventTrainer4Editor(); + UC_Record2 = new PokeathlonEventRecord4Editor(); + L_Trainer2 = new System.Windows.Forms.Label(); + UC_Trainer2 = new PokeathlonEventTrainer4Editor(); + UC_Record3 = new PokeathlonEventRecord4Editor(); + L_Trainer3 = new System.Windows.Forms.Label(); + UC_Trainer3 = new PokeathlonEventTrainer4Editor(); + UC_Record4 = new PokeathlonEventRecord4Editor(); + L_Trainer4 = new System.Windows.Forms.Label(); + UC_Trainer4 = new PokeathlonEventTrainer4Editor(); + TLP_Main.SuspendLayout(); + FLP_Attempts.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Attempts).BeginInit(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoScroll = true; + TLP_Main.ColumnCount = 3; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.Controls.Add(FLP_Attempts, 0, 0); + TLP_Main.Controls.Add(UC_Record0, 0, 1); + TLP_Main.Controls.Add(L_Trainer0, 1, 1); + TLP_Main.Controls.Add(UC_Trainer0, 2, 1); + TLP_Main.Controls.Add(UC_Record1, 0, 2); + TLP_Main.Controls.Add(L_Trainer1, 1, 2); + TLP_Main.Controls.Add(UC_Trainer1, 2, 2); + TLP_Main.Controls.Add(UC_Record2, 0, 3); + TLP_Main.Controls.Add(L_Trainer2, 1, 3); + TLP_Main.Controls.Add(UC_Trainer2, 2, 3); + TLP_Main.Controls.Add(UC_Record3, 0, 4); + TLP_Main.Controls.Add(L_Trainer3, 1, 4); + TLP_Main.Controls.Add(UC_Trainer3, 2, 4); + TLP_Main.Controls.Add(UC_Record4, 0, 5); + TLP_Main.Controls.Add(L_Trainer4, 1, 5); + TLP_Main.Controls.Add(UC_Trainer4, 2, 5); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 6; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.Size = new System.Drawing.Size(613, 841); + TLP_Main.TabIndex = 0; + // + // FLP_Attempts + // + FLP_Attempts.AutoSize = true; + FLP_Attempts.Controls.Add(L_Attempts); + FLP_Attempts.Controls.Add(NUD_Attempts); + FLP_Attempts.Location = new System.Drawing.Point(0, 0); + FLP_Attempts.Margin = new System.Windows.Forms.Padding(0); + FLP_Attempts.Name = "FLP_Attempts"; + FLP_Attempts.Size = new System.Drawing.Size(189, 25); + FLP_Attempts.TabIndex = 0; + FLP_Attempts.WrapContents = false; + // + // L_Attempts + // + L_Attempts.Anchor = System.Windows.Forms.AnchorStyles.Left; + L_Attempts.AutoSize = true; + L_Attempts.Location = new System.Drawing.Point(3, 4); + L_Attempts.Name = "L_Attempts"; + L_Attempts.Size = new System.Drawing.Size(63, 17); + L_Attempts.TabIndex = 0; + L_Attempts.Text = "Attempts:"; + // + // NUD_Attempts + // + NUD_Attempts.Location = new System.Drawing.Point(69, 0); + NUD_Attempts.Margin = new System.Windows.Forms.Padding(0); + NUD_Attempts.Maximum = new decimal(new int[] { 9999999, 0, 0, 0 }); + NUD_Attempts.Name = "NUD_Attempts"; + NUD_Attempts.Size = new System.Drawing.Size(120, 25); + NUD_Attempts.TabIndex = 1; + // + // UC_Record0 + // + UC_Record0.AutoSize = true; + UC_Record0.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record0.Location = new System.Drawing.Point(0, 37); + UC_Record0.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record0.Name = "UC_Record0"; + UC_Record0.Size = new System.Drawing.Size(249, 148); + UC_Record0.TabIndex = 2; + // + // L_Trainer0 + // + L_Trainer0.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Trainer0.AutoSize = true; + L_Trainer0.Location = new System.Drawing.Point(249, 25); + L_Trainer0.Margin = new System.Windows.Forms.Padding(0); + L_Trainer0.Name = "L_Trainer0"; + L_Trainer0.Padding = new System.Windows.Forms.Padding(0, 16, 0, 0); + L_Trainer0.Size = new System.Drawing.Size(62, 33); + L_Trainer0.TabIndex = 3; + L_Trainer0.Text = "Trainer 1:"; + // + // UC_Trainer0 + // + UC_Trainer0.AutoSize = true; + UC_Trainer0.Location = new System.Drawing.Point(311, 25); + UC_Trainer0.Margin = new System.Windows.Forms.Padding(0); + UC_Trainer0.Name = "UC_Trainer0"; + UC_Trainer0.Padding = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Trainer0.Size = new System.Drawing.Size(207, 121); + UC_Trainer0.TabIndex = 4; + // + // UC_Record1 + // + UC_Record1.AutoSize = true; + UC_Record1.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record1.Location = new System.Drawing.Point(0, 197); + UC_Record1.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record1.Name = "UC_Record1"; + UC_Record1.Size = new System.Drawing.Size(249, 148); + UC_Record1.TabIndex = 5; + // + // L_Trainer1 + // + L_Trainer1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Trainer1.AutoSize = true; + L_Trainer1.Location = new System.Drawing.Point(249, 185); + L_Trainer1.Margin = new System.Windows.Forms.Padding(0); + L_Trainer1.Name = "L_Trainer1"; + L_Trainer1.Padding = new System.Windows.Forms.Padding(0, 16, 0, 0); + L_Trainer1.Size = new System.Drawing.Size(62, 33); + L_Trainer1.TabIndex = 6; + L_Trainer1.Text = "Trainer 2:"; + // + // UC_Trainer1 + // + UC_Trainer1.AutoSize = true; + UC_Trainer1.Location = new System.Drawing.Point(311, 185); + UC_Trainer1.Margin = new System.Windows.Forms.Padding(0); + UC_Trainer1.Name = "UC_Trainer1"; + UC_Trainer1.Padding = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Trainer1.Size = new System.Drawing.Size(207, 121); + UC_Trainer1.TabIndex = 7; + // + // UC_Record2 + // + UC_Record2.AutoSize = true; + UC_Record2.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record2.Location = new System.Drawing.Point(0, 357); + UC_Record2.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record2.Name = "UC_Record2"; + UC_Record2.Size = new System.Drawing.Size(249, 148); + UC_Record2.TabIndex = 8; + // + // L_Trainer2 + // + L_Trainer2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Trainer2.AutoSize = true; + L_Trainer2.Location = new System.Drawing.Point(249, 345); + L_Trainer2.Margin = new System.Windows.Forms.Padding(0); + L_Trainer2.Name = "L_Trainer2"; + L_Trainer2.Padding = new System.Windows.Forms.Padding(0, 16, 0, 0); + L_Trainer2.Size = new System.Drawing.Size(62, 33); + L_Trainer2.TabIndex = 9; + L_Trainer2.Text = "Trainer 3:"; + // + // UC_Trainer2 + // + UC_Trainer2.AutoSize = true; + UC_Trainer2.Location = new System.Drawing.Point(311, 345); + UC_Trainer2.Margin = new System.Windows.Forms.Padding(0); + UC_Trainer2.Name = "UC_Trainer2"; + UC_Trainer2.Padding = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Trainer2.Size = new System.Drawing.Size(207, 121); + UC_Trainer2.TabIndex = 10; + // + // UC_Record3 + // + UC_Record3.AutoSize = true; + UC_Record3.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record3.Location = new System.Drawing.Point(0, 517); + UC_Record3.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record3.Name = "UC_Record3"; + UC_Record3.Size = new System.Drawing.Size(249, 148); + UC_Record3.TabIndex = 11; + // + // L_Trainer3 + // + L_Trainer3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Trainer3.AutoSize = true; + L_Trainer3.Location = new System.Drawing.Point(249, 505); + L_Trainer3.Margin = new System.Windows.Forms.Padding(0); + L_Trainer3.Name = "L_Trainer3"; + L_Trainer3.Padding = new System.Windows.Forms.Padding(0, 16, 0, 0); + L_Trainer3.Size = new System.Drawing.Size(62, 33); + L_Trainer3.TabIndex = 12; + L_Trainer3.Text = "Trainer 4:"; + // + // UC_Trainer3 + // + UC_Trainer3.AutoSize = true; + UC_Trainer3.Location = new System.Drawing.Point(311, 505); + UC_Trainer3.Margin = new System.Windows.Forms.Padding(0); + UC_Trainer3.Name = "UC_Trainer3"; + UC_Trainer3.Padding = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Trainer3.Size = new System.Drawing.Size(207, 121); + UC_Trainer3.TabIndex = 13; + // + // UC_Record4 + // + UC_Record4.AutoSize = true; + UC_Record4.Dock = System.Windows.Forms.DockStyle.Top; + UC_Record4.Location = new System.Drawing.Point(0, 677); + UC_Record4.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record4.Name = "UC_Record4"; + UC_Record4.Size = new System.Drawing.Size(249, 148); + UC_Record4.TabIndex = 14; + // + // L_Trainer4 + // + L_Trainer4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Trainer4.AutoSize = true; + L_Trainer4.Location = new System.Drawing.Point(249, 665); + L_Trainer4.Margin = new System.Windows.Forms.Padding(0); + L_Trainer4.Name = "L_Trainer4"; + L_Trainer4.Padding = new System.Windows.Forms.Padding(0, 16, 0, 0); + L_Trainer4.Size = new System.Drawing.Size(62, 33); + L_Trainer4.TabIndex = 15; + L_Trainer4.Text = "Trainer 5:"; + // + // UC_Trainer4 + // + UC_Trainer4.AutoSize = true; + UC_Trainer4.Location = new System.Drawing.Point(311, 665); + UC_Trainer4.Margin = new System.Windows.Forms.Padding(0); + UC_Trainer4.Name = "UC_Trainer4"; + UC_Trainer4.Padding = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Trainer4.Size = new System.Drawing.Size(207, 121); + UC_Trainer4.TabIndex = 16; + // + // PokeathlonConnection4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + Controls.Add(TLP_Main); + Margin = new System.Windows.Forms.Padding(0); + Name = "PokeathlonConnection4Editor"; + Size = new System.Drawing.Size(613, 841); + TLP_Main.ResumeLayout(false); + TLP_Main.PerformLayout(); + FLP_Attempts.ResumeLayout(false); + FLP_Attempts.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Attempts).EndInit(); + ResumeLayout(false); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private System.Windows.Forms.FlowLayoutPanel FLP_Attempts; + private System.Windows.Forms.Label L_Attempts; + private System.Windows.Forms.NumericUpDown NUD_Attempts; + private PokeathlonEventRecord4Editor UC_Record0; + private System.Windows.Forms.Label L_Trainer0; + private PokeathlonEventTrainer4Editor UC_Trainer0; + private PokeathlonEventRecord4Editor UC_Record1; + private System.Windows.Forms.Label L_Trainer1; + private PokeathlonEventTrainer4Editor UC_Trainer1; + private PokeathlonEventRecord4Editor UC_Record2; + private System.Windows.Forms.Label L_Trainer2; + private PokeathlonEventTrainer4Editor UC_Trainer2; + private PokeathlonEventRecord4Editor UC_Record3; + private System.Windows.Forms.Label L_Trainer3; + private PokeathlonEventTrainer4Editor UC_Trainer3; + private PokeathlonEventRecord4Editor UC_Record4; + private System.Windows.Forms.Label L_Trainer4; + private PokeathlonEventTrainer4Editor UC_Trainer4; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.cs new file mode 100644 index 000000000..71d1eee2a --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonConnection4Editor.cs @@ -0,0 +1,46 @@ +using System; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonConnection4Editor : UserControl +{ + public PokeathlonConnection4Editor() + { + InitializeComponent(); + EventRecords = [UC_Record0, UC_Record1, UC_Record2, UC_Record3, UC_Record4]; + Trainers = [UC_Trainer0, UC_Trainer1, UC_Trainer2, UC_Trainer3, UC_Trainer4]; + } + + private PokeathlonEventRecord4Editor[] EventRecords { get; } + private PokeathlonEventTrainer4Editor[] Trainers { get; } + + public void LoadObject(PokeathlonConnection4 entity) + { + SuspendLayout(); + TLP_Main.SuspendLayout(); + + var inner = entity.Inner; + NUD_Attempts.Value = Math.Clamp(inner.Attempts, 0, (uint)NUD_Attempts.Maximum); + for (int i = 0; i < EventRecords.Length; i++) + { + EventRecords[i].LoadObject(inner.GetRecord(i)); + Trainers[i].LoadObject(entity.GetTrainer(i)); + } + + TLP_Main.ResumeLayout(); + ResumeLayout(); + } + + public void SaveObject(PokeathlonConnection4 entity) + { + var inner = entity.Inner; + inner.Attempts = (uint)NUD_Attempts.Value; + for (int i = 0; i < EventRecords.Length; i++) + { + EventRecords[i].SaveObject(inner.GetRecord(i)); + Trainers[i].SaveObject(entity.GetTrainer(i)); + } + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.Designer.cs new file mode 100644 index 000000000..0870d20f1 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.Designer.cs @@ -0,0 +1,157 @@ +namespace PKHeX.WinForms +{ + partial class PokeathlonEventData4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + L_Attempts = new System.Windows.Forms.Label(); + NUD_Attempts = new System.Windows.Forms.NumericUpDown(); + UC_Record0 = new PokeathlonEventRecord4Editor(); + UC_Record1 = new PokeathlonEventRecord4Editor(); + UC_Record2 = new PokeathlonEventRecord4Editor(); + UC_Record3 = new PokeathlonEventRecord4Editor(); + UC_Record4 = new PokeathlonEventRecord4Editor(); + TLP_Main.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Attempts).BeginInit(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoScroll = true; + TLP_Main.AutoSize = true; + TLP_Main.ColumnCount = 2; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Main.Controls.Add(L_Attempts, 0, 0); + TLP_Main.Controls.Add(NUD_Attempts, 1, 0); + TLP_Main.Controls.Add(UC_Record0, 0, 1); + TLP_Main.Controls.Add(UC_Record1, 0, 2); + TLP_Main.Controls.Add(UC_Record2, 0, 3); + TLP_Main.Controls.Add(UC_Record3, 0, 4); + TLP_Main.Controls.Add(UC_Record4, 0, 5); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 6; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.Size = new System.Drawing.Size(258, 841); + TLP_Main.TabIndex = 0; + // + // L_Attempts + // + L_Attempts.Anchor = System.Windows.Forms.AnchorStyles.Left; + L_Attempts.AutoSize = true; + L_Attempts.Location = new System.Drawing.Point(3, 4); + L_Attempts.Name = "L_Attempts"; + L_Attempts.Size = new System.Drawing.Size(63, 17); + L_Attempts.TabIndex = 0; + L_Attempts.Text = "Attempts:"; + // + // NUD_Attempts + // + NUD_Attempts.Location = new System.Drawing.Point(69, 0); + NUD_Attempts.Margin = new System.Windows.Forms.Padding(0); + NUD_Attempts.Maximum = new decimal(new int[] { 9999999, 0, 0, 0 }); + NUD_Attempts.Name = "NUD_Attempts"; + NUD_Attempts.Size = new System.Drawing.Size(120, 25); + NUD_Attempts.TabIndex = 1; + // + // UC_Record0 + // + UC_Record0.AutoSize = true; + TLP_Main.SetColumnSpan(UC_Record0, 2); + UC_Record0.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record0.Location = new System.Drawing.Point(0, 37); + UC_Record0.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record0.Name = "UC_Record0"; + UC_Record0.Size = new System.Drawing.Size(258, 148); + UC_Record0.TabIndex = 2; + // + // UC_Record1 + // + UC_Record1.AutoSize = true; + TLP_Main.SetColumnSpan(UC_Record1, 2); + UC_Record1.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record1.Location = new System.Drawing.Point(0, 197); + UC_Record1.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record1.Name = "UC_Record1"; + UC_Record1.Size = new System.Drawing.Size(258, 148); + UC_Record1.TabIndex = 3; + // + // UC_Record2 + // + UC_Record2.AutoSize = true; + TLP_Main.SetColumnSpan(UC_Record2, 2); + UC_Record2.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record2.Location = new System.Drawing.Point(0, 357); + UC_Record2.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record2.Name = "UC_Record2"; + UC_Record2.Size = new System.Drawing.Size(258, 148); + UC_Record2.TabIndex = 4; + // + // UC_Record3 + // + UC_Record3.AutoSize = true; + TLP_Main.SetColumnSpan(UC_Record3, 2); + UC_Record3.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Record3.Location = new System.Drawing.Point(0, 517); + UC_Record3.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record3.Name = "UC_Record3"; + UC_Record3.Size = new System.Drawing.Size(258, 148); + UC_Record3.TabIndex = 5; + // + // UC_Record4 + // + UC_Record4.AutoSize = true; + TLP_Main.SetColumnSpan(UC_Record4, 2); + UC_Record4.Location = new System.Drawing.Point(0, 677); + UC_Record4.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + UC_Record4.Name = "UC_Record4"; + UC_Record4.Size = new System.Drawing.Size(249, 148); + UC_Record4.TabIndex = 6; + // + // PokeathlonEventData4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + AutoSize = true; + Controls.Add(TLP_Main); + Margin = new System.Windows.Forms.Padding(0); + Name = "PokeathlonEventData4Editor"; + Size = new System.Drawing.Size(258, 841); + TLP_Main.ResumeLayout(false); + TLP_Main.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Attempts).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private System.Windows.Forms.Label L_Attempts; + private System.Windows.Forms.NumericUpDown NUD_Attempts; + private PokeathlonEventRecord4Editor UC_Record0; + private PokeathlonEventRecord4Editor UC_Record1; + private PokeathlonEventRecord4Editor UC_Record2; + private PokeathlonEventRecord4Editor UC_Record3; + private PokeathlonEventRecord4Editor UC_Record4; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.cs new file mode 100644 index 000000000..e62aad2b6 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventData4Editor.cs @@ -0,0 +1,30 @@ +using System; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonEventData4Editor : UserControl +{ + public PokeathlonEventData4Editor() + { + InitializeComponent(); + EventRecords = [UC_Record0, UC_Record1, UC_Record2, UC_Record3, UC_Record4]; + } + + private PokeathlonEventRecord4Editor[] EventRecords { get; } + + public void LoadObject(PokeathlonEventData4 entity) + { + NUD_Attempts.Value = Math.Clamp(entity.Attempts, 0, (uint)NUD_Attempts.Maximum); + for (int i = 0; i < EventRecords.Length; i++) + EventRecords[i].LoadObject(entity.GetRecord(i)); + } + + public void SaveObject(PokeathlonEventData4 entity) + { + entity.Attempts = (uint)NUD_Attempts.Value; + for (int i = 0; i < EventRecords.Length; i++) + EventRecords[i].SaveObject(entity.GetRecord(i)); + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.Designer.cs new file mode 100644 index 000000000..783c6af60 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.Designer.cs @@ -0,0 +1,122 @@ +namespace PKHeX.WinForms +{ + partial class PokeathlonEventRecord4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + L_Record = new System.Windows.Forms.Label(); + NUD_Record = new System.Windows.Forms.NumericUpDown(); + UC_Entry0 = new PokeathlonSpeciesForm4Editor(); + UC_Entry1 = new PokeathlonSpeciesForm4Editor(); + UC_Entry2 = new PokeathlonSpeciesForm4Editor(); + TLP_Main.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Record).BeginInit(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoSize = true; + TLP_Main.ColumnCount = 2; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.Controls.Add(L_Record, 0, 0); + TLP_Main.Controls.Add(NUD_Record, 1, 0); + TLP_Main.Controls.Add(UC_Entry0, 0, 1); + TLP_Main.Controls.Add(UC_Entry1, 0, 2); + TLP_Main.Controls.Add(UC_Entry2, 0, 3); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 4; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.Size = new System.Drawing.Size(512, 145); + TLP_Main.TabIndex = 0; + // + // L_Record + // + L_Record.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_Record.AutoSize = true; + L_Record.Location = new System.Drawing.Point(3, 4); + L_Record.Name = "L_Record"; + L_Record.Size = new System.Drawing.Size(48, 17); + L_Record.TabIndex = 0; + L_Record.Text = "Record:"; + // + // NUD_Record + // + NUD_Record.Location = new System.Drawing.Point(57, 0); + NUD_Record.Margin = new System.Windows.Forms.Padding(3, 0, 3, 3); + NUD_Record.Maximum = new decimal(new int[] { 65535, 0, 0, 0 }); + NUD_Record.Name = "NUD_Record"; + NUD_Record.Size = new System.Drawing.Size(120, 25); + NUD_Record.TabIndex = 1; + // + // UC_Entry0 + // + TLP_Main.SetColumnSpan(UC_Entry0, 2); + UC_Entry0.Anchor = System.Windows.Forms.AnchorStyles.Left; + UC_Entry0.Location = new System.Drawing.Point(0, 28); + UC_Entry0.Margin = new System.Windows.Forms.Padding(0); + UC_Entry0.Name = "UC_Entry0"; + UC_Entry0.Size = new System.Drawing.Size(249, 40); + UC_Entry0.TabIndex = 2; + // + // UC_Entry1 + // + TLP_Main.SetColumnSpan(UC_Entry1, 2); + UC_Entry1.Anchor = System.Windows.Forms.AnchorStyles.Left; + UC_Entry1.Location = new System.Drawing.Point(0, 68); + UC_Entry1.Margin = new System.Windows.Forms.Padding(0); + UC_Entry1.Name = "UC_Entry1"; + UC_Entry1.Size = new System.Drawing.Size(249, 40); + UC_Entry1.TabIndex = 3; + // + // UC_Entry2 + // + TLP_Main.SetColumnSpan(UC_Entry2, 2); + UC_Entry2.Anchor = System.Windows.Forms.AnchorStyles.Left; + UC_Entry2.Location = new System.Drawing.Point(0, 108); + UC_Entry2.Margin = new System.Windows.Forms.Padding(0); + UC_Entry2.Name = "UC_Entry2"; + UC_Entry2.Size = new System.Drawing.Size(249, 40); + UC_Entry2.TabIndex = 4; + // + // PokeathlonEventRecord4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + Controls.Add(TLP_Main); + Name = "PokeathlonEventRecord4Editor"; + Size = new System.Drawing.Size(249, 145); + TLP_Main.ResumeLayout(false); + TLP_Main.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Record).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private System.Windows.Forms.Label L_Record; + private System.Windows.Forms.NumericUpDown NUD_Record; + private PokeathlonSpeciesForm4Editor UC_Entry0; + private PokeathlonSpeciesForm4Editor UC_Entry1; + private PokeathlonSpeciesForm4Editor UC_Entry2; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.cs new file mode 100644 index 000000000..ad54d6dba --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventRecord4Editor.cs @@ -0,0 +1,29 @@ +using System; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonEventRecord4Editor : UserControl +{ + public PokeathlonEventRecord4Editor() + { + InitializeComponent(); + } + + public void LoadObject(PokeathlonEventRecord4 entity) + { + NUD_Record.Value = Math.Clamp(entity.Record, (ushort)0, (ushort)NUD_Record.Maximum); + UC_Entry0.LoadValues(entity.Entry0.Species, entity.Entry0.Form); + UC_Entry1.LoadValues(entity.Entry1.Species, entity.Entry1.Form); + UC_Entry2.LoadValues(entity.Entry2.Species, entity.Entry2.Form); + } + + public void SaveObject(PokeathlonEventRecord4 entity) + { + entity.Record = (ushort)NUD_Record.Value; + entity.Entry0 = new SpeciesForm10 { Species = UC_Entry0.Species, Form = UC_Entry0.Form }; + entity.Entry1 = new SpeciesForm10 { Species = UC_Entry1.Species, Form = UC_Entry1.Form }; + entity.Entry2 = new SpeciesForm10 { Species = UC_Entry2.Species, Form = UC_Entry2.Form }; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.Designer.cs new file mode 100644 index 000000000..2441cb9cd --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.Designer.cs @@ -0,0 +1,160 @@ +namespace PKHeX.WinForms +{ + partial class PokeathlonEventTrainer4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + L_OT = new System.Windows.Forms.Label(); + TB_OT = new System.Windows.Forms.TextBox(); + L_TID16 = new System.Windows.Forms.Label(); + TB_TID16 = new System.Windows.Forms.TextBox(); + L_SID16 = new System.Windows.Forms.Label(); + TB_SID16 = new System.Windows.Forms.TextBox(); + L_Language = new System.Windows.Forms.Label(); + CB_Language = new System.Windows.Forms.ComboBox(); + TLP_Main.SuspendLayout(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoSize = true; + TLP_Main.ColumnCount = 2; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.Controls.Add(L_OT, 0, 0); + TLP_Main.Controls.Add(TB_OT, 1, 0); + TLP_Main.Controls.Add(L_TID16, 0, 1); + TLP_Main.Controls.Add(TB_TID16, 1, 1); + TLP_Main.Controls.Add(L_SID16, 0, 2); + TLP_Main.Controls.Add(TB_SID16, 1, 2); + TLP_Main.Controls.Add(L_Language, 0, 3); + TLP_Main.Controls.Add(CB_Language, 1, 3); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 4; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.Size = new System.Drawing.Size(225, 118); + TLP_Main.TabIndex = 0; + // + // L_OT + // + L_OT.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_OT.AutoSize = true; + L_OT.Location = new System.Drawing.Point(41, 5); + L_OT.Margin = new System.Windows.Forms.Padding(0); + L_OT.Name = "L_OT"; + L_OT.Size = new System.Drawing.Size(27, 17); + L_OT.TabIndex = 0; + L_OT.Text = "OT:"; + // + // TB_OT + // + TB_OT.Anchor = System.Windows.Forms.AnchorStyles.Left; + TB_OT.Location = new System.Drawing.Point(71, 0); + TB_OT.Margin = new System.Windows.Forms.Padding(3, 0, 0, 3); + TB_OT.Name = "TB_OT"; + TB_OT.Size = new System.Drawing.Size(136, 25); + TB_OT.TabIndex = 1; + // + // L_TID16 + // + L_TID16.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_TID16.AutoSize = true; + L_TID16.Location = new System.Drawing.Point(38, 33); + L_TID16.Margin = new System.Windows.Forms.Padding(0); + L_TID16.Name = "L_TID16"; + L_TID16.Size = new System.Drawing.Size(30, 17); + L_TID16.TabIndex = 2; + L_TID16.Text = "TID:"; + // + // TB_TID16 + // + TB_TID16.Location = new System.Drawing.Point(71, 28); + TB_TID16.Margin = new System.Windows.Forms.Padding(3, 0, 0, 3); + TB_TID16.Name = "TB_TID16"; + TB_TID16.Size = new System.Drawing.Size(90, 25); + TB_TID16.TabIndex = 3; + // + // L_SID16 + // + L_SID16.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_SID16.AutoSize = true; + L_SID16.Location = new System.Drawing.Point(38, 61); + L_SID16.Margin = new System.Windows.Forms.Padding(0); + L_SID16.Name = "L_SID16"; + L_SID16.Size = new System.Drawing.Size(30, 17); + L_SID16.TabIndex = 4; + L_SID16.Text = "SID:"; + // + // TB_SID16 + // + TB_SID16.Location = new System.Drawing.Point(71, 56); + TB_SID16.Margin = new System.Windows.Forms.Padding(3, 0, 0, 3); + TB_SID16.Name = "TB_SID16"; + TB_SID16.Size = new System.Drawing.Size(90, 25); + TB_SID16.TabIndex = 5; + // + // L_Language + // + L_Language.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_Language.AutoSize = true; + L_Language.Location = new System.Drawing.Point(0, 88); + L_Language.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + L_Language.Name = "L_Language"; + L_Language.Size = new System.Drawing.Size(68, 17); + L_Language.TabIndex = 6; + L_Language.Text = "Language:"; + // + // CB_Language + // + CB_Language.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + CB_Language.FormattingEnabled = true; + CB_Language.Location = new System.Drawing.Point(71, 84); + CB_Language.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + CB_Language.Name = "CB_Language"; + CB_Language.Size = new System.Drawing.Size(136, 25); + CB_Language.TabIndex = 7; + // + // PokeathlonEventTrainer4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + AutoSize = true; + Controls.Add(TLP_Main); + Name = "PokeathlonEventTrainer4Editor"; + Size = new System.Drawing.Size(225, 118); + TLP_Main.ResumeLayout(false); + TLP_Main.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private System.Windows.Forms.Label L_OT; + private System.Windows.Forms.TextBox TB_OT; + private System.Windows.Forms.Label L_TID16; + private System.Windows.Forms.TextBox TB_TID16; + private System.Windows.Forms.Label L_SID16; + private System.Windows.Forms.TextBox TB_SID16; + private System.Windows.Forms.Label L_Language; + private System.Windows.Forms.ComboBox CB_Language; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.cs new file mode 100644 index 000000000..66eba08d6 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonEventTrainer4Editor.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonEventTrainer4Editor : UserControl +{ + public PokeathlonEventTrainer4Editor() + { + InitializeComponent(); + var languages = new List { new(GameInfo.Strings.specieslist[0], 0) }; + languages.AddRange(GameInfo.LanguageDataSource(4, EntityContext.Gen4).Where(z => z.Value is not 0)); + CB_Language.InitializeBinding(); + CB_Language.DataSource = new BindingSource(languages, string.Empty); + } + + public void LoadObject(PokeathlonEventTrainer4 entity) + { + TB_OT.Text = entity.OT; + TB_TID16.Text = entity.TID16.ToString(CultureInfo.InvariantCulture); + TB_SID16.Text = entity.SID16.ToString(CultureInfo.InvariantCulture); + CB_Language.SelectedValue = (int)entity.Language; + } + + public void SaveObject(PokeathlonEventTrainer4 entity) + { + entity.OT = TB_OT.Text; + entity.TID16 = ParseU16(TB_TID16.Text); + entity.SID16 = ParseU16(TB_SID16.Text); + entity.Language = (byte)WinFormsUtil.GetIndex(CB_Language); + } + + private static ushort ParseU16(string text) + { + if (!ushort.TryParse(text, NumberStyles.Integer, CultureInfo.InvariantCulture, out var value)) + return 0; + return value; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.Designer.cs new file mode 100644 index 000000000..24a0428c5 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.Designer.cs @@ -0,0 +1,188 @@ +using PKHeX.WinForms.Controls; + +namespace PKHeX.WinForms +{ + partial class PokeathlonParticipant4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + UC_SpeciesForm = new PokeathlonSpeciesForm4Editor(); + FLP_Meta = new System.Windows.Forms.FlowLayoutPanel(); + GT_Gender = new GenderToggle(); + CHK_IsShiny = new System.Windows.Forms.CheckBox(); + L_PID = new System.Windows.Forms.Label(); + TB_PID = new System.Windows.Forms.TextBox(); + L_TID16 = new System.Windows.Forms.Label(); + TB_TID16 = new System.Windows.Forms.TextBox(); + L_SID16 = new System.Windows.Forms.Label(); + TB_SID16 = new System.Windows.Forms.TextBox(); + TLP_Main.SuspendLayout(); + FLP_Meta.SuspendLayout(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoSize = true; + TLP_Main.ColumnCount = 1; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Main.Controls.Add(UC_SpeciesForm, 0, 0); + TLP_Main.Controls.Add(FLP_Meta, 0, 1); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 2; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Main.Size = new System.Drawing.Size(572, 76); + TLP_Main.TabIndex = 0; + // + // UC_SpeciesForm + // + UC_SpeciesForm.DisplayGender = 0; + UC_SpeciesForm.DisplayShiny = false; + UC_SpeciesForm.Dock = System.Windows.Forms.DockStyle.Fill; + UC_SpeciesForm.Location = new System.Drawing.Point(0, 0); + UC_SpeciesForm.Margin = new System.Windows.Forms.Padding(0); + UC_SpeciesForm.Name = "UC_SpeciesForm"; + UC_SpeciesForm.Size = new System.Drawing.Size(572, 40); + UC_SpeciesForm.TabIndex = 0; + // + // FLP_Meta + // + FLP_Meta.AutoSize = true; + FLP_Meta.Controls.Add(GT_Gender); + FLP_Meta.Controls.Add(CHK_IsShiny); + FLP_Meta.Controls.Add(L_PID); + FLP_Meta.Controls.Add(TB_PID); + FLP_Meta.Controls.Add(L_TID16); + FLP_Meta.Controls.Add(TB_TID16); + FLP_Meta.Controls.Add(L_SID16); + FLP_Meta.Controls.Add(TB_SID16); + FLP_Meta.Dock = System.Windows.Forms.DockStyle.Fill; + FLP_Meta.Location = new System.Drawing.Point(0, 40); + FLP_Meta.Margin = new System.Windows.Forms.Padding(0); + FLP_Meta.Name = "FLP_Meta"; + FLP_Meta.Size = new System.Drawing.Size(572, 36); + FLP_Meta.TabIndex = 1; + FLP_Meta.WrapContents = false; + // + // GT_Gender + // + GT_Gender.AllowClick = true; + GT_Gender.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + GT_Gender.Gender = 255; + GT_Gender.Location = new System.Drawing.Point(0, 4); + GT_Gender.Margin = new System.Windows.Forms.Padding(0, 4, 6, 0); + GT_Gender.Name = "GT_Gender"; + GT_Gender.Size = new System.Drawing.Size(18, 18); + GT_Gender.TabIndex = 0; + // + // CHK_IsShiny + // + CHK_IsShiny.AutoSize = true; + CHK_IsShiny.Location = new System.Drawing.Point(24, 2); + CHK_IsShiny.Margin = new System.Windows.Forms.Padding(0, 2, 12, 0); + CHK_IsShiny.Name = "CHK_IsShiny"; + CHK_IsShiny.Size = new System.Drawing.Size(57, 21); + CHK_IsShiny.TabIndex = 1; + CHK_IsShiny.Text = "Shiny"; + CHK_IsShiny.UseVisualStyleBackColor = true; + // + // L_PID + // + L_PID.Anchor = System.Windows.Forms.AnchorStyles.Left; + L_PID.AutoSize = true; + L_PID.Location = new System.Drawing.Point(96, 4); + L_PID.Name = "L_PID"; + L_PID.Size = new System.Drawing.Size(26, 17); + L_PID.TabIndex = 2; + L_PID.Text = "PID:"; + // + // TB_PID + // + TB_PID.Location = new System.Drawing.Point(128, 0); + TB_PID.Margin = new System.Windows.Forms.Padding(3, 0, 12, 0); + TB_PID.MaxLength = 8; + TB_PID.Name = "TB_PID"; + TB_PID.Size = new System.Drawing.Size(86, 25); + TB_PID.TabIndex = 3; + // + // L_TID16 + // + L_TID16.Anchor = System.Windows.Forms.AnchorStyles.Left; + L_TID16.AutoSize = true; + L_TID16.Location = new System.Drawing.Point(229, 4); + L_TID16.Name = "L_TID16"; + L_TID16.Size = new System.Drawing.Size(30, 17); + L_TID16.TabIndex = 4; + L_TID16.Text = "TID:"; + // + // TB_TID16 + // + TB_TID16.Location = new System.Drawing.Point(265, 0); + TB_TID16.Margin = new System.Windows.Forms.Padding(3, 0, 12, 0); + TB_TID16.Name = "TB_TID16"; + TB_TID16.Size = new System.Drawing.Size(68, 25); + TB_TID16.TabIndex = 5; + // + // L_SID16 + // + L_SID16.Anchor = System.Windows.Forms.AnchorStyles.Left; + L_SID16.AutoSize = true; + L_SID16.Location = new System.Drawing.Point(348, 4); + L_SID16.Name = "L_SID16"; + L_SID16.Size = new System.Drawing.Size(30, 17); + L_SID16.TabIndex = 6; + L_SID16.Text = "SID:"; + // + // TB_SID16 + // + TB_SID16.Location = new System.Drawing.Point(384, 0); + TB_SID16.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + TB_SID16.Name = "TB_SID16"; + TB_SID16.Size = new System.Drawing.Size(68, 25); + TB_SID16.TabIndex = 7; + // + // PokeathlonParticipant4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + AutoSize = true; + Controls.Add(TLP_Main); + Name = "PokeathlonParticipant4Editor"; + Size = new System.Drawing.Size(572, 76); + TLP_Main.ResumeLayout(false); + TLP_Main.PerformLayout(); + FLP_Meta.ResumeLayout(false); + FLP_Meta.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private PokeathlonSpeciesForm4Editor UC_SpeciesForm; + private GenderToggle GT_Gender; + private System.Windows.Forms.CheckBox CHK_IsShiny; + private System.Windows.Forms.FlowLayoutPanel FLP_Meta; + private System.Windows.Forms.Label L_PID; + private System.Windows.Forms.TextBox TB_PID; + private System.Windows.Forms.Label L_TID16; + private System.Windows.Forms.TextBox TB_TID16; + private System.Windows.Forms.Label L_SID16; + private System.Windows.Forms.TextBox TB_SID16; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.cs new file mode 100644 index 000000000..79ec167a4 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonParticipant4Editor.cs @@ -0,0 +1,84 @@ +using System.Globalization; +using System.Windows.Forms; +using PKHeX.Core; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonParticipant4Editor : UserControl +{ + private bool IsLoading; + + public PokeathlonParticipant4Editor() + { + InitializeComponent(); + UC_SpeciesForm.ValueChanged += (_, _) => SpeciesFormChanged(); + GT_Gender.Click += (_, _) => WriteBack(); + CHK_IsShiny.CheckedChanged += (_, _) => ShinyChanged(); + TB_PID.TextChanged += (_, _) => WriteBack(); + TB_TID16.TextChanged += (_, _) => WriteBack(); + TB_SID16.TextChanged += (_, _) => WriteBack(); + } + + public void LoadObject(PokeathlonParticipant4 entity) + { + IsLoading = true; + UC_SpeciesForm.DisplayGender = entity.Gender; + UC_SpeciesForm.DisplayShiny = entity.IsShiny; + UC_SpeciesForm.LoadValues(entity.Species, entity.Form); + GT_Gender.Gender = entity.Gender; + CHK_IsShiny.Checked = entity.IsShiny; + TB_PID.Text = entity.EncryptionConstant.ToString("X8"); + TB_TID16.Text = entity.TID16.ToString("00000"); + TB_SID16.Text = entity.SID16.ToString("00000"); + IsLoading = false; + } + + public void SaveObject(PokeathlonParticipant4 entity) + { + entity.Species = UC_SpeciesForm.Species; + entity.Form = UC_SpeciesForm.Form; + entity.Gender = GT_Gender.Gender; + entity.IsShiny = CHK_IsShiny.Checked; + entity.EncryptionConstant = ParseHex(TB_PID.Text); + entity.TID16 = ParseU16(TB_TID16.Text); + entity.SID16 = ParseU16(TB_SID16.Text); + } + + private void SpeciesFormChanged() + { + if (IsLoading) + return; + WriteBack(); + } + + private void ShinyChanged() + { + if (IsLoading) + return; + UC_SpeciesForm.DisplayShiny = CHK_IsShiny.Checked; + WriteBack(); + } + + private void WriteBack() + { + if (IsLoading) + return; + UC_SpeciesForm.DisplayGender = GT_Gender.Gender; + UC_SpeciesForm.DisplayShiny = CHK_IsShiny.Checked; + } + + private static ushort ParseU16(string text) + { + if (!ushort.TryParse(text, NumberStyles.Integer, CultureInfo.InvariantCulture, out var value)) + return 0; + return value; + } + + private static uint ParseHex(string text) + { + text = Util.GetOnlyHex(text); + if (!uint.TryParse(text, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var value)) + return 0; + return value; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.Designer.cs new file mode 100644 index 000000000..fba24070c --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.Designer.cs @@ -0,0 +1,98 @@ +namespace PKHeX.WinForms +{ + partial class PokeathlonSpeciesForm4Editor + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Component Designer generated code + + private void InitializeComponent() + { + TLP_Main = new System.Windows.Forms.TableLayoutPanel(); + PB_Sprite = new System.Windows.Forms.PictureBox(); + CB_Species = new System.Windows.Forms.ComboBox(); + CB_Form = new System.Windows.Forms.ComboBox(); + TLP_Main.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)PB_Sprite).BeginInit(); + SuspendLayout(); + // + // TLP_Main + // + TLP_Main.AutoSize = true; + TLP_Main.ColumnCount = 3; + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Main.Controls.Add(PB_Sprite, 0, 0); + TLP_Main.Controls.Add(CB_Species, 1, 0); + TLP_Main.Controls.Add(CB_Form, 2, 0); + TLP_Main.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Main.Location = new System.Drawing.Point(0, 0); + TLP_Main.Margin = new System.Windows.Forms.Padding(0); + TLP_Main.Name = "TLP_Main"; + TLP_Main.RowCount = 1; + TLP_Main.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Main.Size = new System.Drawing.Size(420, 40); + TLP_Main.TabIndex = 0; + // + // PB_Sprite + // + PB_Sprite.Dock = System.Windows.Forms.DockStyle.Fill; + PB_Sprite.Location = new System.Drawing.Point(0, 0); + PB_Sprite.Margin = new System.Windows.Forms.Padding(0); + PB_Sprite.Name = "PB_Sprite"; + PB_Sprite.Size = new System.Drawing.Size(40, 40); + PB_Sprite.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + PB_Sprite.TabIndex = 0; + PB_Sprite.TabStop = false; + // + // CB_Species + // + CB_Species.Anchor = System.Windows.Forms.AnchorStyles.Left; + CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + CB_Species.FormattingEnabled = true; + CB_Species.Location = new System.Drawing.Point(43, 6); + CB_Species.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6); + CB_Species.Name = "CB_Species"; + CB_Species.Size = new System.Drawing.Size(120, 25); + CB_Species.TabIndex = 1; + // + // CB_Form + // + CB_Form.Anchor = System.Windows.Forms.AnchorStyles.Left; + CB_Form.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + CB_Form.FormattingEnabled = true; + CB_Form.Location = new System.Drawing.Point(169, 6); + CB_Form.Margin = new System.Windows.Forms.Padding(3, 6, 0, 6); + CB_Form.Name = "CB_Form"; + CB_Form.Size = new System.Drawing.Size(80, 25); + CB_Form.TabIndex = 2; + // + // PokeathlonSpeciesForm4Editor + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + Controls.Add(TLP_Main); + Name = "PokeathlonSpeciesForm4Editor"; + Size = new System.Drawing.Size(249, 40); + TLP_Main.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)PB_Sprite).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel TLP_Main; + private System.Windows.Forms.PictureBox PB_Sprite; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.ComboBox CB_Form; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.cs new file mode 100644 index 000000000..6c1d31196 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/Pokeathlon/PokeathlonSpeciesForm4Editor.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using PKHeX.Core; +using PKHeX.Drawing.PokeSprite; + +namespace PKHeX.WinForms; + +public sealed partial class PokeathlonSpeciesForm4Editor : UserControl +{ + private bool IsLoading; + private byte SpriteGender; + private bool SpriteShiny; + + public event EventHandler? ValueChanged; + + public ushort Species => (ushort)WinFormsUtil.GetIndex(CB_Species); + public byte Form => (byte)Math.Max(CB_Form.SelectedIndex, 0); + + public byte DisplayGender + { + get => SpriteGender; + set + { + SpriteGender = value > 2 ? (byte)2 : value; + RefreshSprite(); + } + } + + public bool DisplayShiny + { + get => SpriteShiny; + set + { + SpriteShiny = value; + RefreshSprite(); + } + } + + public PokeathlonSpeciesForm4Editor() + { + InitializeComponent(); + InitializeCombo(CB_Species, GameInfo.FilteredSources.Species.ToList()); + CB_Species.SelectedValueChanged += CB_Species_SelectedValueChanged; + CB_Form.SelectedValueChanged += CB_Form_SelectedValueChanged; + LoadValues(0, 0); + } + + public void LoadValues(ushort species, byte form) + { + IsLoading = true; + CB_Species.SelectedValue = (int)species; + LoadForms(form); + RefreshSprite(); + IsLoading = false; + } + + private void CB_Species_SelectedValueChanged(object? sender, EventArgs e) + { + LoadForms(); + OnValueChanged(); + } + + private void CB_Form_SelectedValueChanged(object? sender, EventArgs e) + { + RefreshSprite(); + OnValueChanged(); + } + + private void LoadForms(byte selectedForm = 0) + { + var species = Species; + var forms = FormConverter.GetFormList(species, GameInfo.Strings.types, GameInfo.Strings.forms, Main.GenderSymbols, EntityContext.Gen4); + var source = GetFormSource(forms); + CB_Form.InitializeBinding(); + CB_Form.DataSource = new BindingSource(source, string.Empty); + CB_Form.SelectedValue = Math.Min(selectedForm, source.Count - 1); + RefreshSprite(); + } + + private void RefreshSprite() + { + var image = SpriteUtil.GetSprite(Species, Form, SpriteGender, 0, 0, false, SpriteShiny ? Shiny.Always : Shiny.Never, EntityContext.Gen4); + PB_Sprite.Image = image; + } + + private void OnValueChanged() + { + if (!IsLoading) + ValueChanged?.Invoke(this, EventArgs.Empty); + } + + private static List GetFormSource(IReadOnlyList forms) + { + var result = new List(forms.Count); + for (int i = 0; i < forms.Count; i++) + result.Add(new ComboItem(forms[i], i)); + return result; + } + + private static void InitializeCombo(ComboBox cb, IReadOnlyList source) + { + cb.InitializeBinding(); + cb.DataSource = new BindingSource(source, string.Empty); + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.Designer.cs new file mode 100644 index 000000000..b8578f625 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.Designer.cs @@ -0,0 +1,983 @@ +using PKHeX.WinForms.Controls; + +namespace PKHeX.WinForms +{ + partial class SAV_Pokeathlon4 + { + private System.ComponentModel.IContainer components = null; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + TC_Editor = new System.Windows.Forms.TabControl(); + Tab_General = new System.Windows.Forms.TabPage(); + TLP_General = new System.Windows.Forms.TableLayoutPanel(); + L_Points = new System.Windows.Forms.Label(); + NUD_Points = new System.Windows.Forms.NumericUpDown(); + L_DailyShopFlags = new System.Windows.Forms.Label(); + FLP_DailyShopFlags = new System.Windows.Forms.FlowLayoutPanel(); + CHK_DailyShop0 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop1 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop2 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop3 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop4 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop5 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop6 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop7 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop8 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop9 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop10 = new System.Windows.Forms.CheckBox(); + CHK_DailyShop11 = new System.Windows.Forms.CheckBox(); + L_DataCards = new System.Windows.Forms.Label(); + CLB_DataCards = new System.Windows.Forms.CheckedListBox(); + Tab_Medals = new System.Windows.Forms.TabPage(); + FLP_Medals = new System.Windows.Forms.FlowLayoutPanel(); + B_MedalsGiveAll = new System.Windows.Forms.Button(); + B_MedalsClearAll = new System.Windows.Forms.Button(); + DGV_Medals = new DoubleBufferedDataGridView(); + Tab_Counters = new System.Windows.Forms.TabPage(); + TLP_Counters = new System.Windows.Forms.TableLayoutPanel(); + Tab_Best = new System.Windows.Forms.TabPage(); + TLP_Best = new System.Windows.Forms.TableLayoutPanel(); + Tab_Courses = new System.Windows.Forms.TabPage(); + TLP_Courses = new System.Windows.Forms.TableLayoutPanel(); + L_CourseIndex = new System.Windows.Forms.Label(); + CB_CourseIndex = new System.Windows.Forms.ComboBox(); + TLP_CourseScore = new System.Windows.Forms.TableLayoutPanel(); + L_CourseScore0 = new System.Windows.Forms.Label(); + NUD_CourseScore0 = new System.Windows.Forms.NumericUpDown(); + L_CourseScore1 = new System.Windows.Forms.Label(); + NUD_CourseScore1 = new System.Windows.Forms.NumericUpDown(); + L_CourseScore2 = new System.Windows.Forms.Label(); + NUD_CourseScore2 = new System.Windows.Forms.NumericUpDown(); + L_CourseScoreMax = new System.Windows.Forms.Label(); + NUD_CourseScoreMax = new System.Windows.Forms.NumericUpDown(); + L_CourseParticipant0 = new System.Windows.Forms.Label(); + UC_CourseParticipant0 = new PokeathlonParticipant4Editor(); + L_CourseParticipant1 = new System.Windows.Forms.Label(); + UC_CourseParticipant1 = new PokeathlonParticipant4Editor(); + L_CourseParticipant2 = new System.Windows.Forms.Label(); + UC_CourseParticipant2 = new PokeathlonParticipant4Editor(); + Tab_SelfEvent = new System.Windows.Forms.TabPage(); + TLP_SelfEvent = new System.Windows.Forms.TableLayoutPanel(); + L_SelfEventIndex = new System.Windows.Forms.Label(); + CB_SelfEventIndex = new System.Windows.Forms.ComboBox(); + UC_SelfEventData = new PokeathlonEventData4Editor(); + Tab_Connection = new System.Windows.Forms.TabPage(); + TLP_Connection = new System.Windows.Forms.TableLayoutPanel(); + L_ConnectionIndex = new System.Windows.Forms.Label(); + CB_ConnectionIndex = new System.Windows.Forms.ComboBox(); + UC_Connection = new PokeathlonConnection4Editor(); + FLP_Buttons = new System.Windows.Forms.FlowLayoutPanel(); + B_Cancel = new System.Windows.Forms.Button(); + B_Save = new System.Windows.Forms.Button(); + TLP_Medals = new System.Windows.Forms.TableLayoutPanel(); + TC_Editor.SuspendLayout(); + Tab_General.SuspendLayout(); + TLP_General.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Points).BeginInit(); + FLP_DailyShopFlags.SuspendLayout(); + Tab_Medals.SuspendLayout(); + FLP_Medals.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)DGV_Medals).BeginInit(); + Tab_Counters.SuspendLayout(); + Tab_Best.SuspendLayout(); + Tab_Courses.SuspendLayout(); + TLP_Courses.SuspendLayout(); + TLP_CourseScore.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore0).BeginInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore2).BeginInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScoreMax).BeginInit(); + Tab_SelfEvent.SuspendLayout(); + TLP_SelfEvent.SuspendLayout(); + Tab_Connection.SuspendLayout(); + TLP_Connection.SuspendLayout(); + FLP_Buttons.SuspendLayout(); + TLP_Medals.SuspendLayout(); + SuspendLayout(); + // + // TC_Editor + // + TC_Editor.Controls.Add(Tab_General); + TC_Editor.Controls.Add(Tab_Medals); + TC_Editor.Controls.Add(Tab_Counters); + TC_Editor.Controls.Add(Tab_Best); + TC_Editor.Controls.Add(Tab_Courses); + TC_Editor.Controls.Add(Tab_SelfEvent); + TC_Editor.Controls.Add(Tab_Connection); + TC_Editor.Dock = System.Windows.Forms.DockStyle.Fill; + TC_Editor.Location = new System.Drawing.Point(0, 0); + TC_Editor.Margin = new System.Windows.Forms.Padding(0); + TC_Editor.Name = "TC_Editor"; + TC_Editor.SelectedIndex = 0; + TC_Editor.Size = new System.Drawing.Size(612, 924); + TC_Editor.TabIndex = 0; + // + // Tab_General + // + Tab_General.Controls.Add(TLP_General); + Tab_General.Location = new System.Drawing.Point(4, 26); + Tab_General.Name = "Tab_General"; + Tab_General.Padding = new System.Windows.Forms.Padding(3); + Tab_General.Size = new System.Drawing.Size(604, 895); + Tab_General.TabIndex = 0; + Tab_General.Text = "General"; + Tab_General.UseVisualStyleBackColor = true; + // + // TLP_General + // + TLP_General.ColumnCount = 2; + TLP_General.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_General.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_General.Controls.Add(L_Points, 0, 0); + TLP_General.Controls.Add(NUD_Points, 1, 0); + TLP_General.Controls.Add(L_DailyShopFlags, 0, 1); + TLP_General.Controls.Add(FLP_DailyShopFlags, 1, 1); + TLP_General.Controls.Add(L_DataCards, 0, 2); + TLP_General.Controls.Add(CLB_DataCards, 1, 2); + TLP_General.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_General.Location = new System.Drawing.Point(3, 3); + TLP_General.Name = "TLP_General"; + TLP_General.Padding = new System.Windows.Forms.Padding(8); + TLP_General.RowCount = 3; + TLP_General.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_General.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_General.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_General.Size = new System.Drawing.Size(598, 889); + TLP_General.TabIndex = 0; + // + // L_Points + // + L_Points.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_Points.AutoSize = true; + L_Points.Location = new System.Drawing.Point(38, 12); + L_Points.Margin = new System.Windows.Forms.Padding(0); + L_Points.Name = "L_Points"; + L_Points.Size = new System.Drawing.Size(46, 17); + L_Points.TabIndex = 0; + L_Points.Text = "Points:"; + // + // NUD_Points + // + NUD_Points.Location = new System.Drawing.Point(84, 8); + NUD_Points.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + NUD_Points.Maximum = new decimal(new int[] { 99999, 0, 0, 0 }); + NUD_Points.Name = "NUD_Points"; + NUD_Points.Size = new System.Drawing.Size(120, 25); + NUD_Points.TabIndex = 1; + // + // L_DailyShopFlags + // + L_DailyShopFlags.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_DailyShopFlags.AutoSize = true; + L_DailyShopFlags.Location = new System.Drawing.Point(11, 35); + L_DailyShopFlags.Margin = new System.Windows.Forms.Padding(0); + L_DailyShopFlags.Name = "L_DailyShopFlags"; + L_DailyShopFlags.Size = new System.Drawing.Size(73, 17); + L_DailyShopFlags.TabIndex = 2; + L_DailyShopFlags.Text = "Daily Shop:"; + // + // FLP_DailyShopFlags + // + FLP_DailyShopFlags.AutoSize = true; + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop0); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop1); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop2); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop3); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop4); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop5); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop6); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop7); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop8); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop9); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop10); + FLP_DailyShopFlags.Controls.Add(CHK_DailyShop11); + FLP_DailyShopFlags.Dock = System.Windows.Forms.DockStyle.Fill; + FLP_DailyShopFlags.Location = new System.Drawing.Point(84, 34); + FLP_DailyShopFlags.Margin = new System.Windows.Forms.Padding(0); + FLP_DailyShopFlags.Name = "FLP_DailyShopFlags"; + FLP_DailyShopFlags.Size = new System.Drawing.Size(506, 20); + FLP_DailyShopFlags.TabIndex = 3; + // + // CHK_DailyShop0 + // + CHK_DailyShop0.AutoSize = true; + CHK_DailyShop0.Location = new System.Drawing.Point(3, 3); + CHK_DailyShop0.Name = "CHK_DailyShop0"; + CHK_DailyShop0.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop0.TabIndex = 0; + CHK_DailyShop0.UseVisualStyleBackColor = true; + // + // CHK_DailyShop1 + // + CHK_DailyShop1.AutoSize = true; + CHK_DailyShop1.Location = new System.Drawing.Point(24, 3); + CHK_DailyShop1.Name = "CHK_DailyShop1"; + CHK_DailyShop1.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop1.TabIndex = 1; + CHK_DailyShop1.UseVisualStyleBackColor = true; + // + // CHK_DailyShop2 + // + CHK_DailyShop2.AutoSize = true; + CHK_DailyShop2.Location = new System.Drawing.Point(45, 3); + CHK_DailyShop2.Name = "CHK_DailyShop2"; + CHK_DailyShop2.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop2.TabIndex = 2; + CHK_DailyShop2.UseVisualStyleBackColor = true; + // + // CHK_DailyShop3 + // + CHK_DailyShop3.AutoSize = true; + CHK_DailyShop3.Location = new System.Drawing.Point(66, 3); + CHK_DailyShop3.Name = "CHK_DailyShop3"; + CHK_DailyShop3.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop3.TabIndex = 3; + CHK_DailyShop3.UseVisualStyleBackColor = true; + // + // CHK_DailyShop4 + // + CHK_DailyShop4.AutoSize = true; + CHK_DailyShop4.Location = new System.Drawing.Point(87, 3); + CHK_DailyShop4.Name = "CHK_DailyShop4"; + CHK_DailyShop4.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop4.TabIndex = 4; + CHK_DailyShop4.UseVisualStyleBackColor = true; + // + // CHK_DailyShop5 + // + CHK_DailyShop5.AutoSize = true; + CHK_DailyShop5.Location = new System.Drawing.Point(108, 3); + CHK_DailyShop5.Name = "CHK_DailyShop5"; + CHK_DailyShop5.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop5.TabIndex = 5; + CHK_DailyShop5.UseVisualStyleBackColor = true; + // + // CHK_DailyShop6 + // + CHK_DailyShop6.AutoSize = true; + CHK_DailyShop6.Location = new System.Drawing.Point(129, 3); + CHK_DailyShop6.Name = "CHK_DailyShop6"; + CHK_DailyShop6.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop6.TabIndex = 6; + CHK_DailyShop6.UseVisualStyleBackColor = true; + // + // CHK_DailyShop7 + // + CHK_DailyShop7.AutoSize = true; + CHK_DailyShop7.Location = new System.Drawing.Point(150, 3); + CHK_DailyShop7.Name = "CHK_DailyShop7"; + CHK_DailyShop7.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop7.TabIndex = 7; + CHK_DailyShop7.UseVisualStyleBackColor = true; + // + // CHK_DailyShop8 + // + CHK_DailyShop8.AutoSize = true; + CHK_DailyShop8.Location = new System.Drawing.Point(171, 3); + CHK_DailyShop8.Name = "CHK_DailyShop8"; + CHK_DailyShop8.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop8.TabIndex = 8; + CHK_DailyShop8.UseVisualStyleBackColor = true; + // + // CHK_DailyShop9 + // + CHK_DailyShop9.AutoSize = true; + CHK_DailyShop9.Location = new System.Drawing.Point(192, 3); + CHK_DailyShop9.Name = "CHK_DailyShop9"; + CHK_DailyShop9.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop9.TabIndex = 9; + CHK_DailyShop9.UseVisualStyleBackColor = true; + // + // CHK_DailyShop10 + // + CHK_DailyShop10.AutoSize = true; + CHK_DailyShop10.Location = new System.Drawing.Point(213, 3); + CHK_DailyShop10.Name = "CHK_DailyShop10"; + CHK_DailyShop10.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop10.TabIndex = 10; + CHK_DailyShop10.UseVisualStyleBackColor = true; + // + // CHK_DailyShop11 + // + CHK_DailyShop11.AutoSize = true; + CHK_DailyShop11.Location = new System.Drawing.Point(234, 3); + CHK_DailyShop11.Name = "CHK_DailyShop11"; + CHK_DailyShop11.Size = new System.Drawing.Size(15, 14); + CHK_DailyShop11.TabIndex = 11; + CHK_DailyShop11.UseVisualStyleBackColor = true; + // + // L_DataCards + // + L_DataCards.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; + L_DataCards.AutoSize = true; + L_DataCards.Location = new System.Drawing.Point(8, 56); + L_DataCards.Margin = new System.Windows.Forms.Padding(0, 2, 0, 0); + L_DataCards.Name = "L_DataCards"; + L_DataCards.Size = new System.Drawing.Size(76, 17); + L_DataCards.TabIndex = 4; + L_DataCards.Text = "Data Cards:"; + // + // CLB_DataCards + // + CLB_DataCards.CheckOnClick = true; + CLB_DataCards.Dock = System.Windows.Forms.DockStyle.Fill; + CLB_DataCards.FormattingEnabled = true; + CLB_DataCards.IntegralHeight = false; + CLB_DataCards.Location = new System.Drawing.Point(87, 54); + CLB_DataCards.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + CLB_DataCards.Name = "CLB_DataCards"; + CLB_DataCards.Size = new System.Drawing.Size(500, 827); + CLB_DataCards.TabIndex = 5; + // + // Tab_Medals + // + Tab_Medals.Controls.Add(TLP_Medals); + Tab_Medals.Location = new System.Drawing.Point(4, 26); + Tab_Medals.Name = "Tab_Medals"; + Tab_Medals.Padding = new System.Windows.Forms.Padding(3); + Tab_Medals.Size = new System.Drawing.Size(604, 895); + Tab_Medals.TabIndex = 1; + Tab_Medals.Text = "Medals"; + Tab_Medals.UseVisualStyleBackColor = true; + // + // FLP_Medals + // + FLP_Medals.AutoSize = true; + FLP_Medals.Controls.Add(B_MedalsGiveAll); + FLP_Medals.Controls.Add(B_MedalsClearAll); + FLP_Medals.Dock = System.Windows.Forms.DockStyle.Fill; + FLP_Medals.Location = new System.Drawing.Point(0, 841); + FLP_Medals.Margin = new System.Windows.Forms.Padding(0); + FLP_Medals.Name = "FLP_Medals"; + FLP_Medals.Padding = new System.Windows.Forms.Padding(8); + FLP_Medals.Size = new System.Drawing.Size(598, 48); + FLP_Medals.TabIndex = 1; + FLP_Medals.WrapContents = false; + // + // B_MedalsGiveAll + // + B_MedalsGiveAll.AutoSize = true; + B_MedalsGiveAll.Location = new System.Drawing.Point(11, 11); + B_MedalsGiveAll.Name = "B_MedalsGiveAll"; + B_MedalsGiveAll.Size = new System.Drawing.Size(61, 27); + B_MedalsGiveAll.TabIndex = 0; + B_MedalsGiveAll.Text = "Give All"; + B_MedalsGiveAll.UseVisualStyleBackColor = true; + B_MedalsGiveAll.Click += B_MedalsGiveAll_Click; + // + // B_MedalsClearAll + // + B_MedalsClearAll.AutoSize = true; + B_MedalsClearAll.Location = new System.Drawing.Point(78, 11); + B_MedalsClearAll.Name = "B_MedalsClearAll"; + B_MedalsClearAll.Size = new System.Drawing.Size(66, 27); + B_MedalsClearAll.TabIndex = 1; + B_MedalsClearAll.Text = "Clear All"; + B_MedalsClearAll.UseVisualStyleBackColor = true; + B_MedalsClearAll.Click += B_MedalsClearAll_Click; + // + // DGV_Medals + // + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ControlLight; + DGV_Medals.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle2; + DGV_Medals.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + DGV_Medals.Dock = System.Windows.Forms.DockStyle.Fill; + DGV_Medals.Location = new System.Drawing.Point(0, 0); + DGV_Medals.Margin = new System.Windows.Forms.Padding(0); + DGV_Medals.Name = "DGV_Medals"; + DGV_Medals.RowHeadersVisible = false; + DGV_Medals.Size = new System.Drawing.Size(598, 841); + DGV_Medals.TabIndex = 0; + // + // Tab_Counters + // + Tab_Counters.Controls.Add(TLP_Counters); + Tab_Counters.Location = new System.Drawing.Point(4, 26); + Tab_Counters.Name = "Tab_Counters"; + Tab_Counters.Padding = new System.Windows.Forms.Padding(3); + Tab_Counters.Size = new System.Drawing.Size(604, 894); + Tab_Counters.TabIndex = 2; + Tab_Counters.Text = "Counters"; + Tab_Counters.UseVisualStyleBackColor = true; + // + // TLP_Counters + // + TLP_Counters.AutoScroll = true; + TLP_Counters.ColumnCount = 2; + TLP_Counters.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Counters.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Counters.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Counters.Location = new System.Drawing.Point(3, 3); + TLP_Counters.Name = "TLP_Counters"; + TLP_Counters.Padding = new System.Windows.Forms.Padding(8); + TLP_Counters.RowCount = 1; + TLP_Counters.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Counters.Size = new System.Drawing.Size(598, 888); + TLP_Counters.TabIndex = 0; + // + // Tab_Best + // + Tab_Best.Controls.Add(TLP_Best); + Tab_Best.Location = new System.Drawing.Point(4, 26); + Tab_Best.Name = "Tab_Best"; + Tab_Best.Padding = new System.Windows.Forms.Padding(3); + Tab_Best.Size = new System.Drawing.Size(604, 895); + Tab_Best.TabIndex = 3; + Tab_Best.Text = "Best"; + Tab_Best.UseVisualStyleBackColor = true; + // + // TLP_Best + // + TLP_Best.AutoScroll = true; + TLP_Best.ColumnCount = 2; + TLP_Best.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Best.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Best.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Best.Location = new System.Drawing.Point(3, 3); + TLP_Best.Name = "TLP_Best"; + TLP_Best.Padding = new System.Windows.Forms.Padding(8); + TLP_Best.RowCount = 1; + TLP_Best.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Best.Size = new System.Drawing.Size(598, 889); + TLP_Best.TabIndex = 0; + // + // Tab_Courses + // + Tab_Courses.Controls.Add(TLP_Courses); + Tab_Courses.Location = new System.Drawing.Point(4, 26); + Tab_Courses.Name = "Tab_Courses"; + Tab_Courses.Padding = new System.Windows.Forms.Padding(3); + Tab_Courses.Size = new System.Drawing.Size(604, 895); + Tab_Courses.TabIndex = 4; + Tab_Courses.Text = "Courses"; + Tab_Courses.UseVisualStyleBackColor = true; + // + // TLP_Courses + // + TLP_Courses.AutoScroll = true; + TLP_Courses.AutoSize = true; + TLP_Courses.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + TLP_Courses.ColumnCount = 2; + TLP_Courses.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 120F)); + TLP_Courses.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Courses.Controls.Add(L_CourseIndex, 0, 0); + TLP_Courses.Controls.Add(CB_CourseIndex, 1, 0); + TLP_Courses.Controls.Add(TLP_CourseScore, 1, 1); + TLP_Courses.Controls.Add(L_CourseParticipant0, 0, 2); + TLP_Courses.Controls.Add(UC_CourseParticipant0, 0, 3); + TLP_Courses.Controls.Add(L_CourseParticipant1, 0, 4); + TLP_Courses.Controls.Add(UC_CourseParticipant1, 0, 5); + TLP_Courses.Controls.Add(L_CourseParticipant2, 0, 6); + TLP_Courses.Controls.Add(UC_CourseParticipant2, 0, 7); + TLP_Courses.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Courses.Location = new System.Drawing.Point(3, 3); + TLP_Courses.Name = "TLP_Courses"; + TLP_Courses.Padding = new System.Windows.Forms.Padding(8); + TLP_Courses.RowCount = 8; + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Courses.Size = new System.Drawing.Size(598, 889); + TLP_Courses.TabIndex = 0; + // + // L_CourseIndex + // + L_CourseIndex.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_CourseIndex.AutoSize = true; + L_CourseIndex.Location = new System.Drawing.Point(83, 12); + L_CourseIndex.Name = "L_CourseIndex"; + L_CourseIndex.Size = new System.Drawing.Size(42, 17); + L_CourseIndex.TabIndex = 0; + L_CourseIndex.Text = "Index:"; + // + // CB_CourseIndex + // + CB_CourseIndex.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + CB_CourseIndex.FormattingEnabled = true; + CB_CourseIndex.Location = new System.Drawing.Point(128, 8); + CB_CourseIndex.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + CB_CourseIndex.Name = "CB_CourseIndex"; + CB_CourseIndex.Size = new System.Drawing.Size(121, 25); + CB_CourseIndex.TabIndex = 1; + CB_CourseIndex.SelectedIndexChanged += CB_CourseIndex_SelectedIndexChanged; + // + // TLP_CourseScore + // + TLP_CourseScore.AutoSize = true; + TLP_CourseScore.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + TLP_CourseScore.ColumnCount = 4; + TLP_CourseScore.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_CourseScore.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_CourseScore.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_CourseScore.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_CourseScore.Controls.Add(L_CourseScore0, 0, 0); + TLP_CourseScore.Controls.Add(NUD_CourseScore0, 1, 0); + TLP_CourseScore.Controls.Add(L_CourseScore1, 2, 0); + TLP_CourseScore.Controls.Add(NUD_CourseScore1, 3, 0); + TLP_CourseScore.Controls.Add(L_CourseScore2, 0, 1); + TLP_CourseScore.Controls.Add(NUD_CourseScore2, 1, 1); + TLP_CourseScore.Controls.Add(L_CourseScoreMax, 2, 1); + TLP_CourseScore.Controls.Add(NUD_CourseScoreMax, 3, 1); + TLP_CourseScore.Location = new System.Drawing.Point(128, 46); + TLP_CourseScore.Margin = new System.Windows.Forms.Padding(0, 12, 0, 0); + TLP_CourseScore.Name = "TLP_CourseScore"; + TLP_CourseScore.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_CourseScore.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_CourseScore.Size = new System.Drawing.Size(320, 52); + TLP_CourseScore.TabIndex = 2; + // + // L_CourseScore0 + // + L_CourseScore0.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_CourseScore0.AutoSize = true; + L_CourseScore0.Location = new System.Drawing.Point(0, 4); + L_CourseScore0.Margin = new System.Windows.Forms.Padding(0); + L_CourseScore0.Name = "L_CourseScore0"; + L_CourseScore0.Size = new System.Drawing.Size(51, 17); + L_CourseScore0.TabIndex = 0; + L_CourseScore0.Text = "Score0:"; + // + // NUD_CourseScore0 + // + NUD_CourseScore0.Location = new System.Drawing.Point(51, 0); + NUD_CourseScore0.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + NUD_CourseScore0.Maximum = new decimal(new int[] { 65535, 0, 0, 0 }); + NUD_CourseScore0.Name = "NUD_CourseScore0"; + NUD_CourseScore0.Size = new System.Drawing.Size(100, 25); + NUD_CourseScore0.TabIndex = 1; + // + // L_CourseScore1 + // + L_CourseScore1.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_CourseScore1.AutoSize = true; + L_CourseScore1.Location = new System.Drawing.Point(169, 4); + L_CourseScore1.Margin = new System.Windows.Forms.Padding(0); + L_CourseScore1.Name = "L_CourseScore1"; + L_CourseScore1.Size = new System.Drawing.Size(51, 17); + L_CourseScore1.TabIndex = 2; + L_CourseScore1.Text = "Score1:"; + // + // NUD_CourseScore1 + // + NUD_CourseScore1.Location = new System.Drawing.Point(220, 0); + NUD_CourseScore1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + NUD_CourseScore1.Maximum = new decimal(new int[] { 65535, 0, 0, 0 }); + NUD_CourseScore1.Name = "NUD_CourseScore1"; + NUD_CourseScore1.Size = new System.Drawing.Size(100, 25); + NUD_CourseScore1.TabIndex = 3; + // + // L_CourseScore2 + // + L_CourseScore2.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_CourseScore2.AutoSize = true; + L_CourseScore2.Location = new System.Drawing.Point(0, 30); + L_CourseScore2.Margin = new System.Windows.Forms.Padding(0); + L_CourseScore2.Name = "L_CourseScore2"; + L_CourseScore2.Size = new System.Drawing.Size(51, 17); + L_CourseScore2.TabIndex = 4; + L_CourseScore2.Text = "Score2:"; + // + // NUD_CourseScore2 + // + NUD_CourseScore2.Location = new System.Drawing.Point(51, 26); + NUD_CourseScore2.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + NUD_CourseScore2.Maximum = new decimal(new int[] { 65535, 0, 0, 0 }); + NUD_CourseScore2.Name = "NUD_CourseScore2"; + NUD_CourseScore2.Size = new System.Drawing.Size(100, 25); + NUD_CourseScore2.TabIndex = 5; + // + // L_CourseScoreMax + // + L_CourseScoreMax.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_CourseScoreMax.AutoSize = true; + L_CourseScoreMax.Location = new System.Drawing.Point(151, 30); + L_CourseScoreMax.Margin = new System.Windows.Forms.Padding(0); + L_CourseScoreMax.Name = "L_CourseScoreMax"; + L_CourseScoreMax.Size = new System.Drawing.Size(69, 17); + L_CourseScoreMax.TabIndex = 6; + L_CourseScoreMax.Text = "ScoreMax:"; + // + // NUD_CourseScoreMax + // + NUD_CourseScoreMax.Location = new System.Drawing.Point(220, 26); + NUD_CourseScoreMax.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); + NUD_CourseScoreMax.Maximum = new decimal(new int[] { 65535, 0, 0, 0 }); + NUD_CourseScoreMax.Name = "NUD_CourseScoreMax"; + NUD_CourseScoreMax.Size = new System.Drawing.Size(100, 25); + NUD_CourseScoreMax.TabIndex = 7; + // + // L_CourseParticipant0 + // + L_CourseParticipant0.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + L_CourseParticipant0.AutoSize = true; + TLP_Courses.SetColumnSpan(L_CourseParticipant0, 2); + L_CourseParticipant0.Location = new System.Drawing.Point(11, 98); + L_CourseParticipant0.Name = "L_CourseParticipant0"; + L_CourseParticipant0.Size = new System.Drawing.Size(83, 17); + L_CourseParticipant0.TabIndex = 3; + L_CourseParticipant0.Text = "Participant 1:"; + // + // UC_CourseParticipant0 + // + UC_CourseParticipant0.AutoSize = true; + TLP_Courses.SetColumnSpan(UC_CourseParticipant0, 2); + UC_CourseParticipant0.Dock = System.Windows.Forms.DockStyle.Fill; + UC_CourseParticipant0.Location = new System.Drawing.Point(8, 115); + UC_CourseParticipant0.Margin = new System.Windows.Forms.Padding(0, 0, 0, 6); + UC_CourseParticipant0.Name = "UC_CourseParticipant0"; + UC_CourseParticipant0.Size = new System.Drawing.Size(582, 65); + UC_CourseParticipant0.TabIndex = 4; + // + // L_CourseParticipant1 + // + L_CourseParticipant1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + L_CourseParticipant1.AutoSize = true; + TLP_Courses.SetColumnSpan(L_CourseParticipant1, 2); + L_CourseParticipant1.Location = new System.Drawing.Point(11, 186); + L_CourseParticipant1.Name = "L_CourseParticipant1"; + L_CourseParticipant1.Size = new System.Drawing.Size(83, 17); + L_CourseParticipant1.TabIndex = 5; + L_CourseParticipant1.Text = "Participant 2:"; + // + // UC_CourseParticipant1 + // + UC_CourseParticipant1.AutoSize = true; + TLP_Courses.SetColumnSpan(UC_CourseParticipant1, 2); + UC_CourseParticipant1.Dock = System.Windows.Forms.DockStyle.Fill; + UC_CourseParticipant1.Location = new System.Drawing.Point(8, 203); + UC_CourseParticipant1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 6); + UC_CourseParticipant1.Name = "UC_CourseParticipant1"; + UC_CourseParticipant1.Size = new System.Drawing.Size(582, 65); + UC_CourseParticipant1.TabIndex = 6; + // + // L_CourseParticipant2 + // + L_CourseParticipant2.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left; + L_CourseParticipant2.AutoSize = true; + TLP_Courses.SetColumnSpan(L_CourseParticipant2, 2); + L_CourseParticipant2.Location = new System.Drawing.Point(11, 274); + L_CourseParticipant2.Name = "L_CourseParticipant2"; + L_CourseParticipant2.Size = new System.Drawing.Size(83, 17); + L_CourseParticipant2.TabIndex = 7; + L_CourseParticipant2.Text = "Participant 3:"; + // + // UC_CourseParticipant2 + // + UC_CourseParticipant2.AutoSize = true; + TLP_Courses.SetColumnSpan(UC_CourseParticipant2, 2); + UC_CourseParticipant2.Dock = System.Windows.Forms.DockStyle.Fill; + UC_CourseParticipant2.Location = new System.Drawing.Point(8, 291); + UC_CourseParticipant2.Margin = new System.Windows.Forms.Padding(0); + UC_CourseParticipant2.Name = "UC_CourseParticipant2"; + UC_CourseParticipant2.Size = new System.Drawing.Size(582, 590); + UC_CourseParticipant2.TabIndex = 8; + // + // Tab_SelfEvent + // + Tab_SelfEvent.Controls.Add(TLP_SelfEvent); + Tab_SelfEvent.Location = new System.Drawing.Point(4, 26); + Tab_SelfEvent.Name = "Tab_SelfEvent"; + Tab_SelfEvent.Padding = new System.Windows.Forms.Padding(3); + Tab_SelfEvent.Size = new System.Drawing.Size(604, 895); + Tab_SelfEvent.TabIndex = 5; + Tab_SelfEvent.Text = "Self Event"; + Tab_SelfEvent.UseVisualStyleBackColor = true; + // + // TLP_SelfEvent + // + TLP_SelfEvent.AutoScroll = true; + TLP_SelfEvent.ColumnCount = 2; + TLP_SelfEvent.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_SelfEvent.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_SelfEvent.Controls.Add(L_SelfEventIndex, 0, 0); + TLP_SelfEvent.Controls.Add(CB_SelfEventIndex, 1, 0); + TLP_SelfEvent.Controls.Add(UC_SelfEventData, 0, 1); + TLP_SelfEvent.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_SelfEvent.Location = new System.Drawing.Point(3, 3); + TLP_SelfEvent.Name = "TLP_SelfEvent"; + TLP_SelfEvent.Padding = new System.Windows.Forms.Padding(8); + TLP_SelfEvent.RowCount = 2; + TLP_SelfEvent.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_SelfEvent.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_SelfEvent.Size = new System.Drawing.Size(598, 889); + TLP_SelfEvent.TabIndex = 0; + // + // L_SelfEventIndex + // + L_SelfEventIndex.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_SelfEventIndex.AutoSize = true; + L_SelfEventIndex.Location = new System.Drawing.Point(8, 12); + L_SelfEventIndex.Margin = new System.Windows.Forms.Padding(0); + L_SelfEventIndex.Name = "L_SelfEventIndex"; + L_SelfEventIndex.Size = new System.Drawing.Size(42, 17); + L_SelfEventIndex.TabIndex = 0; + L_SelfEventIndex.Text = "Index:"; + // + // CB_SelfEventIndex + // + CB_SelfEventIndex.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + CB_SelfEventIndex.FormattingEnabled = true; + CB_SelfEventIndex.Location = new System.Drawing.Point(53, 8); + CB_SelfEventIndex.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + CB_SelfEventIndex.Name = "CB_SelfEventIndex"; + CB_SelfEventIndex.Size = new System.Drawing.Size(121, 25); + CB_SelfEventIndex.TabIndex = 1; + CB_SelfEventIndex.SelectedIndexChanged += CB_SelfEventIndex_SelectedIndexChanged; + // + // UC_SelfEventData + // + UC_SelfEventData.AutoSize = true; + UC_SelfEventData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + TLP_SelfEvent.SetColumnSpan(UC_SelfEventData, 2); + UC_SelfEventData.Dock = System.Windows.Forms.DockStyle.Fill; + UC_SelfEventData.Location = new System.Drawing.Point(8, 41); + UC_SelfEventData.Margin = new System.Windows.Forms.Padding(0, 8, 0, 0); + UC_SelfEventData.Name = "UC_SelfEventData"; + UC_SelfEventData.Size = new System.Drawing.Size(582, 840); + UC_SelfEventData.TabIndex = 2; + // + // Tab_Connection + // + Tab_Connection.Controls.Add(TLP_Connection); + Tab_Connection.Location = new System.Drawing.Point(4, 26); + Tab_Connection.Name = "Tab_Connection"; + Tab_Connection.Padding = new System.Windows.Forms.Padding(3); + Tab_Connection.Size = new System.Drawing.Size(604, 895); + Tab_Connection.TabIndex = 6; + Tab_Connection.Text = "Connection"; + Tab_Connection.UseVisualStyleBackColor = true; + // + // TLP_Connection + // + TLP_Connection.AutoScroll = true; + TLP_Connection.ColumnCount = 2; + TLP_Connection.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + TLP_Connection.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Connection.Controls.Add(L_ConnectionIndex, 0, 0); + TLP_Connection.Controls.Add(CB_ConnectionIndex, 1, 0); + TLP_Connection.Controls.Add(UC_Connection, 0, 1); + TLP_Connection.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Connection.Location = new System.Drawing.Point(3, 3); + TLP_Connection.Name = "TLP_Connection"; + TLP_Connection.Padding = new System.Windows.Forms.Padding(8); + TLP_Connection.RowCount = 2; + TLP_Connection.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Connection.RowStyles.Add(new System.Windows.Forms.RowStyle()); + TLP_Connection.Size = new System.Drawing.Size(598, 889); + TLP_Connection.TabIndex = 0; + // + // L_ConnectionIndex + // + L_ConnectionIndex.Anchor = System.Windows.Forms.AnchorStyles.Right; + L_ConnectionIndex.AutoSize = true; + L_ConnectionIndex.Location = new System.Drawing.Point(8, 12); + L_ConnectionIndex.Margin = new System.Windows.Forms.Padding(0); + L_ConnectionIndex.Name = "L_ConnectionIndex"; + L_ConnectionIndex.Size = new System.Drawing.Size(42, 17); + L_ConnectionIndex.TabIndex = 0; + L_ConnectionIndex.Text = "Index:"; + // + // CB_ConnectionIndex + // + CB_ConnectionIndex.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + CB_ConnectionIndex.FormattingEnabled = true; + CB_ConnectionIndex.Location = new System.Drawing.Point(53, 8); + CB_ConnectionIndex.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + CB_ConnectionIndex.Name = "CB_ConnectionIndex"; + CB_ConnectionIndex.Size = new System.Drawing.Size(121, 25); + CB_ConnectionIndex.TabIndex = 1; + CB_ConnectionIndex.SelectedIndexChanged += CB_ConnectionIndex_SelectedIndexChanged; + // + // UC_Connection + // + UC_Connection.AutoSize = true; + TLP_Connection.SetColumnSpan(UC_Connection, 2); + UC_Connection.Dock = System.Windows.Forms.DockStyle.Fill; + UC_Connection.Location = new System.Drawing.Point(8, 41); + UC_Connection.Margin = new System.Windows.Forms.Padding(0, 8, 0, 0); + UC_Connection.Name = "UC_Connection"; + UC_Connection.Size = new System.Drawing.Size(582, 840); + UC_Connection.TabIndex = 2; + // + // FLP_Buttons + // + FLP_Buttons.AutoSize = true; + FLP_Buttons.Controls.Add(B_Save); + FLP_Buttons.Controls.Add(B_Cancel); + FLP_Buttons.Dock = System.Windows.Forms.DockStyle.Bottom; + FLP_Buttons.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; + FLP_Buttons.Location = new System.Drawing.Point(0, 924); + FLP_Buttons.Name = "FLP_Buttons"; + FLP_Buttons.Padding = new System.Windows.Forms.Padding(8); + FLP_Buttons.Size = new System.Drawing.Size(612, 49); + FLP_Buttons.TabIndex = 1; + // + // B_Cancel + // + B_Cancel.AutoSize = true; + B_Cancel.Location = new System.Drawing.Point(427, 11); + B_Cancel.Name = "B_Cancel"; + B_Cancel.Size = new System.Drawing.Size(80, 27); + B_Cancel.TabIndex = 0; + B_Cancel.Text = "Cancel"; + B_Cancel.UseVisualStyleBackColor = true; + B_Cancel.Click += B_Cancel_Click; + // + // B_Save + // + B_Save.AutoSize = true; + B_Save.Location = new System.Drawing.Point(513, 11); + B_Save.Name = "B_Save"; + B_Save.Size = new System.Drawing.Size(80, 27); + B_Save.TabIndex = 1; + B_Save.Text = "Save"; + B_Save.UseVisualStyleBackColor = true; + B_Save.Click += B_Save_Click; + // + // TLP_Medals + // + TLP_Medals.ColumnCount = 1; + TLP_Medals.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Medals.Controls.Add(DGV_Medals, 0, 0); + TLP_Medals.Controls.Add(FLP_Medals, 0, 1); + TLP_Medals.Dock = System.Windows.Forms.DockStyle.Fill; + TLP_Medals.Location = new System.Drawing.Point(3, 3); + TLP_Medals.Name = "TLP_Medals"; + TLP_Medals.RowCount = 2; + TLP_Medals.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + TLP_Medals.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 48F)); + TLP_Medals.Size = new System.Drawing.Size(598, 889); + TLP_Medals.TabIndex = 2; + // + // SAV_Pokeathlon4 + // + AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + ClientSize = new System.Drawing.Size(612, 973); + Controls.Add(TC_Editor); + Controls.Add(FLP_Buttons); + Icon = Properties.Resources.Icon; + MaximizeBox = false; + MinimizeBox = false; + Name = "SAV_Pokeathlon4"; + StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + Text = "Pokéathlon"; + TC_Editor.ResumeLayout(false); + Tab_General.ResumeLayout(false); + TLP_General.ResumeLayout(false); + TLP_General.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_Points).EndInit(); + FLP_DailyShopFlags.ResumeLayout(false); + FLP_DailyShopFlags.PerformLayout(); + Tab_Medals.ResumeLayout(false); + FLP_Medals.ResumeLayout(false); + FLP_Medals.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)DGV_Medals).EndInit(); + Tab_Counters.ResumeLayout(false); + Tab_Best.ResumeLayout(false); + Tab_Courses.ResumeLayout(false); + Tab_Courses.PerformLayout(); + TLP_Courses.ResumeLayout(false); + TLP_Courses.PerformLayout(); + TLP_CourseScore.ResumeLayout(false); + TLP_CourseScore.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore0).EndInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore1).EndInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScore2).EndInit(); + ((System.ComponentModel.ISupportInitialize)NUD_CourseScoreMax).EndInit(); + Tab_SelfEvent.ResumeLayout(false); + TLP_SelfEvent.ResumeLayout(false); + TLP_SelfEvent.PerformLayout(); + Tab_Connection.ResumeLayout(false); + TLP_Connection.ResumeLayout(false); + TLP_Connection.PerformLayout(); + FLP_Buttons.ResumeLayout(false); + FLP_Buttons.PerformLayout(); + TLP_Medals.ResumeLayout(false); + TLP_Medals.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private System.Windows.Forms.TabControl TC_Editor; + private System.Windows.Forms.TabPage Tab_General; + private System.Windows.Forms.TabPage Tab_Medals; + private System.Windows.Forms.TabPage Tab_Counters; + private System.Windows.Forms.TabPage Tab_Best; + private System.Windows.Forms.TabPage Tab_Courses; + private System.Windows.Forms.TabPage Tab_SelfEvent; + private System.Windows.Forms.TabPage Tab_Connection; + private System.Windows.Forms.FlowLayoutPanel FLP_Buttons; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.TableLayoutPanel TLP_General; + private System.Windows.Forms.Label L_Points; + private System.Windows.Forms.NumericUpDown NUD_Points; + private System.Windows.Forms.Label L_DailyShopFlags; + private System.Windows.Forms.FlowLayoutPanel FLP_DailyShopFlags; + private System.Windows.Forms.CheckBox CHK_DailyShop0; + private System.Windows.Forms.CheckBox CHK_DailyShop1; + private System.Windows.Forms.CheckBox CHK_DailyShop2; + private System.Windows.Forms.CheckBox CHK_DailyShop3; + private System.Windows.Forms.CheckBox CHK_DailyShop4; + private System.Windows.Forms.CheckBox CHK_DailyShop5; + private System.Windows.Forms.CheckBox CHK_DailyShop6; + private System.Windows.Forms.CheckBox CHK_DailyShop7; + private System.Windows.Forms.CheckBox CHK_DailyShop8; + private System.Windows.Forms.CheckBox CHK_DailyShop9; + private System.Windows.Forms.CheckBox CHK_DailyShop10; + private System.Windows.Forms.CheckBox CHK_DailyShop11; + private System.Windows.Forms.Label L_DataCards; + private System.Windows.Forms.CheckedListBox CLB_DataCards; + private System.Windows.Forms.FlowLayoutPanel FLP_Medals; + private System.Windows.Forms.Button B_MedalsGiveAll; + private System.Windows.Forms.Button B_MedalsClearAll; + private DoubleBufferedDataGridView DGV_Medals; + private System.Windows.Forms.TableLayoutPanel TLP_Counters; + private System.Windows.Forms.TableLayoutPanel TLP_Best; + private System.Windows.Forms.TableLayoutPanel TLP_Courses; + private System.Windows.Forms.Label L_CourseIndex; + private System.Windows.Forms.ComboBox CB_CourseIndex; + private System.Windows.Forms.TableLayoutPanel TLP_CourseScore; + private System.Windows.Forms.Label L_CourseScore0; + private System.Windows.Forms.NumericUpDown NUD_CourseScore0; + private System.Windows.Forms.Label L_CourseScore1; + private System.Windows.Forms.NumericUpDown NUD_CourseScore1; + private System.Windows.Forms.Label L_CourseScore2; + private System.Windows.Forms.NumericUpDown NUD_CourseScore2; + private System.Windows.Forms.Label L_CourseScoreMax; + private System.Windows.Forms.NumericUpDown NUD_CourseScoreMax; + private System.Windows.Forms.Label L_CourseParticipant0; + private PokeathlonParticipant4Editor UC_CourseParticipant0; + private System.Windows.Forms.Label L_CourseParticipant1; + private PokeathlonParticipant4Editor UC_CourseParticipant1; + private System.Windows.Forms.Label L_CourseParticipant2; + private PokeathlonParticipant4Editor UC_CourseParticipant2; + private System.Windows.Forms.TableLayoutPanel TLP_SelfEvent; + private System.Windows.Forms.Label L_SelfEventIndex; + private System.Windows.Forms.ComboBox CB_SelfEventIndex; + private PokeathlonEventData4Editor UC_SelfEventData; + private System.Windows.Forms.TableLayoutPanel TLP_Connection; + private System.Windows.Forms.Label L_ConnectionIndex; + private System.Windows.Forms.ComboBox CB_ConnectionIndex; + private PokeathlonConnection4Editor UC_Connection; + private System.Windows.Forms.TableLayoutPanel TLP_Medals; + } +} diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.cs new file mode 100644 index 000000000..1e49dce94 --- /dev/null +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokeathlon4.cs @@ -0,0 +1,462 @@ +using PKHeX.Core; +using PKHeX.Drawing.PokeSprite; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +namespace PKHeX.WinForms; + +public sealed partial class SAV_Pokeathlon4 : Form +{ + private const int MaxSpeciesGen4 = 493; + + private readonly SAV4HGSS Origin; + private readonly SAV4HGSS SAV; + private readonly Pokeathlon4 Pokeathlon; + private readonly CheckBox[] DailyShopEditors; + private readonly NumericUpDown[] CourseScoreEditors; + private readonly PokeathlonParticipant4Editor[] CourseParticipantEditors; + private readonly List CounterEditors = []; + private readonly List<(PokeathlonEvent4 Event, NumericUpDown Editor)> BestScoreEditors = []; + private readonly Button B_BestSpacer = new(); + + private bool IsLoading; + private int CurrentCourseIndex = -1; + private int CurrentSelfEventIndex = -1; + private int CurrentConnectionIndex = -1; + + private static string Localize(T value) where T : Enum => WinFormsTranslator.TranslateEnum(value, Main.CurrentLanguage); + private static string GetCourseDisplayName(PokeathlonStat4 stat) => $"{(int)stat + 1} - {Localize(stat)}"; + private static string GetEventDisplayName(PokeathlonEvent4 value) => $"{(int)value + 1} - {Localize(value)}"; + + public SAV_Pokeathlon4(SAV4HGSS sav) + { + InitializeComponent(); + +#if DEBUG // Translation Rip + // ReSharper disable once NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract + // ReSharper disable once ArrangeObjectCreationWhenTypeNotEvident + sav ??= new(); +#endif + + Origin = sav; + SAV = (SAV4HGSS)sav.Clone(); + Pokeathlon = SAV.Pokeathlon; + + DailyShopEditors = + [ + CHK_DailyShop0, CHK_DailyShop1, CHK_DailyShop2, CHK_DailyShop3, CHK_DailyShop4, CHK_DailyShop5, + CHK_DailyShop6, CHK_DailyShop7, CHK_DailyShop8, CHK_DailyShop9, CHK_DailyShop10, CHK_DailyShop11, + ]; + CourseScoreEditors = [NUD_CourseScore0, NUD_CourseScore1, NUD_CourseScore2, NUD_CourseScoreMax]; + CourseParticipantEditors = [UC_CourseParticipant0, UC_CourseParticipant1, UC_CourseParticipant2]; + + InitializeGeneral(); + InitializeMedals(); + InitializeCounters(); + InitializeBestScores(); + InitializeIndexes(); + + WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage); + + LoadData(); + } + + private void B_Save_Click(object sender, EventArgs e) + { + SaveCurrentViews(); + SaveGeneral(); + SaveMedals(); + SaveCounters(); + SaveBestScores(); + Origin.CopyChangesFrom(SAV); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) => Close(); + + private void CB_CourseIndex_SelectedIndexChanged(object sender, EventArgs e) + { + if (IsLoading) + return; + + var index = WinFormsUtil.GetIndex(CB_CourseIndex); + if (CurrentCourseIndex >= 0) + SaveCourse(CurrentCourseIndex); + LoadCourse(index); + } + + private void CB_SelfEventIndex_SelectedIndexChanged(object sender, EventArgs e) + { + if (IsLoading) + return; + + var index = WinFormsUtil.GetIndex(CB_SelfEventIndex); + if (CurrentSelfEventIndex >= 0) + SaveSelfEvent(CurrentSelfEventIndex); + LoadSelfEvent(index); + } + + private void CB_ConnectionIndex_SelectedIndexChanged(object sender, EventArgs e) + { + if (IsLoading) + return; + + var index = WinFormsUtil.GetIndex(CB_ConnectionIndex); + if (CurrentConnectionIndex >= 0) + SaveConnection(index: CurrentConnectionIndex); + LoadConnection(index); + } + + private void InitializeGeneral() + { + var items = GameInfo.Strings.GetItemStrings(EntityContext.Gen4); + CLB_DataCards.Items.Clear(); + for (int i = 0; i < (int)DataCard4.Count; i++) + { + var itemID = 505 + i; // Data Card 01... + var name = items[itemID]; + CLB_DataCards.Items.Add($"[{i}] {name}"); + } + } + + private void InitializeMedals() + { + DGV_Medals.Columns.Clear(); + DGV_Medals.Rows.Clear(); + DGV_Medals.AllowUserToAddRows = false; + DGV_Medals.AllowUserToDeleteRows = false; + DGV_Medals.AllowUserToResizeRows = false; + DGV_Medals.MultiSelect = false; + DGV_Medals.RowHeadersVisible = false; + DGV_Medals.RowTemplate.Height = 40; + + DGV_Medals.Columns.Add(new DataGridViewTextBoxColumn + { + Name = "Species", + HeaderText = "Species", + Width = 80, + ReadOnly = true, + DefaultCellStyle = { Alignment = DataGridViewContentAlignment.MiddleCenter }, + }); + DGV_Medals.Columns.Add(new DataGridViewImageColumn + { + Name = "Sprite", + HeaderText = "Sprite", + Width = 48, + ReadOnly = true, + ImageLayout = DataGridViewImageCellLayout.Zoom, + }); + + foreach (var name in Enum.GetNames().Take((int)PokeathlonStat4.Count)) + { + DGV_Medals.Columns.Add(new DataGridViewCheckBoxColumn + { + Name = name, + HeaderText = name, + Width = 80, + SortMode = DataGridViewColumnSortMode.Automatic, + }); + } + + DGV_Medals.Rows.Add(MaxSpeciesGen4); + for (int species = 1; species <= MaxSpeciesGen4; species++) + { + var row = DGV_Medals.Rows[species - 1]; + row.Cells[0].Value = species; + row.Cells[1].Value = SpriteUtil.GetSprite((ushort)species, 0, 0, 0, 0, false, Shiny.Never, EntityContext.Gen4); + row.Tag = (ushort)species; + row.Cells[0].ToolTipText = GameInfo.Strings.specieslist[species]; + row.Cells[1].ToolTipText = GameInfo.Strings.specieslist[species]; + } + } + + private void InitializeCounters() + { + AddCounterRow("TimeSpent", PokeathlonGlobalCounters4.MaxPlay, () => Pokeathlon.GlobalCounters.TimeSpent, value => { var c = Pokeathlon.GlobalCounters; c.TimeSpent = value; }); + AddCounterRow("SessionsJoined", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.SessionsJoined, value => { var c = Pokeathlon.GlobalCounters; c.SessionsJoined = value; }); + AddCounterRow("PlacedFirst", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.PlacedFirst, value => { var c = Pokeathlon.GlobalCounters; c.PlacedFirst = value; }); + AddCounterRow("PlacedLast", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.PlacedLast, value => { var c = Pokeathlon.GlobalCounters; c.PlacedLast = value; }); + AddCounterRow("BonusesEarned", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.BonusesEarned, value => { var c = Pokeathlon.GlobalCounters; c.BonusesEarned = value; }); + AddCounterRow("Instructions", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Instructions, value => { var c = Pokeathlon.GlobalCounters; c.Instructions = value; }); + AddCounterRow("Failed", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Failed, value => { var c = Pokeathlon.GlobalCounters; c.Failed = value; }); + AddCounterRow("Jumped", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Jumped, value => { var c = Pokeathlon.GlobalCounters; c.Jumped = value; }); + AddCounterRow("Acquired", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Acquired, value => { var c = Pokeathlon.GlobalCounters; c.Acquired = value; }); + AddCounterRow("Tackled", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Tackled, value => { var c = Pokeathlon.GlobalCounters; c.Tackled = value; }); + AddCounterRow("FellDown", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.FellDown, value => { var c = Pokeathlon.GlobalCounters; c.FellDown = value; }); + AddCounterRow("Dashed", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Dashed, value => { var c = Pokeathlon.GlobalCounters; c.Dashed = value; }); + AddCounterRow("Switched", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.Switched, value => { var c = Pokeathlon.GlobalCounters; c.Switched = value; }); + AddCounterRow("SelfImpeded", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.SelfImpeded, value => { var c = Pokeathlon.GlobalCounters; c.SelfImpeded = value; }); + AddCounterRow("ConnectionJoined", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.ConnectionJoined, value => { var c = Pokeathlon.GlobalCounters; c.ConnectionJoined = value; }); + AddCounterRow("ConnectionFirst", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.ConnectionFirst, value => { var c = Pokeathlon.GlobalCounters; c.ConnectionFirst = value; }); + AddCounterRow("ConnectionLast", PokeathlonGlobalCounters4.MaxStat, () => Pokeathlon.GlobalCounters.ConnectionLast, value => { var c = Pokeathlon.GlobalCounters; c.ConnectionLast = value; }); + + for (int i = 0; i < (int)PokeathlonEvent4.Count; i++) + { + var eventIndex = (PokeathlonEvent4)i; + AddCounterRow($"{Localize(eventIndex)}First", PokeathlonGlobalCounters4.MaxStat, + () => { var c = Pokeathlon.GlobalCounters; return c[eventIndex]; }, + value => { var c = Pokeathlon.GlobalCounters; c[eventIndex] = value; }); + } + + AddCounterRow("TotalEventFirst", PokeathlonGlobalCounters4.MaxStat * (decimal)PokeathlonEvent4.Count, + () => { var c = Pokeathlon.GlobalCounters; return c.TotalEventFirst; }, null); + AddCounterRow("TotalEventLast", PokeathlonGlobalCounters4.MaxStat, + () => Pokeathlon.GlobalCounters.TotalEventLast, + value => { var c = Pokeathlon.GlobalCounters; c.TotalEventLast = value; }); + AddCounterRow("Fame", PokeathlonGlobalCounters4.MaxFame, + () => Pokeathlon.GlobalCounters.Fame, + value => { var c = Pokeathlon.GlobalCounters; c.Fame = value; }); + } + + private void InitializeBestScores() + { + for (int i = 0; i < (int)PokeathlonEvent4.Count; i++) + { + var label = new Label + { + Anchor = AnchorStyles.Right, + AutoSize = true, + Text = GetEventDisplayName((PokeathlonEvent4)i) + ':', + }; + var editor = CreateNumericEditor(ushort.MaxValue); + TLP_Best.RowStyles.Add(new RowStyle()); + TLP_Best.Controls.Add(label, 0, i); + TLP_Best.Controls.Add(editor, 1, i); + BestScoreEditors.Add(((PokeathlonEvent4)i, editor)); + } + + int spacerRow = BestScoreEditors.Count; + TLP_Best.RowStyles.Add(new RowStyle()); + B_BestSpacer.Enabled = false; + B_BestSpacer.TabStop = false; + B_BestSpacer.Margin = Padding.Empty; + B_BestSpacer.Size = new Size(120, 1); + TLP_Best.Controls.Add(B_BestSpacer, 1, spacerRow); + } + + private void InitializeIndexes() + { + InitializeCombo(CB_CourseIndex, [.. Enum.GetValues().Take((int)PokeathlonStat4.Count).Select(z => new ComboItem(GetCourseDisplayName(z), (int)z))]); + List events = [.. Enum.GetValues().Take((int)PokeathlonEvent4.Count).Select(z => new ComboItem(GetEventDisplayName(z), (int)z))]; + InitializeCombo(CB_SelfEventIndex, events); + InitializeCombo(CB_ConnectionIndex, events); + } + + private void LoadData() + { + IsLoading = true; + LoadGeneral(); + LoadMedals(); + LoadCounters(); + LoadBestScores(); + CB_CourseIndex.SelectedValue = 0; + CB_SelfEventIndex.SelectedValue = 0; + CB_ConnectionIndex.SelectedValue = 0; + IsLoading = false; + + LoadCourse(0); + LoadSelfEvent(0); + LoadConnection(0); + } + + private void LoadGeneral() + { + NUD_Points.SetValueClamped(Pokeathlon.Points); + + var dailyFlags = Pokeathlon.FlagsDailyShop; + for (int i = 0; i < DailyShopEditors.Length; i++) + DailyShopEditors[i].Checked = ((dailyFlags >> i) & 1) != 0; + + var dataCardFlags = Pokeathlon.FlagsDataCard; + for (int i = 0; i < CLB_DataCards.Items.Count; i++) + CLB_DataCards.SetItemChecked(i, ((dataCardFlags >> i) & 1) != 0); + } + + private void SaveGeneral() + { + Pokeathlon.Points = (uint)NUD_Points.Value; + + ushort dailyFlags = 0; + for (int i = 0; i < DailyShopEditors.Length; i++) + { + if (DailyShopEditors[i].Checked) + dailyFlags |= (ushort)(1 << i); + } + Pokeathlon.FlagsDailyShop = dailyFlags; + + uint dataCardFlags = 0; + for (int i = 0; i < CLB_DataCards.Items.Count; i++) + { + if (CLB_DataCards.GetItemChecked(i)) + dataCardFlags |= 1u << i; + } + Pokeathlon.FlagsDataCard = dataCardFlags; + } + + private void LoadMedals() + { + var medals = Pokeathlon.Medals; + for (int species = 1; species <= MaxSpeciesGen4; species++) + { + var bits = medals.GetMedal((ushort)species); + var row = DGV_Medals.Rows[species - 1]; + for (int i = 0; i < (int)PokeathlonStat4.Count; i++) + row.Cells[2 + i].Value = ((bits >> i) & 1) != 0; + } + } + + private void SaveMedals() + { + var medals = Pokeathlon.Medals; + for (int species = 1; species <= MaxSpeciesGen4; species++) + { + byte bits = 0; + var row = DGV_Medals.Rows[species - 1]; + for (int i = 0; i < (int)PokeathlonStat4.Count; i++) + { + if ((bool?)row.Cells[2 + i].Value == true) + bits |= (byte)(1 << i); + } + medals.SetMedal((ushort)species, bits); + } + } + + private void LoadCounters() + { + foreach (var binding in CounterEditors) + binding.Editor.SetValueClamped(binding.Getter()); + } + + private void SaveCounters() + { + foreach (var binding in CounterEditors) + { + if (binding.Setter is not null) + binding.Setter((uint)binding.Editor.Value); + } + } + + private void LoadBestScores() + { + foreach (var binding in BestScoreEditors) + binding.Editor.SetValueClamped(Pokeathlon.GetBestScore(binding.Event)); + } + + private void SaveBestScores() + { + foreach (var binding in BestScoreEditors) + Pokeathlon.SetBestScore(binding.Event, (ushort)binding.Editor.Value); + } + + private void LoadCourse(int index) + { + IsLoading = true; + var course = Pokeathlon.GetCourseRecord((PokeathlonStat4)index); + CourseScoreEditors[0].SetValueClamped(course.Score0); + CourseScoreEditors[1].SetValueClamped(course.Score1); + CourseScoreEditors[2].SetValueClamped(course.Score2); + CourseScoreEditors[3].SetValueClamped(course.ScoreMax); + for (int i = 0; i < CourseParticipantEditors.Length; i++) + CourseParticipantEditors[i].LoadObject(course.GetParticipant(i)); + CurrentCourseIndex = index; + IsLoading = false; + } + + private void SaveCourse(int index) + { + var course = Pokeathlon.GetCourseRecord((PokeathlonStat4)index); + course.Score0 = (ushort)CourseScoreEditors[0].Value; + course.Score1 = (ushort)CourseScoreEditors[1].Value; + course.Score2 = (ushort)CourseScoreEditors[2].Value; + course.ScoreMax = (ushort)CourseScoreEditors[3].Value; + for (int i = 0; i < CourseParticipantEditors.Length; i++) + CourseParticipantEditors[i].SaveObject(course.GetParticipant(i)); + } + + private void LoadSelfEvent(int index) + { + IsLoading = true; + UC_SelfEventData.LoadObject(Pokeathlon.GetEventSelf((PokeathlonEvent4)index)); + CurrentSelfEventIndex = index; + IsLoading = false; + } + + private void SaveSelfEvent(int index) + { + UC_SelfEventData.SaveObject(Pokeathlon.GetEventSelf((PokeathlonEvent4)index)); + } + + private void LoadConnection(int index) + { + IsLoading = true; + UC_Connection.LoadObject(Pokeathlon.GetEventConnection((PokeathlonEvent4)index)); + CurrentConnectionIndex = index; + IsLoading = false; + } + + private void SaveConnection(int index) + { + UC_Connection.SaveObject(Pokeathlon.GetEventConnection((PokeathlonEvent4)index)); + } + + private void SaveCurrentViews() + { + if (CurrentCourseIndex >= 0) + SaveCourse(CurrentCourseIndex); + if (CurrentSelfEventIndex >= 0) + SaveSelfEvent(CurrentSelfEventIndex); + if (CurrentConnectionIndex >= 0) + SaveConnection(CurrentConnectionIndex); + } + + private void AddCounterRow(string name, decimal maximum, Func getter, Action? setter) + { + int row = CounterEditors.Count; + TLP_Counters.RowStyles.Add(new RowStyle()); + var label = new Label + { + Name = $"L_{name}", + Anchor = AnchorStyles.Right, + AutoSize = true, + Text = name, + }; + var editor = CreateNumericEditor(maximum, setter is not null); + TLP_Counters.Controls.Add(label, 0, row); + TLP_Counters.Controls.Add(editor, 1, row); + CounterEditors.Add(new CounterBinding(name, editor, getter, setter)); + } + + private static NumericUpDown CreateNumericEditor(decimal maximum, bool enabled = true) => new() + { + Maximum = maximum, + Size = new Size(120, 25), + Enabled = enabled, + }; + + private static void InitializeCombo(ComboBox cb, IReadOnlyList source) + { + cb.InitializeBinding(); + cb.DataSource = new BindingSource(source, string.Empty); + } + + private void B_MedalsGiveAll_Click(object? sender, EventArgs e) + { + var medals = Pokeathlon.Medals; + medals.SetAllMedals(); + LoadMedals(); + WinFormsUtil.Asterisk(); + } + + private void B_MedalsClearAll_Click(object? sender, EventArgs e) + { + var medals = Pokeathlon.Medals; + medals.Clear(); + LoadMedals(); + WinFormsUtil.Asterisk(); + } + + private sealed record CounterBinding(string Name, NumericUpDown Editor, Func Getter, Action? Setter); +} diff --git a/PKHeX.WinForms/Util/DevUtil.cs b/PKHeX.WinForms/Util/DevUtil.cs index 7dd7dc337..97a211da0 100644 --- a/PKHeX.WinForms/Util/DevUtil.cs +++ b/PKHeX.WinForms/Util/DevUtil.cs @@ -179,6 +179,8 @@ private static void UpdateTranslations() typeof(PokeSize), typeof(PokeSizeDetailed), + typeof(PokeathlonStat4), + typeof(PokeathlonEvent4), typeof(PassPower5), typeof(Funfest5Mission), typeof(JoinAvenueCeilingColor5),