mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-27 15:54:25 +02:00
Made GameMode Items able to start scripts on use
This commit is contained in:
parent
ac4e5801c2
commit
1467b907f4
@ -11,6 +11,7 @@ Public Class GameModeItem
|
|||||||
Public gmPrice As Integer = 0
|
Public gmPrice As Integer = 0
|
||||||
Public gmBattlePointsPrice As Integer = 1
|
Public gmBattlePointsPrice As Integer = 1
|
||||||
Public gmItemType As ItemTypes = ItemTypes.Standard
|
Public gmItemType As ItemTypes = ItemTypes.Standard
|
||||||
|
Public gmScriptPath As String = ""
|
||||||
|
|
||||||
Public gmCatchMultiplier As Single = 1.0F
|
Public gmCatchMultiplier As Single = 1.0F
|
||||||
Public gmMaxStack As Integer = 999
|
Public gmMaxStack As Integer = 999
|
||||||
@ -186,27 +187,39 @@ Public Class GameModeItem
|
|||||||
''' The item gets used from the bag.
|
''' The item gets used from the bag.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public Overrides Sub Use()
|
Public Overrides Sub Use()
|
||||||
|
If gmScriptPath = "" Then
|
||||||
|
If gmIsHealingItem = True Then
|
||||||
|
If CBool(GameModeManager.GetGameRuleValue("CanUseHealItems", "1")) = False Then
|
||||||
|
Screen.TextBox.Show("Cannot use heal items.", {}, False, False)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
||||||
|
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
||||||
|
|
||||||
If gmIsHealingItem = True Then
|
Core.SetScreen(selScreen)
|
||||||
If CBool(GameModeManager.GetGameRuleValue("CanUseHealItems", "1")) = False Then
|
ElseIf gmCureStatusEffects IsNot Nothing AndAlso gmCureStatusEffects.Count > 0 Then
|
||||||
Screen.TextBox.Show("Cannot use heal items.", {}, False, False)
|
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
||||||
|
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
||||||
|
|
||||||
|
Core.SetScreen(selScreen)
|
||||||
|
ElseIf gmIsEvolutionItem = True AndAlso gmEvolutionPokemon IsNot Nothing AndAlso gmEvolutionPokemon.Count > 0 Then
|
||||||
|
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
||||||
|
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
||||||
|
|
||||||
|
Core.SetScreen(selScreen)
|
||||||
|
CType(CurrentScreen, PartyScreen).EvolutionItemID = Me.gmID
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Dim s As Screen = Core.CurrentScreen
|
||||||
|
While Not s.PreScreen Is Nothing And s.Identification <> Screen.Identifications.OverworldScreen
|
||||||
|
s = s.PreScreen
|
||||||
|
End While
|
||||||
|
|
||||||
|
If s.Identification = Screen.Identifications.OverworldScreen Then
|
||||||
|
Core.SetScreen(s)
|
||||||
|
CType(Core.CurrentScreen, OverworldScreen).ActionScript.StartScript(gmScriptPath, 0, True, False)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
|
||||||
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
|
||||||
|
|
||||||
Core.SetScreen(selScreen)
|
|
||||||
ElseIf gmCureStatusEffects IsNot Nothing AndAlso gmCureStatusEffects.Count > 0 Then
|
|
||||||
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
|
||||||
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
|
||||||
|
|
||||||
Core.SetScreen(selScreen)
|
|
||||||
ElseIf gmIsEvolutionItem = True AndAlso gmEvolutionPokemon IsNot Nothing AndAlso gmEvolutionPokemon.Count > 0 Then
|
|
||||||
Dim selScreen = New PartyScreen(Core.CurrentScreen, Me, AddressOf Me.UseOnPokemon, "Use " & Me.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
|
||||||
AddHandler selScreen.SelectedObject, AddressOf UseItemhandler
|
|
||||||
|
|
||||||
Core.SetScreen(selScreen)
|
|
||||||
CType(CurrentScreen, PartyScreen).EvolutionItemID = Me.gmID
|
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -147,6 +147,8 @@ Public Class GameModeItemLoader
|
|||||||
Else
|
Else
|
||||||
item.gmEvolutionPokemon.AddRange(PokemonList)
|
item.gmEvolutionPokemon.AddRange(PokemonList)
|
||||||
End If
|
End If
|
||||||
|
Case "script"
|
||||||
|
item.gmScriptPath = value
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
Loading…
x
Reference in New Issue
Block a user