From 6520377758423b5d3e03eef198779449a8420e97 Mon Sep 17 00:00:00 2001 From: JappaWakka Date: Sat, 15 Jul 2023 16:12:17 +0200 Subject: [PATCH] DexForm progress --- P3D/Content/Pokemon/Data/863.dat | 1 + P3D/Player/Pokedex.vb | 8 +++++--- P3D/Screens/Pokedex/PokedexScreen.vb | 28 +++++++++++++++++----------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/P3D/Content/Pokemon/Data/863.dat b/P3D/Content/Pokemon/Data/863.dat index dce79f59e..c7a050027 100644 --- a/P3D/Content/Pokemon/Data/863.dat +++ b/P3D/Content/Pokemon/Data/863.dat @@ -51,3 +51,4 @@ Move|42,163 Move|48,319 Move|54,37 TradeValue|25 +DexForms|53 diff --git a/P3D/Player/Pokedex.vb b/P3D/Player/Pokedex.vb index 5ec760a63..f1e827dc6 100644 --- a/P3D/Player/Pokedex.vb +++ b/P3D/Player/Pokedex.vb @@ -155,6 +155,7 @@ IDs.Add(id) Next + Dim formIDs As New List(Of String) For Each id As String In IDs If id.Contains("_") = False Then Dim baseID As String = id.GetSplit(0, "_") @@ -164,15 +165,16 @@ Dim AdditionalDataForms As List(Of String) = PokemonForms.GetAdditionalDataForms(CInt(baseID)) If AdditionalDataForms IsNot Nothing Then - For i = 0 To AdditionalDataForms.Count - IDs.Add(id & ";" & AdditionalDataForms(i)) + For i = 0 To AdditionalDataForms.Count - 1 + formIDs.Add(baseID & ";" & AdditionalDataForms(i)) Next End If End If Next + IDs.AddRange(formIDs) PokemonCount = IDs.Count - PokemonIDs = (From id In IDs Order By CInt(id.GetSplit(0, "_"))).ToList() + PokemonIDs = (From id In IDs Order By CInt(id.GetSplit(0, "_").GetSplit(0, ";"))).ToList() For i = 0 To PokemonCount - 1 Dim entry As String = PokemonIDs(i) diff --git a/P3D/Screens/Pokedex/PokedexScreen.vb b/P3D/Screens/Pokedex/PokedexScreen.vb index ebba442a0..513a7a80e 100644 --- a/P3D/Screens/Pokedex/PokedexScreen.vb +++ b/P3D/Screens/Pokedex/PokedexScreen.vb @@ -1340,12 +1340,21 @@ Public Class PokedexViewScreen If Me.Pokemon.DexForms.Count > 0 Then For Each form As String In Me.Pokemon.DexForms - Dim formAD As String = "" + Dim formID As String = Me.Pokemon.Number.ToString If form <> " " Then + If StringHelper.IsNumeric(form) = False Then + formID &= "_" & form + Else + formID = form + End If + End If + + Dim formAD As String = "" + If form <> " " AndAlso StringHelper.IsNumeric(form) = False Then formAD = PokemonForms.GetAdditionalValueFromDataFile(Me.PokemonID.GetSplit(0, "_") & "_" & form) End If - Dim formpokemon As Pokemon = Pokemon.GetPokemonByID(CInt(Me.PokemonID.GetSplit(0, "_")), formAD) + Dim formpokemon As Pokemon = Pokemon.GetPokemonByID(CInt(Me.PokemonID.GetSplit(0, "_")), formAD, True) If formpokemon.EvolutionConditions.Count > 0 Then Dim evolutions As New List(Of String) For Each ev As EvolutionCondition In formpokemon.EvolutionConditions @@ -1365,10 +1374,7 @@ Public Class PokedexViewScreen If vS.maximumLevel < Me.Level + 1 Then vS.maximumLevel = Me.Level + 1 End If - Dim formID As String = Me.Pokemon.Number.ToString - If form <> " " Then - formID &= "_" & form - End If + Me.Forms.Add(New EvolutionLinePokemon(Me.Level + 1, formID, vS, "")) @@ -1707,9 +1713,11 @@ Public Class PokedexViewScreen Else Dim connections As New List(Of String) Dim levels As New Dictionary(Of Integer, Integer) + Dim levelsOffset As New Dictionary(Of Integer, Integer) For i = minimumLevel To maximumLevel levels.Add(i, 0) + levelsOffset.Add(i, 0) Next For i = 0 To EvolutionLines.Count - 1 @@ -1730,11 +1738,8 @@ Public Class PokedexViewScreen connections.Add("-2_-1|" & EvolutionLines(i).Devolution.Devolution.PokemonID.ToString() & "-" & EvolutionLines(i).Devolution.PokemonID.ToString()) levels(-2) += 1 End If - Else - If i > 0 AndAlso levels(1) = i + 1 Then - levels(0) += 1 - levels(1) -= 2 - End If + ElseIf EvolutionLines(i).Evolutions.Count > 0 Then + levels(0) += 1 End If For Each evolution As EvolutionLinePokemon In EvolutionLines(i).Evolutions @@ -1749,6 +1754,7 @@ Public Class PokedexViewScreen connections.Add("0_0|" & EvolutionLines(i).PokemonID.ToString() & "-" & EvolutionLines(i).PokemonID.ToString()) levels(0) += 1 End If + Next Dim levelDraws As New Dictionary(Of Integer, Integer)