From 4d36a5851b95a67e38de68f404d4f8e38eebc63a Mon Sep 17 00:00:00 2001 From: "Jasper \"JappaWakka\" Speelman" Date: Sat, 14 May 2022 16:07:32 +0200 Subject: [PATCH] Only allow switching when round is over Also fixed minor error with items in battle --- P3D/Battle/BattleSystemV2/Battle.vb | 2 +- P3D/Battle/BattleSystemV2/BattleScreen.vb | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb index 01cbb6b71..26f7fb639 100644 --- a/P3D/Battle/BattleSystemV2/Battle.vb +++ b/P3D/Battle/BattleSystemV2/Battle.vb @@ -7808,7 +7808,7 @@ Dim oppModel As String = BattleScreen.GetModelName(False) 'Switch BattleStyle - If Core.Player.BattleStyle <> 1 Then + If Core.Player.BattleStyle <> 1 And OppStep.StepType <> RoundConst.StepTypes.Switch Then BattleScreen.BattleQuery.Add(New SwitchPokemonQueryObject(BattleScreen, BattleScreen.OppPokemon)) ChangeCameraAngle(1, False, BattleScreen) End If diff --git a/P3D/Battle/BattleSystemV2/BattleScreen.vb b/P3D/Battle/BattleSystemV2/BattleScreen.vb index d6858cfb7..e49bd928d 100644 --- a/P3D/Battle/BattleSystemV2/BattleScreen.vb +++ b/P3D/Battle/BattleSystemV2/BattleScreen.vb @@ -1218,9 +1218,11 @@ nextIndex: hasLevelUp = True End If If IsRemoteBattle = True Or IsTrainerBattle = True Then - p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID) - p.Item.AdditionalData = p.OriginalItem.AdditionalData - Screen.TextBox.Show(Core.Player.Name & " received" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName) + If p.OriginalItem IsNot Nothing Then + p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID) + p.Item.AdditionalData = p.OriginalItem.AdditionalData + Screen.TextBox.Show(Core.Player.Name & " received" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName) + End If End If p.ResetTemp() Next @@ -1266,9 +1268,11 @@ nextIndex: Else For Each p As Pokemon In Core.Player.Pokemons If IsRemoteBattle = True Or IsTrainerBattle = True Then - p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID) - p.Item.AdditionalData = p.OriginalItem.AdditionalData - Screen.TextBox.Show(Core.Player.Name & " received~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName) + If p.OriginalItem IsNot Nothing Then + p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID) + p.Item.AdditionalData = p.OriginalItem.AdditionalData + Screen.TextBox.Show(Core.Player.Name & " received~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName) + End If End If p.ResetTemp() Next