P3D-Legacy/P3D/Screens/Pokemon/PokemonStatusScreen.vb

538 lines
25 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Public Class PokemonStatusScreen
Inherits Screen
Dim pageIndex As Integer = 0
Dim PokeIndex As Integer = 0
Dim BoxIndex As Integer = 0
Dim BoxPokemon() As Pokemon
Dim MainTexture As Texture2D
Dim Pokemon As Pokemon
Dim FrontView As Boolean = True
Dim AttackIndex As Integer = 0
Dim AttackToggle As Boolean = False
Dim AttackPos As Single = 0
Dim SwitchIndex As Integer = -1
Dim viewParty As Boolean = True
Dim EVColors As List(Of Color) = {New Color(0, 210, 0), New Color(253, 83, 0), New Color(0, 154, 226), New Color(253, 183, 97), New Color(100, 201, 226), New Color(178, 108, 204)}.ToList()
Public Sub New(ByVal currentScreen As Screen, ByVal Index As Integer, ByVal BoxPokemon() As Pokemon, ByVal Pokemon As Pokemon, ByVal viewParty As Boolean)
Me.Identification = Identifications.PokemonStatusScreen
Me.PreScreen = currentScreen
Me.PokeIndex = Index
Me.Pokemon = Pokemon
Me.BoxPokemon = BoxPokemon
Me.BoxIndex = Index
Me.viewParty = viewParty
Me.MainTexture = TextureManager.GetTexture("GUI\Menus\Menu")
Me.pageIndex = Player.Temp.PokemonStatusPageIndex
End Sub
Public Overrides Sub Update()
If AttackToggle = False Then
If Me.AttackPos > 0.0F Then
Me.AttackPos -= 15.0F
If Me.AttackPos <= 0.0F Then
Me.AttackPos = 0.0F
End If
End If
Dim dummyPokeIndex As Integer = PokeIndex
If Controls.Down(True, False, False) Then
Me.PokeIndex += 1
FrontView = True
AttackIndex = 0
End If
If Controls.Up(True, False, False) Then
Me.PokeIndex -= 1
FrontView = True
AttackIndex = 0
End If
If Me.viewParty = True Then
If Me.PokeIndex < 0 Then
Me.PokeIndex = 0
ElseIf Me.PokeIndex > Core.Player.Pokemons.Count - 1 Then
Me.PokeIndex = Core.Player.Pokemons.Count - 1
End If
Me.Pokemon = Core.Player.Pokemons(PokeIndex)
Else
If Me.PokeIndex < 0 Then
Me.PokeIndex = 0
ElseIf Me.PokeIndex > BoxPokemon.Count - 1 Then
Me.PokeIndex = BoxPokemon.Count - 1
End If
Me.Pokemon = Me.BoxPokemon(PokeIndex)
End If
If dummyPokeIndex <> Me.PokeIndex Then
If Me.Pokemon.EggSteps = 0 Then
Me.Pokemon.PlayCry()
End If
End If
Else
If Me.AttackPos < 340.0F Then
Me.AttackPos += 15.0F
If Me.AttackPos >= 340.0F Then
Me.AttackPos = 340.0F
End If
End If
If Controls.Down(True, False, True) Then
Me.AttackIndex += 1
End If
If Controls.Up(True, False, True) Then
Me.AttackIndex -= 1
End If
If AttackIndex < 0 Then
AttackIndex = 0
ElseIf AttackIndex > Pokemon.Attacks.Count - 1 Then
AttackIndex = Pokemon.Attacks.Count - 1
End If
End If
If SwitchIndex = -1 Then
If Controls.Right(True, False, True) Then
pageIndex += 1
AttackToggle = False
AttackIndex = 0
End If
If Controls.Left(True, False, True) Then
pageIndex -= 1
AttackToggle = False
AttackIndex = 0
End If
If pageIndex < 0 Then
pageIndex = 0
ElseIf pageIndex > 2 Then
pageIndex = 2
End If
End If
Player.Temp.PokemonStatusPageIndex = Me.pageIndex
Player.Temp.PokemonScreenIndex = Me.PokeIndex
If pageIndex = 0 Then
If Controls.Accept() Then
FrontView = Not FrontView
End If
ElseIf pageIndex = 2 Then
If Controls.Accept() And Me.Pokemon.EggSteps = 0 Then
If AttackToggle = False Then
AttackToggle = True
Else
If SwitchIndex = -1 Then
SwitchIndex = AttackIndex
Else
Dim A1 As BattleSystem.Attack = Me.Pokemon.Attacks(SwitchIndex)
Dim A2 As BattleSystem.Attack = Me.Pokemon.Attacks(AttackIndex)
Me.Pokemon.Attacks(AttackIndex) = A1
Me.Pokemon.Attacks(SwitchIndex) = A2
SwitchIndex = -1
End If
End If
End If
End If
If Controls.Dismiss() Then
If AttackToggle = True Then
If SwitchIndex <> -1 Then
SwitchIndex = -1
Else
AttackToggle = False
End If
Else
Core.SetScreen(Me.PreScreen)
End If
End If
End Sub
Public Overrides Sub Draw()
PreScreen.Draw()
Canvas.DrawImageBorder(TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), ""), 2, New Rectangle(60, 100, 800, 480))
DrawHeader()
Dim TexturePositionPage As Vector2
Select Case pageIndex
Case 0
If Me.Pokemon.EggSteps = 0 Then
DrawPage1()
End If
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_stats_page"), New Vector2(676, 138), Color.Black)
TexturePositionPage = New Vector2(32, 96)
Case 1
DrawPage2()
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_details_page"), New Vector2(676, 138), Color.Black)
TexturePositionPage = New Vector2(32, 112)
Case 2
If Me.Pokemon.EggSteps = 0 Then
DrawPage3()
End If
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_moves_page"), New Vector2(676, 138), Color.Black)
TexturePositionPage = New Vector2(80, 96)
End Select
Core.SpriteBatch.Draw(MainTexture, New Rectangle(574, 132, 96, 32), New Rectangle(CInt(TexturePositionPage.X), CInt(TexturePositionPage.Y), 48, 16), Color.White)
If Me.AttackToggle = False Then
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_backadvice"), New Vector2(1200 - FontManager.MiniFont.MeasureString(Localization.GetString("poke_status_screen_backadvice")).X - 360, 580), Color.DarkGray)
Else
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_closeadvice"), New Vector2(1200 - FontManager.MiniFont.MeasureString(Localization.GetString("poke_status_screen_closeadvice")).X - 360, 580), Color.DarkGray)
End If
End Sub
Private Sub DrawHeader()
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
' Effort Value colors:
With Me.Pokemon
Dim AllEVs As Integer = .EVHP + .EVAttack + .EVDefense + .EVSpAttack + .EVSpDefense + .EVSpeed
If AllEVs > 0 Then
Dim EVMax As Integer = 510
If AllEVs > EVMax Then
EVMax = AllEVs
End If
Dim BlockWidth As Double = 490 / EVMax
Dim CurrentWidth As Integer = 70
Dim BlockY As Integer = 192
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVHP), 10), EVColors(0))
CurrentWidth += CInt(BlockWidth * .EVHP)
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVAttack), 10), EVColors(1))
CurrentWidth += CInt(BlockWidth * .EVAttack)
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVDefense), 10), EVColors(2))
CurrentWidth += CInt(BlockWidth * .EVDefense)
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVSpAttack), 10), EVColors(3))
CurrentWidth += CInt(BlockWidth * .EVSpAttack)
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVSpDefense), 10), EVColors(4))
CurrentWidth += CInt(BlockWidth * .EVSpDefense)
Canvas.DrawRectangle(New Rectangle(CurrentWidth, BlockY, CInt(BlockWidth * .EVSpeed), 10), EVColors(5))
CurrentWidth += CInt(BlockWidth * .EVSpeed)
End If
End With
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(60, 100, 480, 64))
If Pokemon.GetDisplayName() = Pokemon.GetName() Or Pokemon.IsEgg() = True Then
Core.SpriteBatch.DrawString(FontManager.InGameFont, Pokemon.GetDisplayName(), New Vector2(158, 132), Color.Black)
Else
Core.SpriteBatch.DrawString(FontManager.InGameFont, Pokemon.GetDisplayName(), New Vector2(158, 122), Color.Black)
Core.SpriteBatch.DrawString(FontManager.MiniFont, Pokemon.GetName(), New Vector2(164, 152), Color.Black)
End If
Core.SpriteBatch.Draw(Pokemon.GetMenuTexture(), New Rectangle(70, 110, 80, 80), BattleStats.GetStatColor(Pokemon.Status))
If Not Pokemon.Item Is Nothing And Pokemon.EggSteps = 0 Then
Core.SpriteBatch.Draw(Pokemon.Item.Texture, New Rectangle(118, 150, 28, 28), Color.White)
End If
' Portray:
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(60, 196, 128, 128))
Core.SpriteBatch.Draw(Pokemon.GetTexture(FrontView), New Rectangle(74, 208, 124, 124), Color.White)
Core.SpriteBatch.Draw(Pokemon.CatchBall.Texture, New Rectangle(74, 318, 24, 24), Color.White)
If Me.Pokemon.IsShiny = True And Me.Pokemon.IsEgg() = False Then
Core.SpriteBatch.Draw(MainTexture, New Rectangle(78, 218, 18, 18), New Rectangle(118, 4, 9, 9), Color.White)
End If
' Other:
If Me.Pokemon.EggSteps = 0 Then
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(60, 356, 128, 224))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Menus\Types"), New Rectangle(76, 380, 48, 16), Me.Pokemon.Type1.GetElementImage(), Color.White)
If Me.Pokemon.Type2.Type <> Element.Types.Blank Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Menus\Types"), New Rectangle(124, 380, 48, 16), Me.Pokemon.Type2.GetElementImage(), Color.White)
End If
Dim r As New Rectangle(96, 0, 6, 10)
If Me.Pokemon.Gender = net.Pokemon3D.Game.Pokemon.Genders.Female Then
r = New Rectangle(102, 0, 6, 10)
End If
If Me.Pokemon.Gender <> net.Pokemon3D.Game.Pokemon.Genders.Genderless Then
Core.SpriteBatch.Draw(MainTexture, New Rectangle(180, 376, 12, 20), r, Color.White)
End If
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("Level") & ": " & Me.Pokemon.Level & vbNewLine & Localization.GetString("poke_status_screen_number") & Pokemon.Number & vbNewLine & vbNewLine & Localization.GetString("poke_status_screen_nature") & ":" & vbNewLine & Me.Pokemon.Nature.ToString(), New Vector2(76, 410), Color.Black)
Dim StatusTexture As Texture2D = BattleStats.GetStatImage(Pokemon.Status)
If Not StatusTexture Is Nothing Then
Dim Y As Integer = 139
If Pokemon.GetDisplayName() <> Pokemon.GetName() Then
Y = 127
End If
Canvas.DrawRectangle(New Rectangle(CInt(170 + FontManager.InGameFont.MeasureString(Pokemon.GetDisplayName()).X), Y, 61, 22), Color.Gray)
Core.SpriteBatch.Draw(StatusTexture, New Rectangle(CInt(172 + FontManager.InGameFont.MeasureString(Pokemon.GetDisplayName()).X), Y + 2, 57, 18), Color.White)
End If
End If
End Sub
Private Sub DrawPage1()
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
Dim p As Vector2 = New Vector2(140, 180)
With Core.SpriteBatch
' Stats:
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 196, 320, 256))
Dim barX As Integer = CInt((Pokemon.HP / Pokemon.MaxHP) * 150)
Dim barRectangle As Rectangle
Dim barPercentage As Integer = CInt((Pokemon.HP / Pokemon.MaxHP) * 100).Clamp(0, 100)
If barPercentage >= 50 Then
barRectangle = New Rectangle(113, 0, 1, 4)
ElseIf barPercentage < 50 And barPercentage > 10 Then
barRectangle = New Rectangle(116, 0, 1, 4)
ElseIf barPercentage <= 10 Then
barRectangle = New Rectangle(115, 0, 1, 4)
End If
For x = 0 To barX - 1
.Draw(MainTexture, New Rectangle(CInt(p.X + (x * 2) + 104), CInt(p.Y + 44), 4, 16), barRectangle, Color.White)
Next
For x = barX To 149
.Draw(MainTexture, New Rectangle(CInt(p.X + (x * 2) + 104), CInt(p.Y + 44), 4, 16), New Rectangle(114, 0, 1, 4), Color.White)
Next
.Draw(MainTexture, New Rectangle(CInt(p.X + 100), CInt(p.Y + 44), 4, 16), New Rectangle(112, 0, 1, 4), Color.White)
.Draw(MainTexture, New Rectangle(CInt(p.X + 406), CInt(p.Y + 44), 4, 16), New Rectangle(112, 0, 1, 4), Color.White)
Dim redText As String = vbNewLine & vbNewLine
Dim blueText As String = vbNewLine & vbNewLine
Dim blackText As String = Localization.GetString("HP") & vbNewLine & vbNewLine
For i = 0 To 4
Dim statText As String = ""
Dim stat As String = ""
Select Case i
Case 0
statText = Localization.GetString("Attack")
stat = "Attack"
Case 1
statText = Localization.GetString("Defense")
stat = "Defense"
Case 2
statText = Localization.GetString("Special_Attack")
stat = "SpAttack"
Case 3
statText = Localization.GetString("Special_Defense")
stat = "SpDefense"
Case 4
statText = Localization.GetString("Speed")
stat = "Speed"
End Select
Dim m As Single = Nature.GetMultiplier(Pokemon.Nature, stat)
If m > 1.0F Then
redText &= statText & vbNewLine
blueText &= vbNewLine & vbNewLine
blackText &= vbNewLine & vbNewLine
ElseIf m < 1.0F Then
redText &= vbNewLine & vbNewLine
blueText &= statText & vbNewLine
blackText &= vbNewLine & vbNewLine
Else
redText &= vbNewLine & vbNewLine
blueText &= vbNewLine & vbNewLine
blackText &= statText & vbNewLine & vbNewLine
End If
Next
.DrawString(FontManager.MiniFont, blackText, New Vector2(CInt(p.X + 100), CInt(p.Y + 68)), Color.Black)
.DrawString(FontManager.MiniFont, redText, New Vector2(CInt(p.X + 100), CInt(p.Y + 68)), New Color(255, 0, 0, 200))
.DrawString(FontManager.MiniFont, blueText, New Vector2(CInt(p.X + 100), CInt(p.Y + 68)), Color.Blue)
.DrawString(FontManager.MiniFont, Pokemon.HP & " / " & Pokemon.MaxHP & vbNewLine & vbNewLine & Pokemon.Attack & vbNewLine & vbNewLine & Pokemon.Defense & vbNewLine & vbNewLine & Pokemon.SpAttack & vbNewLine & vbNewLine & Pokemon.SpDefense & vbNewLine & vbNewLine & Pokemon.Speed, New Vector2(CInt(p.X + 280), CInt(p.Y + 68)), Color.Black)
' Experience Points:
If Pokemon.Level < CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) Then
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 484, 320, 96))
Dim NextLvExp As Integer = Pokemon.NeedExperience(Me.Pokemon.Level + 1) - Pokemon.NeedExperience(Me.Pokemon.Level)
Dim currentExp As Integer = Me.Pokemon.Experience - Pokemon.NeedExperience(Me.Pokemon.Level)
If Pokemon.Level = 1 Then
NextLvExp = Pokemon.NeedExperience(Me.Pokemon.Level + 1)
currentExp = Me.Pokemon.Experience
End If
Dim NeedExp As Integer = NextLvExp - currentExp
If Pokemon.Level = CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) Then
NextLvExp = 0
Else
barPercentage = CInt((currentExp / NextLvExp) * 100)
barX = CInt((currentExp / NextLvExp) * 150).Clamp(0, 150)
End If
.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_all_exp") & ": " & Pokemon.Experience & vbNewLine & Localization.GetString("poke_status_screen_nxt_lv") & ": " & NextLvExp - currentExp, New Vector2(240, 504), Color.Black)
Dim i As Integer = 0
For x = 0 To barX - 1
.Draw(MainTexture, New Rectangle((x * 2) + 240, 550, 4, 16), New Rectangle(118 + i, 0, 1, 4), Color.White)
i += 1
If i = 2 Then
i = 0
End If
Next
For x = barX To 149
.Draw(MainTexture, New Rectangle((x * 2) + 240, 550, 4, 16), New Rectangle(114, 0, 1, 4), Color.White)
Next
.Draw(MainTexture, New Rectangle(236, 550, 4, 16), New Rectangle(112, 0, 1, 4), Color.White)
.Draw(MainTexture, New Rectangle(542, 550, 4, 16), New Rectangle(112, 0, 1, 4), Color.White)
If barPercentage = 100 Then
barPercentage -= 1
End If
.DrawString(FontManager.MiniFont, barPercentage & " %", New Vector2(250, 575), Color.DarkBlue)
End If
End With
End Sub
Private Sub DrawPage2()
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
Dim p As Vector2 = New Vector2(140, 180)
' Capture Information:
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 196, 320, 96))
With Core.SpriteBatch
.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_OT") & ": " & Pokemon.OT & " /" & Pokemon.CatchTrainerName & vbNewLine & vbNewLine & Pokemon.CatchMethod & vbNewLine & Pokemon.CatchLocation, New Vector2(238, 214), Color.DarkBlue)
End With
' Item:
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 324, 320, 128))
If Me.Pokemon.EggSteps = 0 Then
If Not Pokemon.Item Is Nothing Then
Core.SpriteBatch.Draw(Pokemon.Item.Texture, New Rectangle(232, 338, 24, 24), Color.White)
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_Item") & ": " & Pokemon.Item.Name, New Vector2(262, 342), Color.Black)
Core.SpriteBatch.DrawString(FontManager.MiniFont, Pokemon.Item.Description.CropStringToWidth(FontManager.MiniFont, 300), New Vector2(234, 360), Color.Black)
Else
Core.SpriteBatch.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_Item") & ": " & Localization.GetString("poke_status_screen_no_item"), New Vector2(262, 342), Color.Black)
End If
End If
' Ability:
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 484, 320, 96))
If Me.Pokemon.EggSteps = 0 Then
With Core.SpriteBatch
.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_ability") & ": " & Me.Pokemon.Ability.Name & vbNewLine & vbNewLine & Me.Pokemon.Ability.Description.CropStringToWidth(FontManager.MiniFont, 300), New Vector2(234, 500), Color.Black)
End With
Else
With Core.SpriteBatch
Dim s As String = """The Egg Watch""" & vbNewLine
Dim percent As Integer = CInt((Me.Pokemon.EggSteps / Me.Pokemon.BaseEggSteps) * 100)
If percent <= 33 Then
s &= "It looks like this Egg will" & vbNewLine & "take a long time to hatch."
ElseIf percent > 33 And percent <= 66 Then
s &= "It's getting warmer and moves" & vbNewLine & "a little. It will hatch soon."
Else
s &= "There is strong movement" & vbNewLine & "noticeable. It will hatch soon!"
End If
.DrawString(FontManager.MiniFont, s, New Vector2(234, 500), Color.Black)
End With
End If
End Sub
Private Sub DrawPage3()
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
Dim p As Vector2 = New Vector2(140, 180)
If Pokemon.Attacks.Count > 0 Then
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(CInt(572 - 352 + AttackPos), 196, 288, 384))
Dim A As BattleSystem.Attack = Pokemon.Attacks(AttackIndex)
With Core.SpriteBatch
Dim fullText As String = A.Description
Dim t As String = ""
Dim i As Integer = 0
Dim n As String = ""
For i = 0 To fullText.Length - 1
Dim c As Char = CChar(fullText(i).ToString().Replace("", "'"))
If c = CChar(" ") Then
If FontManager.MiniFont.MeasureString(n & c).X > 170 Then
t &= vbNewLine
n = ""
Else
t &= " "
n &= " "
End If
Else
t &= c
n &= c
End If
Next
Dim power As String = A.Power.ToString()
If power = "0" Then
power = "-"
End If
Dim acc As String = A.Accuracy.ToString()
If acc = "0" Then
acc = "-"
End If
.DrawString(FontManager.MiniFont, Localization.GetString("poke_status_screen_power") & ": " & power & vbNewLine & Localization.GetString("poke_status_screen_accuracy") & ": " & acc & vbNewLine & vbNewLine & t, New Vector2(CInt(552 - 300 + AttackPos), 218), Color.Black)
.Draw(A.GetDamageCategoryImage(), New Rectangle(CInt(552 - 150 + AttackPos), 222, 56, 28), Color.White)
End With
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(220, 196, 320, 384))
For i = 0 To Me.Pokemon.Attacks.Count - 1
DrawAttack(i, Me.Pokemon.Attacks(i))
Next
End If
End Sub
Private Sub DrawAttack(ByVal i As Integer, ByVal A As BattleSystem.Attack)
Dim p As New Vector2(240, 210 + i * (64 + 32))
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
If Me.AttackToggle = True And Me.AttackIndex = i Then
CanvasTexture = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(48, 0, 48, 48), "")
Else
If SwitchIndex <> -1 And i = SwitchIndex Then
CanvasTexture = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 48, 48, 48), "")
End If
End If
Canvas.DrawImageBorder(CanvasTexture, 2, New Rectangle(252, CInt(p.Y), 256, 64))
With Core.SpriteBatch
.DrawString(FontManager.MiniFont, A.Name, New Vector2(270, CInt(p.Y + 26)), Color.Black)
Dim c As Color = Color.Black
Dim per As Integer = CInt((A.CurrentPP / A.MaxPP) * 100)
If per <= 33 And per > 10 Then
c = Color.Orange
ElseIf per <= 10 Then
c = Color.IndianRed
End If
.DrawString(FontManager.MiniFont, Localization.GetString("PP") & " " & A.CurrentPP & " / " & A.MaxPP, New Vector2(400, CInt(p.Y + 58)), c)
.Draw(TextureManager.GetTexture("GUI\Menus\Types", A.Type.GetElementImage(), ""), New Rectangle(270, CInt(p.Y + 54), 48, 16), Color.White)
End With
End Sub
Public Overrides Sub ChangeTo()
If Me.Pokemon.EggSteps = 0 Then
Me.Pokemon.PlayCry()
End If
End Sub
End Class