113 lines
4.7 KiB
VB.net
113 lines
4.7 KiB
VB.net
Public Class PokemonScreenV2
|
|
|
|
Inherits WindowScreen
|
|
|
|
Dim texture As Texture2D
|
|
Dim battleTexture As Texture2D
|
|
|
|
Public Sub New(ByVal currentScreen As Screen, ByVal startSelectionindex As Integer)
|
|
MyBase.New(currentScreen, Identifications.PokemonScreen, "Pokémon")
|
|
|
|
Me.texture = TextureManager.GetTexture("GUI\Menus\General")
|
|
Me.battleTexture = TextureManager.GetTexture("GUI\Battle\Interface")
|
|
End Sub
|
|
|
|
Public Overrides Sub Update()
|
|
MyBase.Update()
|
|
|
|
If Controls.Dismiss() = True Then
|
|
Me.CloseScreen()
|
|
End If
|
|
End Sub
|
|
|
|
Public Overrides Sub Draw()
|
|
Me.PreScreen.Draw()
|
|
|
|
MyBase.Draw()
|
|
|
|
If FadedIn = True Then
|
|
' Draw first Pokémon:
|
|
DrawFirstPokemon()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub DrawFirstPokemon()
|
|
Dim poke As Pokemon = Core.Player.Pokemons(0)
|
|
|
|
Dim topLeft As Vector2 = Me.GetPositionInWindowTopLeft(0, 0)
|
|
|
|
' Shadow:
|
|
Canvas.DrawRectangle(Me.OffsetRectangle(New Rectangle(topLeft.X.ToInteger() + 43, topLeft.Y.ToInteger() + 123, 80 * 3, 32 * 3)), New Color(0, 0, 0, 90))
|
|
|
|
' Box:
|
|
Core.SpriteBatch.Draw(Me.texture,
|
|
Me.OffsetRectangle(New Rectangle(topLeft.X.ToInteger() + 40, topLeft.Y.ToInteger() + 120, 80 * 3, 32 * 3)),
|
|
New Rectangle(48, 16, 80, 32),
|
|
Color.White)
|
|
|
|
Dim pTexture As Texture2D = poke.GetMenuTexture()
|
|
|
|
' Pokémon:
|
|
Core.SpriteBatch.Draw(pTexture, Me.OffsetRectangle(New Rectangle(topLeft.X.ToInteger() + 40, topLeft.Y.ToInteger() + 120, pTexture.Width * 2, pTexture.Height * 2)), Color.White)
|
|
' Name:
|
|
Core.SpriteBatch.DrawString(FontManager.MiniFont, poke.GetDisplayName(), Me.OffsetVector(New Vector2(topLeft.X + 108, topLeft.Y + 134)), Color.White, 0.0F, Vector2.Zero, 1.2F, SpriteEffects.None, 0.0F)
|
|
' Level:
|
|
Core.SpriteBatch.DrawString(FontManager.MiniFont, "Lv. " & poke.Level.ToString(), Me.OffsetVector(New Vector2(topLeft.X + 44, topLeft.Y + 188)), Color.White)
|
|
|
|
' Item:
|
|
If poke.Item IsNot Nothing Then
|
|
Core.SpriteBatch.Draw(poke.Item.Texture, Me.OffsetRectangle(New Rectangle(topLeft.X.ToInteger() + 80, topLeft.Y.ToInteger() + 160, 24, 24)), Color.White)
|
|
End If
|
|
|
|
' Hit Points:
|
|
Core.SpriteBatch.Draw(Me.battleTexture,
|
|
Me.OffsetRectangle(New Rectangle(topLeft.X.ToInteger() + 108, topLeft.Y.ToInteger() + 170, 13 * 2, 6 * 2)),
|
|
New Rectangle(6, 37, 13, 6),
|
|
Color.White)
|
|
' Hit Points bar:
|
|
Dim HPpercentage As Single = (100.0F / poke.MaxHP) * poke.HP
|
|
Dim HPlength As Integer = CInt(Math.Ceiling(140 / 100 * HPpercentage.Clamp(1, 999)))
|
|
|
|
If poke.HP = 0 Then
|
|
HPlength = 0
|
|
Else
|
|
If HPlength <= 0 Then
|
|
HPlength = 1
|
|
End If
|
|
End If
|
|
If poke.HP = poke.MaxHP Then
|
|
HPlength = 140
|
|
Else
|
|
If HPlength = 140 Then
|
|
HPlength = 139
|
|
End If
|
|
End If
|
|
|
|
Dim cX As Integer = 0
|
|
If HPpercentage <= 50.0F And HPpercentage > 15.0F Then
|
|
cX = 2
|
|
ElseIf HPpercentage <= 15.0F Then
|
|
cX = 4
|
|
End If
|
|
|
|
Dim pos As Vector2 = OffsetVector(New Vector2(topLeft.X + 136, topLeft.Y + 170))
|
|
|
|
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X), CInt(pos.Y), 140, 12), New Rectangle(19, 37, 70, 6), Color.White)
|
|
|
|
If HPlength > 0 Then
|
|
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X), CInt(pos.Y), 2, 12), New Rectangle(cX, 37, 1, 6), Color.White)
|
|
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X) + 2, CInt(pos.Y), HPlength - 4, 12), New Rectangle(cX + 1, 37, 1, 6), Color.White)
|
|
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X) + HPlength - 2, CInt(pos.Y), 2, 12), New Rectangle(cX, 37, 1, 6), Color.White)
|
|
End If
|
|
|
|
' Hit Points text:
|
|
Core.SpriteBatch.DrawString(FontManager.MiniFont, poke.HP & " / " & poke.MaxHP, Me.OffsetVector(New Vector2(topLeft.X + 140, topLeft.Y + 188)), Color.White)
|
|
|
|
' Status:
|
|
Dim StatusTexture As Texture2D = BattleStats.GetStatImage(poke.Status)
|
|
If Not StatusTexture Is Nothing Then
|
|
Core.SpriteBatch.Draw(StatusTexture, Me.OffsetRectangle(New Rectangle(CInt(topLeft.X + 235), CInt(topLeft.Y + 192), 38, 12)), Color.White)
|
|
End If
|
|
End Sub
|
|
|
|
End Class |