mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-23 13:55:38 +02:00
Added lead pick for PvP matches
This commit is contained in:
parent
2490622091
commit
38c381f692
@ -1575,6 +1575,7 @@
|
||||
<Compile Include="Screens\BattleIntroScreen.vb" />
|
||||
<Compile Include="Screens\Battle\BattleCatchScreen.vb" />
|
||||
<Compile Include="Screens\Battle\BattleGrowStatsScreen.vb" />
|
||||
<Compile Include="Screens\Battle\LeadPokemonInfoScreen.vb" />
|
||||
<Compile Include="Screens\Battle\BattlePokemonInfoScreen.vb" />
|
||||
<Compile Include="Screens\Battle\BlackOutScreen.vb" />
|
||||
<Compile Include="Screens\Credits\CreditsCamera.vb" />
|
||||
|
@ -2,8 +2,13 @@
|
||||
|
||||
Public Class BattleScreen
|
||||
|
||||
|
||||
Inherits Screen
|
||||
|
||||
|
||||
Public Shared OwnLeadIndex As Integer = 0
|
||||
Public Shared OppLeadIndex As Integer = 0
|
||||
|
||||
#Region "BattleValues"
|
||||
|
||||
Public ClearMenuTime As Boolean = False
|
||||
@ -337,6 +342,12 @@
|
||||
End If
|
||||
Next
|
||||
Me.OwnPokemon = Core.Player.Pokemons(meIndex)
|
||||
If IsPVPBattle Then
|
||||
OwnPokemon = Core.Player.Pokemons(OwnLeadIndex)
|
||||
OwnPokemonIndex = OwnLeadIndex
|
||||
OppPokemon = Trainer.Pokemons(OppLeadIndex)
|
||||
OppPokemonIndex = OppLeadIndex
|
||||
End If
|
||||
|
||||
Me.IsTrainerBattle = True
|
||||
Me.ParticipatedPokemon.Add(meIndex)
|
||||
@ -421,8 +432,8 @@
|
||||
|
||||
Me.BattleQuery.AddRange({cq, q, q1, q2, q22, q3, q31, q4})
|
||||
|
||||
Battle.SwitchInOwn(Me, meIndex, True, -1)
|
||||
Battle.SwitchInOpp(Me, True, 0)
|
||||
Battle.SwitchInOwn(Me, meIndex, True, OwnPokemonIndex)
|
||||
Battle.SwitchInOpp(Me, True, OppPokemonIndex)
|
||||
|
||||
Me.BattleQuery.AddRange({cq1, q5, cq2})
|
||||
|
||||
@ -1070,6 +1081,8 @@ nextIndex:
|
||||
ResetVars()
|
||||
Core.SetScreen(New TransitionScreen(Me, New BlackOutScreen(Me), Color.Black, False))
|
||||
End If
|
||||
OwnLeadIndex = 0
|
||||
OppLeadIndex = 0
|
||||
End Sub
|
||||
|
||||
Public Sub ChangeSavedScreen()
|
||||
|
@ -286,13 +286,19 @@
|
||||
|
||||
Private Sub StartBattle()
|
||||
If Not Me.OwnTeam Is Nothing And Not OppTeam Is Nothing Then
|
||||
Core.ServersManager.ServerConnection.SendPackage(New Servers.Package(Servers.Package.PackageTypes.BattleStart, Core.ServersManager.ID, Servers.Package.ProtocolTypes.TCP, PartnerNetworkID.ToString()))
|
||||
Core.SetScreen(New ChoosePokemonScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf LeadPickedStart, "Choose your lead.", True, True, False, _pokemonList:=OwnTeam))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LeadPickedStart(ByVal index As Integer)
|
||||
BattleSystem.BattleScreen.OwnLeadIndex = index
|
||||
Core.ServersManager.ServerConnection.SendPackage(New Servers.Package(Servers.Package.PackageTypes.BattleOffer,
|
||||
Core.ServersManager.ID, Servers.Package.ProtocolTypes.TCP, {PartnerNetworkID.ToString(), CStr(index)}.ToList()))
|
||||
If ReceivedBattleOffer = True Then
|
||||
InitializeBattle()
|
||||
Else
|
||||
SentBattleOffer = True
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub QuitBattle()
|
||||
@ -490,7 +496,8 @@
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub ReceiveBattleStart()
|
||||
Public Shared Sub ReceiveBattleStart(ByVal index As Integer)
|
||||
BattleSystem.BattleScreen.OppLeadIndex = index
|
||||
If IsLobbyScreen() = True Then
|
||||
If SentBattleOffer = True Then
|
||||
StartBattleRemote = True
|
||||
|
@ -203,7 +203,15 @@
|
||||
End Sub
|
||||
|
||||
Private Shared Sub HandleBattleOffer(ByVal p As Package)
|
||||
'Remove the whole "if" when server API is updated.
|
||||
If p.DataItems(0).Length = 1 Then
|
||||
PVPLobbyScreen.ReceiveBattleStart(CInt(p.DataItems(0)))
|
||||
Else
|
||||
PVPLobbyScreen.ReceiveOppTeam(p.DataItems(0))
|
||||
End If
|
||||
|
||||
'PVPLobbyScreen.ReceiveOppTeam(p.DataItems(0))
|
||||
|
||||
End Sub
|
||||
|
||||
Private Shared Sub HandleBattleQuit(ByVal p As Package)
|
||||
@ -229,7 +237,7 @@
|
||||
End Sub
|
||||
|
||||
Private Shared Sub HandleBattleStart(ByVal p As Package)
|
||||
PVPLobbyScreen.ReceiveBattleStart()
|
||||
PVPLobbyScreen.ReceiveBattleStart(CInt(p.DataItems(0)))
|
||||
End Sub
|
||||
|
||||
Private Shared Sub HandleBattleHostData(ByVal p As Package)
|
||||
|
108
2.5DHero/2.5DHero/Screens/Battle/LeadPokemonInfoScreen.vb
Normal file
108
2.5DHero/2.5DHero/Screens/Battle/LeadPokemonInfoScreen.vb
Normal file
@ -0,0 +1,108 @@
|
||||
Public Class LeadPokemonInfoScreen
|
||||
|
||||
Inherits Screen
|
||||
|
||||
Dim Pokemon As Pokemon
|
||||
|
||||
Dim index As Integer = 0
|
||||
Dim mainTexture As Texture2D
|
||||
Public Delegate Sub DoStuff(ByVal PokeIndex As Integer)
|
||||
Dim ChoosePokemon As DoStuff
|
||||
Dim pokeIndex As Integer = 0
|
||||
|
||||
Dim PokeSize As Integer = 128
|
||||
Dim ItemSize As Integer = 0
|
||||
|
||||
Public Sub New(ByVal currentScreen As Screen, ByVal PokeIndex As Integer, ByVal ChoosePokemon As DoStuff)
|
||||
Me.PreScreen = currentScreen
|
||||
Me.Identification = Identifications.BattlePokemonScreen
|
||||
Me.ChoosePokemon = ChoosePokemon
|
||||
Me.pokeIndex = PokeIndex
|
||||
Me.Pokemon = Core.Player.Pokemons(PokeIndex)
|
||||
|
||||
|
||||
Me.mainTexture = TextureManager.GetTexture("GUI\Menus\Menu")
|
||||
|
||||
Logger.Debug(currentScreen.Identification.ToString())
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub Update()
|
||||
If Controls.Up(True, True, True, True) = True Then
|
||||
Me.index -= 1
|
||||
End If
|
||||
If Controls.Down(True, True, True, True) = True Then
|
||||
Me.index += 1
|
||||
End If
|
||||
|
||||
If Me.index < 0 Then
|
||||
Me.index = 2
|
||||
ElseIf Me.index > 2 Then
|
||||
Me.index = 0
|
||||
End If
|
||||
|
||||
If PokeSize < 128 Then
|
||||
PokeSize += 10
|
||||
End If
|
||||
If ItemSize > 0 Then
|
||||
ItemSize -= 10
|
||||
End If
|
||||
|
||||
If Controls.Dismiss(True, True) = True Then
|
||||
Core.SetScreen(Me.PreScreen)
|
||||
End If
|
||||
|
||||
If Controls.Accept(True, True) = True Then
|
||||
Select Case index
|
||||
Case 0
|
||||
Core.SetScreen(Me.PreScreen)
|
||||
Me.ChoosePokemon(Me.pokeIndex)
|
||||
Case 1
|
||||
Core.SetScreen(New PokemonStatusScreen(Me, Me.pokeIndex, {}, Core.Player.Pokemons(Me.pokeIndex), True))
|
||||
Case 2
|
||||
Core.SetScreen(Me.PreScreen)
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub Draw()
|
||||
PreScreen.Draw()
|
||||
|
||||
Canvas.DrawRectangle(New Rectangle(0, 0, Core.ScreenSize.Width, Core.ScreenSize.Height), New Color(0, 0, 0, 150))
|
||||
|
||||
DrawPreview()
|
||||
DrawMenuPokemon()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub DrawPreview() 'Draws the preview of the pokemon and it's holding item.
|
||||
Dim T As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
|
||||
Canvas.DrawImageBorder(T, 2, New Rectangle(CInt(Core.windowSize.Width / 2) - 70, 48, 96, 96))
|
||||
Core.SpriteBatch.Draw(Pokemon.GetTexture(True), New Rectangle(CInt(Core.windowSize.Width / 2) - 70, 32, PokeSize, PokeSize), Color.White)
|
||||
If Not Pokemon.Item Is Nothing Then
|
||||
Core.SpriteBatch.Draw(Pokemon.Item.Texture, New Rectangle(CInt(Core.windowSize.Width / 2) - 70, 64, ItemSize, ItemSize), Color.White)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DrawMenuPokemon()
|
||||
Dim T As Texture2D
|
||||
For i = 0 To 2
|
||||
Dim Text As String = "Pick"
|
||||
Select Case i
|
||||
Case 1
|
||||
Text = "Summary"
|
||||
Case 2
|
||||
Text = "Back"
|
||||
End Select
|
||||
|
||||
If i = index Then
|
||||
T = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 48, 48, 48), "")
|
||||
Else
|
||||
T = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
|
||||
End If
|
||||
|
||||
Canvas.DrawImageBorder(T, 2, New Rectangle(CInt(Core.windowSize.Width / 2) - 180, 180 + 128 * i, 320, 64))
|
||||
Core.SpriteBatch.DrawString(FontManager.InGameFont, Text, New Vector2(CInt(Core.windowSize.Width / 2) - CInt(FontManager.InGameFont.MeasureString(Text).X / 2) - 7, 215 + 128 * i), Color.Black)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
@ -3,6 +3,7 @@
|
||||
Inherits Screen
|
||||
|
||||
Private PokemonList As New List(Of Pokemon)
|
||||
Private AltPokemonList As New List(Of Pokemon)
|
||||
|
||||
Public Shared Selected As Integer = -1
|
||||
Public Shared Exited As Boolean = False
|
||||
@ -29,7 +30,7 @@
|
||||
Public LearnAttack As BattleSystem.Attack
|
||||
Public LearnType As Integer = 0
|
||||
|
||||
Public Sub New(ByVal currentScreen As Screen, ByVal Item As Item, ByVal ChoosePokemon As DoStuff, ByVal Title As String, ByVal canExit As Boolean, ByVal canChooseFainted As Boolean, ByVal canChooseEgg As Boolean)
|
||||
Public Sub New(ByVal currentScreen As Screen, ByVal Item As Item, ByVal ChoosePokemon As DoStuff, ByVal Title As String, ByVal canExit As Boolean, ByVal canChooseFainted As Boolean, ByVal canChooseEgg As Boolean, Optional ByVal _pokemonList As List(Of Pokemon) = Nothing)
|
||||
Me.PreScreen = currentScreen
|
||||
Me.Identification = Identifications.ChoosePokemonScreen
|
||||
|
||||
@ -50,6 +51,7 @@
|
||||
|
||||
Me.index = Player.Temp.PokemonScreenIndex
|
||||
Me.ChoosePokemon = ChoosePokemon
|
||||
Me.AltPokemonList = _pokemonList
|
||||
|
||||
GetPokemonList()
|
||||
End Sub
|
||||
@ -63,10 +65,15 @@
|
||||
End Sub
|
||||
|
||||
Private Sub GetPokemonList()
|
||||
Me.PokemonList.Clear()
|
||||
If AltPokemonList IsNot Nothing Then
|
||||
For Each p As Pokemon In AltPokemonList
|
||||
Me.PokemonList.Add(Pokemon.GetPokemonByData(p.GetSaveData()))
|
||||
Next
|
||||
Else
|
||||
For Each p As Pokemon In Core.Player.Pokemons
|
||||
Me.PokemonList.Add(Pokemon.GetPokemonByData(p.GetSaveData()))
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Overrides Sub Update()
|
||||
|
Loading…
x
Reference in New Issue
Block a user