2016-09-07 18:50:38 +02:00
Public Class HatchEggScreen
Inherits Screen
Dim Pokemons As New List ( Of Pokemon )
Dim Backgroud As Texture2D
Dim Egg As Texture2D
Dim Stage As Integer = 0
Dim delay As Single = 4 . 0F
Dim size As Single = 0 . 0F
Dim cPokemon As Pokemon
Public Sub New ( ByVal currentScreen As Screen , ByVal Pokemon As List ( Of Pokemon ) )
Me . PreScreen = currentScreen
PlayerStatistics . Track ( " Eggs hatched " , 1 )
Me . Identification = Identifications . HatchEggScreen
Me . Pokemons = Pokemon
Me . cPokemon = Me . Pokemons ( 0 )
cPokemon . EggSteps = 0
Core . Player . Pokemons . Add ( cPokemon )
If cPokemon . IsShiny = True Then
Core . Player . PokedexData = Pokedex . ChangeEntry ( Core . Player . PokedexData , cPokemon . Number , 3 )
Else
Core . Player . PokedexData = Pokedex . ChangeEntry ( Core . Player . PokedexData , cPokemon . Number , 2 )
End If
Me . Pokemons . Remove ( cPokemon )
Level . OverworldPokemon . Visible = False
Me . Backgroud = TextureManager . GetTexture ( " GUI\EggBreak " , New Rectangle ( 0 , 0 , 256 , 192 ) , " " )
Me . Egg = GetEggTexture ( )
MusicManager . PlayNoMusic ( )
End Sub
Private Function GetEggTexture ( ) As Texture2D
Return TextureManager . GetTexture ( " GUI\EggBreak " , New Rectangle ( 0 + 28 * Stage , 192 , 28 , 30 ) , " " )
End Function
Public Overrides Sub Draw ( )
Core . SpriteBatch . Draw ( Me . Backgroud , Core . windowSize , Color . White )
If Stage < 6 Then
Core . SpriteBatch . Draw ( Egg , New Rectangle ( CInt ( Core . windowSize . Width / 2 - Egg . Width ) , CInt ( Core . windowSize . Height / 2 - Egg . Height ) , Egg . Width * 2 , Egg . Height * 2 ) , Color . White )
End If
Core . SpriteBatch . Draw ( cPokemon . GetTexture ( True ) , New Rectangle ( CInt ( Core . windowSize . Width / 2 - ( cPokemon . GetTexture ( True ) . Width * size / 2 ) ) , CInt ( Core . windowSize . Height / 2 - ( cPokemon . GetTexture ( True ) . Height * size / 1 . 5F ) ) , CInt ( cPokemon . GetTexture ( True ) . Width * size ) , CInt ( cPokemon . GetTexture ( True ) . Height * size ) ) , Color . White )
TextBox . Draw ( )
ChooseBox . Draw ( )
End Sub
Public Overrides Sub Update ( )
ChooseBox . Update ( )
If ChooseBox . Showing = False Then
TextBox . Update ( )
End If
If TextBox . Showing = False And ChooseBox . Showing = False Then
If Stage < 6 Then
If delay > 0 . 0F Then
delay -= 0 . 1F
End If
If delay <= 0 . 0F Then
delay = 4 . 0F
Stage += 1
If Stage = 6 Then
SoundManager . PlaySound ( " egg_hatch " )
Else
2021-10-03 11:02:18 +02:00
SoundManager . PlaySound ( " Battle\Attacks\Normal\Pound " )
2016-09-07 18:50:38 +02:00
End If
Egg = GetEggTexture ( )
End If
ElseIf Stage = 6 Then
If size < 3 . 5F Then
size += 0 . 08F
Else
2018-02-24 01:20:42 +01:00
MusicManager . Play ( " wild_defeat " )
2016-09-07 18:50:38 +02:00
cPokemon . PlayCry ( )
SoundManager . PlaySound ( " success " , True )
Stage = 7
TextBox . Show ( " Congratulations!~Your egg hatched into~a " & cPokemon . GetName ( ) & " !*Do you want to give~a nickname to the freshly~hatched " & cPokemon . GetName ( ) & " ?%Yes|No% " , AddressOf Me . ResultFunction , False , False , TextBox . DefaultColor )
End If
ElseIf Stage = 7 Then
If Me . IsCurrentScreen = True Then
EndScene ( )
Stage = 8
End If
End If
End If
End Sub
Private Sub ResultFunction ( ByVal result As Integer )
If result = 0 Then
Core . SetScreen ( New NameObjectScreen ( Core . CurrentScreen , Me . cPokemon ) )
End If
End Sub
Private Sub EndScene ( )
If Pokemons . Count = 0 Then
Core . SetScreen ( New TransitionScreen ( Me , Me . PreScreen , Color . White , False ) )
Else
Core . SetScreen ( New HatchEggScreen ( Me . PreScreen , Pokemons ) )
End If
End Sub
End Class