Fix GM move functions not taking opp in account...

When a move with an effect used by an opponent pokémon, the effect target didn't get swapped.
This commit is contained in:
JappaWakka 2025-04-18 13:07:25 +02:00
parent 41c5d35864
commit 9a6a6d7999

View File

@ -19,6 +19,8 @@
Dim fMain As String = f Dim fMain As String = f
Dim fSub As String = "" Dim fSub As String = ""
Dim EffectTarget As Boolean = Not own
Select Case f.GetSplit(0, ",").ToLower Select Case f.GetSplit(0, ",").ToLower
Case "settrigger" Case "settrigger"
Trigger = f.GetSplit(1, ",") & "," & f.GetSplit(2, ",") Trigger = f.GetSplit(1, ",") & "," & f.GetSplit(2, ",")
@ -28,6 +30,9 @@
If Trigger <> "" Then If Trigger <> "" Then
Dim Target As Boolean = CBool(Trigger.GetSplit(0, ",")) Dim Target As Boolean = CBool(Trigger.GetSplit(0, ","))
If own = False Then
Target = Not Target
End If
Dim Triggers() As String = Trigger.GetSplit(1, ",").Split(";") Dim Triggers() As String = Trigger.GetSplit(1, ",").Split(";")
Dim Success As Boolean = False Dim Success As Boolean = False
For t = 0 To Triggers.Count - 1 For t = 0 To Triggers.Count - 1
@ -220,9 +225,15 @@
OppPokemon = BattleScreen.OwnPokemon OppPokemon = BattleScreen.OwnPokemon
End If End If
fSub = Localization.GetString(fSub, fSub).Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName) If own = True Then
fSub = Localization.GetString(fSub, fSub).Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
fSub = Localization.GetString(fSub, fSub).Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
BattleScreen.BattleQuery.Add(New TextQueryObject(fSub)) BattleScreen.BattleQuery.Add(New TextQueryObject(fSub))
Case "raisestat", "increasestat" Case "raisestat", "increasestat"
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
Dim Stat As String = f.GetSplit(1, ",") Dim Stat As String = f.GetSplit(1, ",")
Dim Target As Boolean = own Dim Target As Boolean = own
Dim Message As String = "" Dim Message As String = ""
@ -234,8 +245,17 @@
If f.GetSplit(2, ",") <> "" Then If f.GetSplit(2, ",") <> "" Then
Target = CBool(f.GetSplit(2, ",")) Target = CBool(f.GetSplit(2, ","))
End If End If
If own = False Then
Target = Not Target
End If
If f.Split(CChar(",")).Count > 3 Then If f.Split(CChar(",")).Count > 3 Then
Message = f.GetSplit(3, ",") Message = f.GetSplit(3, ",")
If own = True Then
Message = Message.Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = Message.Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
If f.Split(CChar(",")).Count > 4 Then If f.Split(CChar(",")).Count > 4 Then
If f.GetSplit(4, ",") <> "" Then If f.GetSplit(4, ",") <> "" Then
If CInt(f.GetSplit(4, ",")) > 0 Then If CInt(f.GetSplit(4, ",")) > 0 Then
@ -257,9 +277,11 @@
End If End If
RaiseStat(Move, own, Stat, Target, Message, RaiseAmount, Chance, FailMessage, BattleScreen) RaiseStat(Move, own, Stat, Target, Message, RaiseAmount, Chance, FailMessage, BattleScreen)
Case "lowerstat", "decreasestat" Case "lowerstat", "decreasestat"
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
Dim Stat As String = f.GetSplit(1, ",") Dim Stat As String = f.GetSplit(1, ",")
Dim Message As String = "" Dim Message As String = ""
Dim Target As Boolean = own Dim Target As Boolean = not own
Dim LowerAmount As Integer = 1 Dim LowerAmount As Integer = 1
Dim Chance As Integer = 100 Dim Chance As Integer = 100
Dim FailMessage As String = "" Dim FailMessage As String = ""
@ -268,8 +290,17 @@
If f.GetSplit(2, ",") <> "" Then If f.GetSplit(2, ",") <> "" Then
Target = CBool(f.GetSplit(2, ",")) Target = CBool(f.GetSplit(2, ","))
End If End If
If own = False Then
Target = Not Target
End If
If f.Split(CChar(",")).Count > 3 Then If f.Split(CChar(",")).Count > 3 Then
Message = f.GetSplit(3, ",") Message = f.GetSplit(3, ",")
If own = True Then
Message = Message.Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = Message.Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
If f.Split(CChar(",")).Count > 4 Then If f.Split(CChar(",")).Count > 4 Then
If f.GetSplit(4, ",") <> "" Then If f.GetSplit(4, ",") <> "" Then
If CInt(f.GetSplit(4, ",")) > 0 Then If CInt(f.GetSplit(4, ",")) > 0 Then
@ -293,7 +324,13 @@
End If End If
LowerStat(Move, own, Stat, Target, Message, LowerAmount, Chance, FailMessage, BattleScreen) LowerStat(Move, own, Stat, Target, Message, LowerAmount, Chance, FailMessage, BattleScreen)
Case "reducehp", "drainhp", "damage" Case "reducehp", "drainhp", "damage"
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
Dim Target As Boolean = CBool(f.GetSplit(1, ",")) Dim Target As Boolean = CBool(f.GetSplit(1, ","))
If own = False Then
Target = Not Target
End If
Dim HPAmount As Integer = 0 Dim HPAmount As Integer = 0
Dim Message As String = "" Dim Message As String = ""
@ -301,11 +338,22 @@
HPAmount = CInt(f.GetSplit(2, ",")) HPAmount = CInt(f.GetSplit(2, ","))
If f.Split(CChar(",")).Count > 3 Then If f.Split(CChar(",")).Count > 3 Then
Message = f.GetSplit(3, ",") Message = f.GetSplit(3, ",")
If own = True Then
Message = Message.Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = Message.Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
End If End If
End If End If
BattleScreen.Battle.ReduceHP(HPAmount, Target, own, BattleScreen, Message, "move:" & Move.Name.ToLower) BattleScreen.Battle.ReduceHP(HPAmount, Target, own, BattleScreen, Message, "move:" & Move.Name.ToLower)
Case "gainhp", "increasehp", "heal" Case "gainhp", "increasehp", "heal"
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
Dim Target As Boolean = CBool(f.GetSplit(1, ",")) Dim Target As Boolean = CBool(f.GetSplit(1, ","))
If own = False Then
Target = Not Target
End If
Dim HPAmount As Integer = 0 Dim HPAmount As Integer = 0
Dim Message As String = "" Dim Message As String = ""
@ -313,6 +361,11 @@
HPAmount = CInt(f.GetSplit(2, ",")) HPAmount = CInt(f.GetSplit(2, ","))
If f.Split(CChar(",")).Count > 3 Then If f.Split(CChar(",")).Count > 3 Then
Message = f.GetSplit(3, ",") Message = f.GetSplit(3, ",")
If own = True Then
Message = Message.Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = Message.Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
End If End If
End If End If
BattleScreen.Battle.GainHP(HPAmount, Target, own, BattleScreen, Message, "move:" & Move.Name.ToLower) BattleScreen.Battle.GainHP(HPAmount, Target, own, BattleScreen, Message, "move:" & Move.Name.ToLower)
@ -325,11 +378,16 @@
BattleScreen.BattleQuery.Add(New EndBattleQueryObject(Blackout)) BattleScreen.BattleQuery.Add(New EndBattleQueryObject(Blackout))
Case "faint" Case "faint"
Dim Target As Boolean = CBool(f.GetSplit(1, ",")) Dim Target As Boolean = CBool(f.GetSplit(1, ","))
If own = False Then
Target = Not Target
End If
Dim Message As String = "" Dim Message As String = ""
Dim NextPokemonIndex As Integer = -1 Dim NextPokemonIndex As Integer = -1
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
If Target = False Then If Target = False Then
OwnPokemon = BattleScreen.OppPokemon OwnPokemon = BattleScreen.OppPokemon
OppPokemon = BattleScreen.OwnPokemon OppPokemon = BattleScreen.OwnPokemon
@ -348,16 +406,27 @@
BattleScreen.NextPokemonIndex = NextPokemonIndex BattleScreen.NextPokemonIndex = NextPokemonIndex
If f.Split(CChar(",")).Count > 2 Then If f.Split(CChar(",")).Count > 2 Then
Message = f.GetSplit(2, ",").Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName) If own = True Then
Message = f.GetSplit(2, ",").Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = f.GetSplit(2, ",").Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
End If End If
BattleScreen.Battle.FaintPokemon(Not Target, BattleScreen, Message) BattleScreen.Battle.FaintPokemon(Not Target, BattleScreen, Message)
Case "switch" Case "switch"
Dim OppPokemon As Pokemon = BattleScreen.OppPokemon
Dim OwnPokemon As Pokemon = BattleScreen.OwnPokemon
Dim Target As Boolean = CBool(f.GetSplit(1, ",")) Dim Target As Boolean = CBool(f.GetSplit(1, ","))
Dim SwitchTo As Integer = 0 Dim SwitchTo As Integer = 0
Dim Message As String = "" Dim Message As String = ""
If f.Split(CChar(",")).Count > 3 Then If f.Split(CChar(",")).Count > 3 Then
Message = f.GetSplit(3, ",") Message = f.GetSplit(3, ",")
If own = True Then
Message = Message.Replace("[OPPNAME]", OppPokemon.GetDisplayName).Replace("[OWNNAME]", OwnPokemon.GetDisplayName)
Else
Message = Message.Replace("[OWNNAME]", OppPokemon.GetDisplayName).Replace("[OPPNAME]", OwnPokemon.GetDisplayName)
End If
End If End If
If Target = True Then If Target = True Then
If f.GetSplit(2, ",").StartsWith("~+") Then If f.GetSplit(2, ",").StartsWith("~+") Then
@ -381,8 +450,14 @@
If f.Split(CChar(",")).Count > 2 Then If f.Split(CChar(",")).Count > 2 Then
fSub &= "," & f.GetSplit(2, ",") fSub &= "," & f.GetSplit(2, ",")
End If End If
If f.Split(CChar(",")).Count > 3 Then
EffectTarget = CBool(f.GetSplit(3, ","))
End If
Case Else Case Else
fSub = CInt(f.GetSplit(1, ",")).Clamp(0, 100).ToString fSub = CInt(f.GetSplit(1, ",")).Clamp(0, 100).ToString
If f.Split(CChar(",")).Count > 2 Then
EffectTarget = CBool(f.GetSplit(2, ","))
End If
End Select End Select
Else Else
Select Case f.ToLower() Select Case f.ToLower()
@ -403,50 +478,52 @@
End Select End Select
End If End If
If own = False Then
EffectTarget = Not EffectTarget
End If
Select Case fMain.ToLower() Select Case fMain.ToLower()
Case "flinch" Case "flinch"
Flinch(Move, own, BattleScreen, CInt(fSub)) Flinch(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "randomstatus" Case "randomstatus"
Dim chance As Integer = CInt(fSub.GetSplit(0, ",")) Dim chance As Integer = CInt(fSub.GetSplit(0, ","))
Dim withoutBadPoison As Boolean = False Dim withoutBadPoison As Boolean = False
If fSub.Contains(",") Then If fSub.Contains(",") Then
withoutBadPoison = CBool(fSub.GetSplit(1, ",")) withoutBadPoison = CBool(fSub.GetSplit(1, ","))
End If End If
Dim randomNumber As Integer = Core.Random.Next(0, 7) Dim randomNumber As Integer = Core.Random.Next(0, 7)
If withoutBadPoison = True Then If withoutBadPoison = True Then
randomNumber = Core.Random.Next(0, 6) randomNumber = Core.Random.Next(0, 6)
End If End If
Select Case randomNumber Select Case randomNumber
Case 0 Case 0
Paralyze(Move, own, BattleScreen, CInt(fSub)) Paralyze(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 1 Case 1
Poison(Move, own, BattleScreen, CInt(fSub)) Poison(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 2 Case 2
Burn(Move, own, BattleScreen, CInt(fSub)) Burn(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 3 Case 3
Freeze(Move, own, BattleScreen, CInt(fSub)) Freeze(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 4 Case 4
Sleep(Move, own, BattleScreen, CInt(fSub)) Sleep(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 5 Case 5
Confuse(Move, own, BattleScreen, CInt(fSub)) Confuse(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case 6 Case 6
BadPoison(Move, own, BattleScreen, CInt(fSub)) BadPoison(Move, own, EffectTarget, BattleScreen, CInt(fSub))
End Select End Select
Case "paralyze" Case "paralyze"
Paralyze(Move, own, BattleScreen, CInt(fSub)) Paralyze(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "poison" Case "poison"
Poison(Move, own, BattleScreen, CInt(fSub)) Poison(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "toxic", "badpoison" Case "toxic", "badpoison"
BadPoison(Move, own, BattleScreen, CInt(fSub)) BadPoison(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "burn" Case "burn"
Burn(Move, own, BattleScreen, CInt(fSub)) Burn(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "freeze" Case "freeze"
Freeze(Move, own, BattleScreen, CInt(fSub)) Freeze(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "sleep" Case "sleep"
Sleep(Move, own, BattleScreen, CInt(fSub)) Sleep(Move, own, EffectTarget, BattleScreen, CInt(fSub))
Case "confuse" Case "confuse"
Confuse(Move, own, BattleScreen, CInt(fSub)) Confuse(Move, own, EffectTarget, BattleScreen, CInt(fSub))
End Select End Select
End If End If
Next Next
@ -457,12 +534,12 @@
End Function End Function
Private Shared Sub LowerStat(ByVal Move As Attack, own As Boolean, Stat As String, Target As Boolean, Message As String, LowerAmount As Integer, Chance As Integer, FailMessage As String, ByVal BattleScreen As BattleScreen) Private Shared Sub LowerStat(ByVal Move As Attack, own As Boolean, Stat As String, Target As Boolean, Message As String, LowerAmount As Integer, Chance As Integer, FailMessage As String, ByVal BattleScreen As BattleScreen)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.LowerStat(Target, own, BattleScreen, Stat, LowerAmount, Message, "move:" & Move.Name, True) = False Then If BattleScreen.Battle.LowerStat(Not Target, own, BattleScreen, Stat, LowerAmount, Message, "move:" & Move.Name.ToLower, True) = False Then
If Move.Category = Attack.Categories.Status Then If Move.Category = Attack.Categories.Status Then
If FailMessage = "" Then If FailMessage = "" Then
BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
Else Else
BattleScreen.BattleQuery.Add(New TextQueryObject(FailMessage.Replace("<movename>", Move.Name))) BattleScreen.BattleQuery.Add(New TextQueryObject(FailMessage.Replace("[MOVENAME]", Move.Name)))
End If End If
End If End If
End If End If
@ -470,74 +547,74 @@
End Sub End Sub
Private Shared Sub RaiseStat(ByVal Move As Attack, own As Boolean, Stat As String, Target As Boolean, Message As String, RaiseAmount As Integer, Chance As Integer, FailMessage As String, ByVal BattleScreen As BattleScreen) Private Shared Sub RaiseStat(ByVal Move As Attack, own As Boolean, Stat As String, Target As Boolean, Message As String, RaiseAmount As Integer, Chance As Integer, FailMessage As String, ByVal BattleScreen As BattleScreen)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.RaiseStat(Target, own, BattleScreen, Stat, RaiseAmount, Message, "move:" & Move.Name, True) = False Then If BattleScreen.Battle.RaiseStat(Not Target, own, BattleScreen, Stat, RaiseAmount, Message, "move:" & Move.Name.ToLower, True) = False Then
If Move.Category = Attack.Categories.Status Then If Move.Category = Attack.Categories.Status Then
If FailMessage = "" Then If FailMessage = "" Then
BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
Else Else
BattleScreen.BattleQuery.Add(New TextQueryObject(FailMessage.Replace("<movename>", Move.Name))) BattleScreen.BattleQuery.Add(New TextQueryObject(FailMessage.Replace("[MOVENAME]", Move.Name)))
End If End If
End If End If
End If End If
End If End If
End Sub End Sub
Private Shared Sub Flinch(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Flinch(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
BattleScreen.Battle.InflictFlinch(Not own, own, BattleScreen, "", "move:" & Move.Name.ToLower()) BattleScreen.Battle.InflictFlinch(Not Target, own, BattleScreen, "", "move:" & Move.Name.ToLower())
End If End If
End Sub End Sub
Private Shared Sub Paralyze(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Paralyze(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictParalysis(Not own, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictParalysis(Not Target, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub Confuse(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Confuse(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictConfusion(Not own, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictConfusion(Not Target, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub Burn(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Burn(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictBurn(Not own, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictBurn(Not Target, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub Sleep(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Sleep(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictSleep(Not Target, own, BattleScreen, -1, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub Freeze(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Freeze(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictFreeze(Not own, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictFreeze(Not Target, own, BattleScreen, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub Poison(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub Poison(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, False, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictPoison(Not Target, own, BattleScreen, False, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If
End Sub End Sub
Private Shared Sub BadPoison(ByVal Move As Attack, ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer) Private Shared Sub BadPoison(ByVal Move As Attack, ByVal own As Boolean, Target As Boolean, ByVal BattleScreen As BattleScreen, Chance As Integer)
If GetEffectChanceResult(Move, Chance) = True Then If GetEffectChanceResult(Move, Chance) = True Then
If BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, True, "", "move:" & Move.Name.ToLower()) = False Then If BattleScreen.Battle.InflictPoison(Not Target, own, BattleScreen, True, "", "move:" & Move.Name.ToLower()) = False Then
If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!")) If Move.Category = Attack.Categories.Status Then BattleScreen.BattleQuery.Add(New TextQueryObject(Move.Name & " failed!"))
End If End If
End If End If