Added new Level Action tag "SurfingBattleMap". More info below:

{"SurfingBattleMap"{str[MapName]}}
{"SurfingBattleMap"{str[MapName,x,y,z]}} <= x,y,z is the offset of the map.
This commit is contained in:
jianmingyong 2016-11-11 17:21:43 +08:00
parent 220cac3a26
commit 9709404c56
3 changed files with 37 additions and 10 deletions

View File

@ -725,6 +725,7 @@
Dim levelfile As String = SavedOverworld.Level.LevelFile
Dim cRegion As String = SavedOverworld.Level.CurrentRegion.Split(CChar(","))(0)
Dim battleMapData() As String = SavedOverworld.Level.BattleMapData.Split(CChar(","))
Dim surfingBattleMapData() As String = SavedOverworld.Level.SurfingBattleMapData.Split(CChar(","))
If Me.IsPVPBattle = True Then
levelfile = "pvp.dat"
@ -741,7 +742,7 @@
End Select
End If
If System.IO.File.Exists(GameController.GamePath & "\maps\battle\" & levelfile) = False And System.IO.File.Exists(GameController.GamePath & GameModeManager.ActiveGameMode.MapPath & "battle\" & levelfile) = False Then
If File.Exists(GameController.GamePath & "\maps\battle\" & levelfile) = False And File.Exists(GameController.GamePath & GameModeManager.ActiveGameMode.MapPath & "battle\" & levelfile) = False Then
Select Case Me.defaultMapType
Case 0
levelfile = cRegion & "0.dat"
@ -754,13 +755,27 @@
End If
If SavedOverworld.Level.Surfing = True Then
levelfile = cRegion & "1.dat"
DiveBattle = True
BattleMapOffset = New Vector3(0)
If SavedOverworld.Level.SurfingBattleMapData <> "" Then
Select Case surfingBattleMapData.Length
Case 1
levelfile = surfingBattleMapData(0)
Case 4
levelfile = surfingBattleMapData(0)
BattleMapOffset = New Vector3(CSng(surfingBattleMapData(1).Replace(".", GameController.DecSeparator)), CSng(surfingBattleMapData(2).Replace(".", GameController.DecSeparator)), CSng(surfingBattleMapData(3).Replace(".", GameController.DecSeparator)))
Case Else
levelfile = cRegion & "1.dat"
BattleMapOffset = New Vector3(0)
End Select
DiveBattle = True
Else
levelfile = cRegion & "1.dat"
DiveBattle = True
BattleMapOffset = New Vector3(0)
End If
End If
End If
If System.IO.File.Exists(GameController.GamePath & "\maps\battle\" & levelfile) = False And System.IO.File.Exists(GameController.GamePath & GameModeManager.ActiveGameMode.MapPath & "battle\" & levelfile) = False Then
If File.Exists(GameController.GamePath & "\maps\battle\" & levelfile) = False And File.Exists(GameController.GamePath & GameModeManager.ActiveGameMode.MapPath & "battle\" & levelfile) = False Then
Select Case Me.defaultMapType
Case 0
levelfile = "battle0.dat"
@ -1119,22 +1134,22 @@ nextIndex:
Public Sub SendInNewTrainerPokemon(ByVal index As Integer)
Dim i As Integer = index
If i = -1 Then
If IsPvPBattle Then
If IsPVPBattle Then
i = 0
While Trainer.Pokemons(i).Status = Pokemon.StatusProblems.Fainted OrElse OppPokemonIndex = i OrElse Trainer.Pokemons(i).HP <= 0
i += 1
End While
Else
i = Core.Random.Next(0, Trainer.Pokemons.count)
While Trainer.Pokemons(i).Status = Pokemon.StatusProblems.Fainted OrElse OppPokemonIndex = i OrElse Trainer.Pokemons(i).HP <= 0
i = Core.Random.Next(0, Trainer.Pokemons.count)
End While
End If
End If
End If
OppPokemonIndex = i
OppPokemon = Trainer.Pokemons(i)

View File

@ -513,6 +513,12 @@ Public Class Level
End Set
End Property
''' <summary>
''' Used to modify the Battle Map.
''' </summary>
''' <remarks>Data: MapName,x,y,z OR Mapname OR empty</remarks>
Public Property SurfingBattleMapData As String
''' <summary>
''' The instance of the World class, handling time, season and weather based operations.
''' </summary>

View File

@ -1040,6 +1040,12 @@
Screen.Level.BattleMapData = ""
End If
If TagExists(Tags, "SurfingBattleMap") = True Then
Screen.Level.SurfingBattleMapData = CStr(GetTag(Tags, "SurfingBattleMap"))
Else
Screen.Level.SurfingBattleMapData = ""
End If
Screen.Level.World = New World(Screen.Level.EnvironmentType, Screen.Level.WeatherType)
End Sub