Fix transformed pkmn level up wrong stats & icon

This commit is contained in:
JappaWakka 2024-07-29 10:35:05 +02:00
parent a0bcce2809
commit 97387050c7
3 changed files with 31 additions and 8 deletions

View File

@ -8355,7 +8355,12 @@
For e = 1 To EXP
Dim oldStats() As Integer
With Core.Player.Pokemons(PokeIndex)
oldStats = { .MaxHP, .Attack, .Defense, .SpAttack, .SpDefense, .Speed}
If .IsTransformed = False Then
oldStats = { .MaxHP, .OriginalStats(0), .OriginalStats(1), .OriginalStats(2), .OriginalStats(3), .OriginalStats(4)}
Else
oldStats = { .MaxHP, .Attack, .Defense, .SpAttack, .SpDefense, .Speed}
End If
End With
Core.Player.Pokemons(PokeIndex).GetExperience(1, False)

View File

@ -2409,16 +2409,31 @@ Public Class Pokemon
''' </summary>
'''
Public Sub CalculateStatsBarSpeed()
Me.MaxHP = CalcStatus(Me.Level, True, Me.BaseHP, Me.EVHP, Me.IVHP, "HP")
Me.Attack = CalcStatus(Me.Level, False, Me.BaseAttack, Me.EVAttack, Me.IVAttack, "Attack")
Me.Defense = CalcStatus(Me.Level, False, Me.BaseDefense, Me.EVDefense, Me.IVDefense, "Defense")
Me.SpAttack = CalcStatus(Me.Level, False, Me.BaseSpAttack, Me.EVSpAttack, Me.IVSpAttack, "SpAttack")
Me.SpDefense = CalcStatus(Me.Level, False, Me.BaseSpDefense, Me.EVSpDefense, Me.IVSpDefense, "SpDefense")
If IsTransformed = False Then
Me.MaxHP = CalcStatus(Me.Level, True, Me.BaseHP, Me.EVHP, Me.IVHP, "HP")
Me.Attack = CalcStatus(Me.Level, False, Me.BaseAttack, Me.EVAttack, Me.IVAttack, "Attack")
Me.Defense = CalcStatus(Me.Level, False, Me.BaseDefense, Me.EVDefense, Me.IVDefense, "Defense")
Me.SpAttack = CalcStatus(Me.Level, False, Me.BaseSpAttack, Me.EVSpAttack, Me.IVSpAttack, "SpAttack")
Me.SpDefense = CalcStatus(Me.Level, False, Me.BaseSpDefense, Me.EVSpDefense, Me.IVSpDefense, "SpDefense")
Else
Dim p As Pokemon = GetPokemonByID(Me.OriginalNumber, Me.AdditionalData)
Me.MaxHP = CalcStatus(Me.Level, True, p.BaseHP, Me.EVHP, Me.IVHP, "HP")
Me.OriginalStats(0) = CalcStatus(Me.Level, False, p.BaseAttack, Me.EVAttack, Me.IVAttack, "Attack")
Me.OriginalStats(1) = CalcStatus(Me.Level, False, p.BaseDefense, Me.EVDefense, Me.IVDefense, "Defense")
Me.OriginalStats(2) = CalcStatus(Me.Level, False, p.BaseSpAttack, Me.EVSpAttack, Me.IVSpAttack, "SpAttack")
Me.OriginalStats(3) = CalcStatus(Me.Level, False, p.BaseSpDefense, Me.EVSpDefense, Me.IVSpDefense, "SpDefense")
End If
End Sub
Public Sub CalculateStats()
CalculateStatsBarSpeed()
Me.Speed = CalcStatus(Me.Level, False, Me.BaseSpeed, Me.EVSpeed, Me.IVSpeed, "Speed")
If IsTransformed = False Then
Me.Speed = CalcStatus(Me.Level, False, Me.BaseSpeed, Me.EVSpeed, Me.IVSpeed, "Speed")
Else
Dim p As Pokemon = GetPokemonByID(Me.OriginalNumber, Me.AdditionalData)
Me.OriginalStats(4) = CalcStatus(Me.Level, False, p.BaseSpeed, Me.EVSpeed, Me.IVSpeed, "Speed")
End If
End Sub
''' <summary>
@ -2435,7 +2450,7 @@ Public Class Pokemon
If Me.Number = 292 Then
Return 1
ElseIf OriginalNumber <> -1 AndAlso OriginalNumber <> Number Then 'when transformed
Return CInt(Math.Floor((((IVStat + (2 * GetPokemonByID(OriginalNumber).BaseHP) + (EVStat / 4) + 100) * calcLevel) / 100) + 10))
Return CInt(Math.Floor((((IVStat + (2 * GetPokemonByID(OriginalNumber, AdditionalData).BaseHP) + (EVStat / 4) + 100) * calcLevel) / 100) + 10))
Else
Return CInt(Math.Floor((((IVStat + (2 * baseStat) + (EVStat / 4) + 100) * calcLevel) / 100) + 10))
End If

View File

@ -39,6 +39,9 @@
Canvas.DrawImageBorder(TextureManager.GetTexture(mainTexture, New Rectangle(0, 0, 48, 48)), 2, New Rectangle(CInt(p.X), CInt(p.Y), 480, 352))
Dim pokeTexture = Pokemon.GetMenuTexture()
If Pokemon.IsTransformed = True Then
pokeTexture = Pokemon.GetPokemonByID(Pokemon.OriginalNumber, Pokemon.AdditionalData).GetMenuTexture()
End If
Dim pokeTextureScale As Vector2 = New Vector2(CSng(32 / pokeTexture.Width) * 2, CSng(32 / pokeTexture.Height) * 2)
Core.SpriteBatch.Draw(pokeTexture, New Rectangle(CInt(p.X + 20), CInt(p.Y + 20), CInt(pokeTexture.Width * pokeTextureScale.X), CInt(pokeTexture.Height * pokeTextureScale.Y)), Color.White)
Core.SpriteBatch.DrawString(FontManager.InGameFont, Pokemon.GetDisplayName(), New Vector2(p.X + 90, p.Y + 32), Color.Black)