diff --git a/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb b/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb index f59d7981e..fa4aac5b0 100644 --- a/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb +++ b/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb @@ -2266,7 +2266,7 @@ If own = False Then substitute = BattleScreen.FieldEffects.OppSubstitute End If - If substitute > 0 Then + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute took the burn.")) Return False @@ -2362,7 +2362,7 @@ If own = False Then substitute = BattleScreen.FieldEffects.OppSubstitute End If - If substitute > 0 Then + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute took the freeze effect.")) Return False @@ -2474,7 +2474,7 @@ If own = False Then substitute = BattleScreen.FieldEffects.OppSubstitute End If - If substitute > 0 Then + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute took the paralysis.")) Return False @@ -2577,7 +2577,7 @@ If own = False Then substitute = BattleScreen.FieldEffects.OppSubstitute End If - If substitute > 0 Then + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute took the sleep effect.")) Return False @@ -2699,7 +2699,7 @@ If own = False Then substitute = BattleScreen.FieldEffects.OppSubstitute End If - If substitute > 0 Then + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute took the poison.")) Return False @@ -2806,8 +2806,15 @@ End If Dim confusionTurns As Integer = Core.Random.Next(1, 5) - - If p.Ability.Name.ToLower() = "own tempo" And BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen) = True Then + Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute + If own = False Then + substitute = BattleScreen.FieldEffects.OppSubstitute + End If + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then + Me.ChangeCameraAngel(1, own, BattleScreen) + BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute prevented the confusion.")) + Return False + ElseIf p.Ability.Name.ToLower() = "own tempo" And BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen) = True Then Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("Own Tempo prevented the confusion.")) Return False @@ -2886,6 +2893,16 @@ End If End If + Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute + If own = False Then + substitute = BattleScreen.FieldEffects.OppSubstitute + End If + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then + Me.ChangeCameraAngel(1, own, BattleScreen) + BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute prevented the stat change.")) + Return False + End If + If p.Ability.Name.ToLower() = "contrary" And BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen) = True Then If cause <> "contrary" Then Return LowerStat(own, own, BattleScreen, Stat, val, message & vbNewLine & "Contrary reverted the stat change!", "contrary") @@ -3093,6 +3110,16 @@ End If End If + Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute + If own = False Then + substitute = BattleScreen.FieldEffects.OppSubstitute + End If + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then + Me.ChangeCameraAngel(1, own, BattleScreen) + BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute prevented the stat change.")) + Return False + End If + If p.Ability.Name.ToLower() = "contrary" And BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen) = True Then If cause <> "contrary" Then Return RaiseStat(own, own, BattleScreen, Stat, val, message & vbNewLine & "Contrary reverted the stat change!", "contrary") @@ -3349,6 +3376,15 @@ Me.ChangeCameraAngel(1, own, BattleScreen) BattleScreen.BattleQuery.Add(New TextQueryObject("Oblivious prevented the infatuation.")) Return False + End If + Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute + If own = False Then + substitute = BattleScreen.FieldEffects.OppSubstitute + End If + If substitute > 0 And op.Ability.Name.ToLower() <> "infiltrator" And from <> own Then + Me.ChangeCameraAngel(1, own, BattleScreen) + BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute prevented the infatuation.")) + Return False Else Me.ChangeCameraAngel(1, own, BattleScreen) Select Case message