diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb index 88fb0f5cc..abda72495 100644 --- a/P3D/Battle/BattleSystemV2/Battle.vb +++ b/P3D/Battle/BattleSystemV2/Battle.vb @@ -1424,8 +1424,9 @@ Dim NoTargetCheck As Boolean = True If moveUsed.ProtectAffected = False Then NoTargetCheck = False + 'Moves that target other pokemon and can go through protect. Select Case moveUsed.Name.ToLower - Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "geomancy", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" + Case "acupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" NoTargetCheck = True End Select End If @@ -1470,11 +1471,13 @@ DoesNotMiss = True End If + 'if the target pokemon can't be hit because of a two-turn move (Fly, for example) Dim UseTwoTurnCheck As Boolean = True If moveUsed.ProtectAffected = False Then UseTwoTurnCheck = False + 'Moves that target other pokemon and can go through protect. Select Case moveUsed.Name.ToLower - Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "geomancy", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" + Case "acupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" UseTwoTurnCheck = True End Select End If diff --git a/P3D/Battle/BattleSystemV2/BattleCalculation.vb b/P3D/Battle/BattleSystemV2/BattleCalculation.vb index db3de55a2..3b64e9f46 100644 --- a/P3D/Battle/BattleSystemV2/BattleCalculation.vb +++ b/P3D/Battle/BattleSystemV2/BattleCalculation.vb @@ -461,6 +461,10 @@ Return True End If + If UsedAttack.GetUseAccEvasion(own, BattleScreen) = False Then + Return True + End If + Dim result As Single = 1.0F Dim INIT As Integer = UsedAttack.GetAccuracy(own, BattleScreen) @@ -484,10 +488,6 @@ Dim ACCM As Single = GetMultiplierFromAccEvasion(ACC) - If UsedAttack.GetUseAccEvasion(own, BattleScreen) = False Then - ACCM = 1.0F - End If - result = INIT * ACCM If Not op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not own) = True Then @@ -652,10 +652,10 @@ If Core.Random.Next(0, chance) = 0 Then Return True End If - If UsedAttack.ID = 524 Then + If UsedAttack.ID = 524 Then 'frost breath Return True End If - If UsedAttack.ID = 480 Then + If UsedAttack.ID = 480 Then 'storm throw Return True End If @@ -1580,10 +1580,6 @@ DSM = 1.0F End If - If Attack.ID = 663 Then 'Darkest Lariat - DSM = 1.0F - End If - If Attack.Name.ToLower() = "selfdestruct" Or Attack.Name.ToLower() = "explosion" Then SX = 1.0F End If @@ -1612,10 +1608,6 @@ DSM = 1.0F End If - If Attack.ID = 663 Then 'Darkest Lariat - DSM = 1.0F - End If - If Op.Ability.Name.ToLower() = "flower gift" Then If BattleScreen.FieldEffects.Weather = BattleWeather.WeatherTypes.Sunny Then DMod = 1.5F diff --git a/P3D/Battle/BattleSystemV2/FieldEffects.vb b/P3D/Battle/BattleSystemV2/FieldEffects.vb index 8702b970b..daaabc88d 100644 --- a/P3D/Battle/BattleSystemV2/FieldEffects.vb +++ b/P3D/Battle/BattleSystemV2/FieldEffects.vb @@ -52,7 +52,6 @@ Public OwnLeechSeed As Integer = 0 'The opponent used leech seed Public OwnSolarBeam As Integer = 0 'Charge counter for solar beam Public OwnSolarBlade As Integer = 0 'Charge counter for solar blade - Public OwnGeomancy As Integer = 0 'Charge counter for solar beam Public OwnLockOn As Integer = 0 'Counter for the moves lock-on and mind reader Public OwnBideCounter As Integer = 0 'Counter for the Bide move Public OwnBideDamage As Integer = 0 'Half of the damage dealt by bide @@ -182,7 +181,6 @@ Public OppLeechSeed As Integer = 0 Public OppSolarBeam As Integer = 0 Public OppSolarBlade As Integer = 0 - Public OppGeomancy As Integer = 0 Public OppLockOn As Integer = 0 Public OppBideCounter As Integer = 0 Public OppBideDamage As Integer = 0 diff --git a/P3D/Pokemon/Attacks/Bug/FellStinger.vb b/P3D/Pokemon/Attacks/Bug/FellStinger.vb index 9b1a19c7f..3b2c1d589 100644 --- a/P3D/Pokemon/Attacks/Bug/FellStinger.vb +++ b/P3D/Pokemon/Attacks/Bug/FellStinger.vb @@ -59,7 +59,7 @@ p = BattleScreen.OppPokemon op = BattleScreen.OwnPokemon End If - If op.HP = 0 Then + If op.HP <= 0 OrElse op.Status = Pokemon.StatusProblems.Fainted Then BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Attack", 3, "", "move:fellstinger") End If End Sub diff --git a/P3D/Pokemon/Attacks/Dark/DarkestLariat.vb b/P3D/Pokemon/Attacks/Dark/DarkestLariat.vb index c2590212a..6da626f34 100644 --- a/P3D/Pokemon/Attacks/Dark/DarkestLariat.vb +++ b/P3D/Pokemon/Attacks/Dark/DarkestLariat.vb @@ -50,6 +50,8 @@ Me.IsOneHitKOMove = False Me.IsWonderGuardAffected = True Me.IsJawMove = True + Me.UseOppEvasion = False + Me.UseOppDefense = False '#End Me.AIField1 = AIField.Damage diff --git a/P3D/Pokemon/Attacks/Fairy/Geomancy.vb b/P3D/Pokemon/Attacks/Fairy/Geomancy.vb index 8fdeb788b..792fe2ebc 100644 --- a/P3D/Pokemon/Attacks/Fairy/Geomancy.vb +++ b/P3D/Pokemon/Attacks/Fairy/Geomancy.vb @@ -56,80 +56,65 @@ Namespace BattleSystem.Moves.Fairy Me.AIField3 = AIField.CanRaiseSpeed End Sub - Public Overrides Sub PreAttack(Own As Boolean, BattleScreen As BattleScreen) - Dim Geomancy As Integer = BattleScreen.FieldEffects.OwnGeomancy - If Own = False Then - Geomancy = BattleScreen.FieldEffects.OppGeomancy - End If + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If Geomancy = 0 Then - Me.FocusOppPokemon = False - Else - Me.FocusOppPokemon = True - End If + BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Attack", 2, "", "move:geomancy") + BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 2, "", "move:geomancy") + BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Speed", 2, "", "move:geomancy") End Sub Public Overrides Function MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean Dim p As Pokemon = BattleScreen.OwnPokemon + Dim op As Pokemon = BattleScreen.OppPokemon If Own = False Then p = BattleScreen.OppPokemon + op = BattleScreen.OwnPokemon End If - Dim hasToCharge As Boolean = True - - Dim beam As Integer = BattleScreen.FieldEffects.OwnGeomancy + Dim geomancy As Integer = BattleScreen.FieldEffects.OwnGeomancyCounter If Own = False Then - beam = BattleScreen.FieldEffects.OppGeomancy + geomancy = BattleScreen.FieldEffects.OppGeomancyCounter End If - If beam = 0 Then - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is absorbing power!")) - Else - hasToCharge = False - End If - - If hasToCharge = True Then - If Not p.Item Is Nothing Then - If p.Item.Name.ToLower() = "power herb" And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then - If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "Power Herb pushed the use of Geomancy!", "move:geomancy") = True Then - hasToCharge = False - End If + If Not p.Item Is Nothing Then + If p.Item.Name.ToLower() = "power herb" And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then + If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "Power Herb pushed the use of Geomancy!", "move:geomancy") = True Then + geomancy = 1 End If End If End If - If hasToCharge = True Then + If geomancy = 0 Then + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is absorbing power!")) If Own = True Then - BattleScreen.FieldEffects.OwnGeomancy = 1 + BattleScreen.FieldEffects.OwnGeomancyCounter = 1 Else - BattleScreen.FieldEffects.OppGeomancy = 1 + BattleScreen.FieldEffects.OppGeomancyCounter = 1 End If Return True Else If Own = True Then - BattleScreen.FieldEffects.OwnGeomancy = 0 + BattleScreen.FieldEffects.OwnGeomancyCounter = 0 Else - BattleScreen.FieldEffects.OppGeomancy = 0 + BattleScreen.FieldEffects.OppGeomancyCounter = 0 End If Return False End If End Function - Public Overrides Sub MoveSelected(own As Boolean, BattleScreen As BattleScreen) If own = True Then - BattleScreen.FieldEffects.OwnGeomancy = 0 + BattleScreen.FieldEffects.OwnGeomancyCounter = 0 Else - BattleScreen.FieldEffects.OppGeomancy = 0 + BattleScreen.FieldEffects.OppGeomancyCounter = 0 End If End Sub - Public Overrides Function DeductPP(own As Boolean, BattleScreen As BattleScreen) As Boolean - Dim geomancy As Integer = BattleScreen.FieldEffects.OwnGeomancy + Dim geomancy As Integer = BattleScreen.FieldEffects.OwnGeomancyCounter If own = False Then - geomancy = BattleScreen.FieldEffects.OppGeomancy + geomancy = BattleScreen.FieldEffects.OppGeomancyCounter End If - If Geomancy = 0 Then + If geomancy = 0 Then Return False Else Return True @@ -138,33 +123,12 @@ Namespace BattleSystem.Moves.Fairy Private Sub MoveFails(own As Boolean, BattleScreen As BattleScreen) If own = True Then - BattleScreen.FieldEffects.OwnGeomancy = 0 + BattleScreen.FieldEffects.OwnGeomancyCounter = 0 Else - BattleScreen.FieldEffects.OppGeomancy = 0 + BattleScreen.FieldEffects.OppGeomancyCounter = 0 End If End Sub - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - Dim b As Boolean = BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Attack", 2, "", "move:geomancy") - Dim d As Boolean = BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 2, "", "move:geomancy") - Dim f As Boolean = BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Speed", 2, "", "move:geomancy") - If b = False And d = False And f = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - Public Overrides Sub MoveMisses(own As Boolean, BattleScreen As BattleScreen) - MoveFails(own, BattleScreen) - End Sub - - Public Overrides Sub AbsorbedBySubstitute(own As Boolean, BattleScreen As BattleScreen) - MoveFails(own, BattleScreen) - End Sub - - Public Overrides Sub MoveProtectedDetected(own As Boolean, BattleScreen As BattleScreen) - MoveFails(own, BattleScreen) - End Sub - Public Overrides Sub InflictedFlinch(own As Boolean, BattleScreen As BattleScreen) MoveFails(own, BattleScreen) End Sub @@ -180,7 +144,6 @@ Namespace BattleSystem.Moves.Fairy Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen) MoveFails(own, BattleScreen) End Sub - End Class End Namespace \ No newline at end of file diff --git a/P3D/Pokemon/Attacks/Fighting/RockSmash.vb b/P3D/Pokemon/Attacks/Fighting/RockSmash.vb index 53ac9143f..cd9e434cc 100644 --- a/P3D/Pokemon/Attacks/Fighting/RockSmash.vb +++ b/P3D/Pokemon/Attacks/Fighting/RockSmash.vb @@ -18,7 +18,7 @@ Me.Name = "Rock Smash" Me.Description = "The user attacks with a punch that can shatter a rock. It may also lower the target's Defense stat." Me.CriticalChance = 1 - Me.IsHMMove = True + Me.IsHMMove = False Me.Target = Targets.OneAdjacentTarget Me.Priority = 0 Me.TimesToAttack = 1 diff --git a/P3D/Pokemon/Attacks/Flying/DragonAscent.vb b/P3D/Pokemon/Attacks/Flying/DragonAscent.vb index 2bb9c6447..859db5471 100644 --- a/P3D/Pokemon/Attacks/Flying/DragonAscent.vb +++ b/P3D/Pokemon/Attacks/Flying/DragonAscent.vb @@ -53,11 +53,8 @@ End Sub Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - Dim b As Boolean = BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Defense", 1, "", "move:dragonascent") - Dim d As Boolean = BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Special Defense", 1, "", "move:dragonascent") - If b = False And d = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If + BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Defense", 1, "", "move:dragonascent") + BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Special Defense", 1, "", "move:dragonascent") End Sub End Class diff --git a/P3D/Pokemon/Attacks/Normal/TearfulLook.vb b/P3D/Pokemon/Attacks/Normal/TearfulLook.vb index c189e462f..e0037ebd4 100644 --- a/P3D/Pokemon/Attacks/Normal/TearfulLook.vb +++ b/P3D/Pokemon/Attacks/Normal/TearfulLook.vb @@ -56,11 +56,8 @@ End Sub Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - Dim b As Boolean = BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:tearfullook") - Dim d As Boolean = BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Special Attack", 1, "", "move:tearfullook") - If b = False AndAlso DisabledWhileGravity = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If + BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:tearfullook") + BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Special Attack", 1, "", "move:tearfullook") End Sub End Class diff --git a/P3D/Screens/Pokemon/SummaryScreen.vb b/P3D/Screens/Pokemon/SummaryScreen.vb index 17b570d0b..a70a0033a 100644 --- a/P3D/Screens/Pokemon/SummaryScreen.vb +++ b/P3D/Screens/Pokemon/SummaryScreen.vb @@ -512,7 +512,7 @@ Canvas.DrawRectangle(New Rectangle(DeltaX + 700, DeltaY + 76 + 32 * 2, 350, 32), New Color(0, 0, 0, CInt(100 * _interfaceFade * _pageFade * _moveFade))) Canvas.DrawRectangle(New Rectangle(DeltaX + 700, DeltaY + 76 + 32 * 3, 350, 32), New Color(0, 0, 0, CInt(70 * _interfaceFade * _pageFade * _moveFade))) Canvas.DrawRectangle(New Rectangle(DeltaX + 700, DeltaY + 76 + 32 * 4, 350, 32), New Color(0, 0, 0, CInt(100 * _interfaceFade * _pageFade * _moveFade))) - Canvas.DrawRectangle(New Rectangle(DeltaX + 700, DeltaY + 76 + 32 * 5, 350, 128), New Color(0, 0, 0, CInt(70 * _interfaceFade * _pageFade * _moveFade))) + Canvas.DrawRectangle(New Rectangle(DeltaX + 700, DeltaY + 76 + 32 * 5, 350, 160), New Color(0, 0, 0, CInt(70 * _interfaceFade * _pageFade * _moveFade))) 'Type: SpriteBatch.DrawString(FontManager.ChatFont, "Type:", New Vector2(DeltaX + 710, DeltaY + 80), New Color(255, 255, 255, CInt(220 * _interfaceFade * _pageFade * _moveFade))) @@ -543,7 +543,7 @@ SpriteBatch.DrawString(FontManager.ChatFont, accuracy, New Vector2(DeltaX + 824, DeltaY + 208), New Color(255, 255, 255, CInt(220 * _fadeIn * _pageFade * _moveFade))) 'Description: - SpriteBatch.DrawString(FontManager.ChatFont, .Attacks(_moveIndex).Description.CropStringToWidth(FontManager.ChatFont, 300), New Vector2(DeltaX + 720, DeltaY + 240), New Color(255, 255, 255, CInt(220 * _fadeIn * _pageFade * _moveFade))) + SpriteBatch.DrawString(FontManager.ChatFont, .Attacks(_moveIndex).Description.CropStringToWidth(FontManager.ChatFont, 300), New Vector2(DeltaX + 720, DeltaY + 240), New Color(255, 255, 255, CInt(220 * _fadeIn * _pageFade * _moveFade)), 0.0F, New Vector2(0), 1.0F, SpriteEffects.None, 0.0F) End With End Sub diff --git a/lib/build/Pokemon3D.exe b/lib/build/Pokemon3D.exe index d56fe6d3d..8caa1c87a 100644 Binary files a/lib/build/Pokemon3D.exe and b/lib/build/Pokemon3D.exe differ