Added Harder Difficulty Gamerules + Fix OW Poison

This commit is contained in:
JappaWakka 2023-01-13 17:35:54 +01:00
parent 2de791ab2b
commit 4054e7bcaa
2 changed files with 44 additions and 13 deletions

View File

@ -1891,6 +1891,14 @@
End If End If
Next Next
If CInt(GameModeManager.GetGameRuleValue("OverworldPoison", "0")) = 1 Then If CInt(GameModeManager.GetGameRuleValue("OverworldPoison", "0")) = 1 Then
For i = 0 To Core.Player.Pokemons.Count - 1
If Core.Player.Pokemons(i).HP <= 1 Then
Core.Player.Pokemons(i).Status = Pokemon.StatusProblems.None
Core.Player.Pokemons(i).HP = 1
Screen.TextBox.Show(Core.Player.Pokemons(i).GetDisplayName & " was cured of Poison.")
End If
Next
ElseIf CInt(GameModeManager.GetGameRuleValue("OverworldPoison", "0")) = 2 Then
For i = 0 To Core.Player.Pokemons.Count - 1 For i = 0 To Core.Player.Pokemons.Count - 1
If Core.Player.Pokemons(i).HP <= 0 Then If Core.Player.Pokemons(i).HP <= 0 Then
Core.Player.Pokemons(i).Status = Pokemon.StatusProblems.Fainted Core.Player.Pokemons(i).Status = Pokemon.StatusProblems.Fainted
@ -1900,14 +1908,6 @@
Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New BlackOutScreen(Core.CurrentScreen), Color.Black, False)) Core.SetScreen(New TransitionScreen(Core.CurrentScreen, New BlackOutScreen(Core.CurrentScreen), Color.Black, False))
End If End If
Next Next
ElseIf CInt(GameModeManager.GetGameRuleValue("OverworldPoison", "0")) = 2 Then
For i = 0 To Core.Player.Pokemons.Count - 1
If Core.Player.Pokemons(i).HP <= 1 Then
Core.Player.Pokemons(i).Status = Pokemon.StatusProblems.None
Core.Player.Pokemons(i).HP = 1
Screen.TextBox.Show(Core.Player.Pokemons(i).GetDisplayName & " was cured of Poison.")
End If
Next
End If End If
End If End If
End If End If

View File

@ -142,6 +142,7 @@ Public Class GameModeManager
Return ActiveGameMode.GameRules Return ActiveGameMode.GameRules
End Function End Function
''' <summary> ''' <summary>
''' Returns the Value of a chosen GameRule from the currently active GameMode. ''' Returns the Value of a chosen GameRule from the currently active GameMode.
''' </summary> ''' </summary>
@ -383,7 +384,7 @@ Public Class GameMode
''' <param name="SkinFiles">The skin files for the new GameMode. Must be the same amount as SkinColors and SkinNames.</param> ''' <param name="SkinFiles">The skin files for the new GameMode. Must be the same amount as SkinColors and SkinNames.</param>
''' <param name="SkinNames">The skin names for the new GameMode. Must be the same amount as SkinFiles and SkinColors.</param> ''' <param name="SkinNames">The skin names for the new GameMode. Must be the same amount as SkinFiles and SkinColors.</param>
''' <param name="SkinGenders">The skin names for the new GameMode. Must be the same amount as SkinFiles and SkinColors.</param> ''' <param name="SkinGenders">The skin names for the new GameMode. Must be the same amount as SkinFiles and SkinColors.</param>
Public Sub New(ByVal Name As String, ByVal Description As String, ByVal Version As String, ByVal Author As String, ByVal MapPath As String, ByVal ScriptPath As String, ByVal PokeFilePath As String, ByVal PokemonDataPath As String, ByVal ContentPath As String, ByVal LocalizationsPath As String, ByVal GameRules As List(Of GameRule), Public Sub New(ByVal Name As String, ByVal Description As String, ByVal Version As String, ByVal Author As String, ByVal MapPath As String, ByVal ScriptPath As String, ByVal PokeFilePath As String, ByVal PokemonDataPath As String, ByVal ContentPath As String, ByVal LocalizationsPath As String, ByVal GameRules As List(Of GameRule), ByVal HardGameRules As List(Of GameRule),
ByVal StartMap As String, ByVal StartPosition As Vector3, ByVal StartRotation As Single, ByVal StartLocationName As String, ByVal StartDialogue As String, ByVal StartColor As Color, ByVal PokemonAppear As String, ByVal IntroMusic As String, ByVal IntroType As String, ByVal SkinColors As List(Of Color), ByVal SkinFiles As List(Of String), ByVal SkinNames As List(Of String), ByVal SkinGenders As List(Of String)) ByVal StartMap As String, ByVal StartPosition As Vector3, ByVal StartRotation As Single, ByVal StartLocationName As String, ByVal StartDialogue As String, ByVal StartColor As Color, ByVal PokemonAppear As String, ByVal IntroMusic As String, ByVal IntroType As String, ByVal SkinColors As List(Of Color), ByVal SkinFiles As List(Of String), ByVal SkinNames As List(Of String), ByVal SkinGenders As List(Of String))
Me._name = Name Me._name = Name
Me._description = Description Me._description = Description
@ -396,6 +397,7 @@ Public Class GameMode
Me._contentPath = ContentPath Me._contentPath = ContentPath
Me._localizationsPath = LocalizationsPath Me._localizationsPath = LocalizationsPath
Me._gameRules = GameRules Me._gameRules = GameRules
Me._hardGameRules = HardGameRules
Me._startMap = StartMap Me._startMap = StartMap
Me._startPosition = StartPosition Me._startPosition = StartPosition
@ -455,6 +457,22 @@ Public Class GameMode
rule = rule.Remove(0, 1) rule = rule.Remove(0, 1)
_gameRules.Add(New GameRule(rule.GetSplit(0, "|"), rule.GetSplit(1, "|"))) _gameRules.Add(New GameRule(rule.GetSplit(0, "|"), rule.GetSplit(1, "|")))
_hardGameRules.Add(New GameRule(rule.GetSplit(0, "|"), rule.GetSplit(1, "|")))
End If
Next
End If
Case "hardgamerules"
If Value <> "" And Value.Contains("(") And Value.Contains(")") And Value.Contains("|") = True Then
Dim rules() As String = Value.Split(CChar(")"))
For Each rule As String In rules
If rule.StartsWith("(") = True Then
rule = rule.Remove(0, 1)
For Each HardRule As GameRule In _hardGameRules
If HardRule.RuleName.ToLower = rule.GetSplit(0, "|").ToLower Then
_hardGameRules.Remove(HardRule)
End If
Next
_hardGameRules.Add(New GameRule(rule.GetSplit(0, "|"), rule.GetSplit(1, "|")))
End If End If
Next Next
End If End If
@ -568,7 +586,7 @@ Public Class GameMode
Dim SkinNames As List(Of String) = {"Ethan", "Lyra", "Nate", "Rosa", "Hilbert", "Hilda"}.ToList() Dim SkinNames As List(Of String) = {"Ethan", "Lyra", "Nate", "Rosa", "Hilbert", "Hilda"}.ToList()
Dim SkinGenders As List(Of String) = {"Male", "Female", "Male", "Female", "Male", "Female"}.ToList() Dim SkinGenders As List(Of String) = {"Male", "Female", "Male", "Female", "Male", "Female"}.ToList()
Dim gameMode As New GameMode("Kolben", "The normal game mode.", GameController.GAMEVERSION, "Kolben Games", "\Content\Data\maps\", "\Content\Data\Scripts\", "\Content\Data\maps\poke\", "\Content\Pokemon\Data\", "\Content\", "\Content\Localization\", New List(Of GameRule), Dim gameMode As New GameMode("Kolben", "The normal game mode.", GameController.GAMEVERSION, "Kolben Games", "\Content\Data\maps\", "\Content\Data\Scripts\", "\Content\Data\maps\poke\", "\Content\Pokemon\Data\", "\Content\", "\Content\Localization\", New List(Of GameRule), New List(Of GameRule),
"newgame\intro0.dat", New Vector3(1.0F, 0.1F, 3.0F), MathHelper.PiOver2, "Your Room", "", New Color(59, 123, 165), "0", "welcome", "1", SkinColors, SkinFiles, SkinNames, SkinGenders) "newgame\intro0.dat", New Vector3(1.0F, 0.1F, 3.0F), MathHelper.PiOver2, "Your Room", "", New Color(59, 123, 165), "0", "welcome", "1", SkinColors, SkinFiles, SkinNames, SkinGenders)
gameMode.StartScript = "startscript\main" gameMode.StartScript = "startscript\main"
@ -587,8 +605,12 @@ Public Class GameMode
gameRules.Add(New GameRule("OverworldPoison", "0")) gameRules.Add(New GameRule("OverworldPoison", "0"))
gameRules.Add(New GameRule("SavingDisabled", "0")) gameRules.Add(New GameRule("SavingDisabled", "0"))
gameMode.GameRules = gameRules gameMode._gameRules = gameRules
Dim hardGameRules As New List(Of GameRule)
hardGameRules.Add(New GameRule("OverworldPoison", "1"))
gameMode._hardGameRules = hardGameRules
Return gameMode Return gameMode
End Function End Function
@ -719,6 +741,7 @@ Public Class GameMode
Private _localizationsPath As String = "" Private _localizationsPath As String = ""
Private _contentPath As String = "" Private _contentPath As String = ""
Private _gameRules As New List(Of GameRule) Private _gameRules As New List(Of GameRule)
Private _hardGameRules As New List(Of GameRule)
''' <summary> ''' <summary>
''' The name of this GameMode. ''' The name of this GameMode.
@ -845,10 +868,18 @@ Public Class GameMode
''' </summary> ''' </summary>
Public Property GameRules() As List(Of GameRule) Public Property GameRules() As List(Of GameRule)
Get Get
If Core.Player.DifficultyMode > 0 Then
Return Me._hardGameRules
Else
Return Me._gameRules Return Me._gameRules
End If
End Get End Get
Set(value As List(Of GameRule)) Set(value As List(Of GameRule))
If Core.Player.DifficultyMode > 0 Then
Me._hardGameRules = value
Else
Me._gameRules = value Me._gameRules = value
End If
End Set End Set
End Property End Property