Fix transformed pkmn level up wrong stats & icon
This commit is contained in:
parent
a0bcce2809
commit
97387050c7
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue