diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb index f840a161e..f2a28e4bf 100644 --- a/P3D/Battle/BattleSystemV2/Battle.vb +++ b/P3D/Battle/BattleSystemV2/Battle.vb @@ -1642,6 +1642,12 @@ Dim damage As Integer = BattleCalculation.CalculateDamage(a, False, True, True, BattleScreen) ReduceHP(damage, own, own, BattleScreen, p.GetDisplayName() & " hurt itself in confusion.", "confusiondamage") moveUsed.HurtItselfInConfusion(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If Exit Sub End If End If @@ -1651,6 +1657,13 @@ p.RemoveVolatileStatus(Pokemon.VolatileStatus.Flinch) BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " flinched and couldn't move!")) moveUsed.InflictedFlinch(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If + If p.Ability.Name.ToLower() = "steadfast" Then RaiseStat(own, Not own, BattleScreen, "Speed", 1, "", "steadfast") End If @@ -1678,8 +1691,13 @@ If fly > 0 Then moveUsed.MoveMisses(own, BattleScreen) - End If + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If + End If BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s move was prevented due to Gravity!")) Exit Sub End If @@ -1703,6 +1721,12 @@ End If BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is in love with " & op.GetDisplayName() & "!")) moveUsed.IsAttracted(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If Exit Sub End If End If @@ -1743,6 +1767,12 @@ End If BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is fully paralyzed!" & Environment.NewLine & "It cannot move!")) moveUsed.IsParalyzed(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If Exit Sub End If End If @@ -1827,6 +1857,12 @@ Else BattleScreen.BattleQuery.Add(New TextQueryObject("But it failed...")) moveUsed.MoveMisses(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If Exit Sub End If End If @@ -2300,6 +2336,12 @@ If Damage = 0 AndAlso moveUsed.ID = 117 Then BattleScreen.BattleQuery.Add(New TextQueryObject("But it failed...")) moveUsed.MoveMisses(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If effectiveness = 0 Exit For End If @@ -2503,6 +2545,13 @@ If canUseEffect AndAlso multiUseEffect OrElse (multiUseEffect = False AndAlso i = TimesToAttack) Then If substitute = 0 OrElse moveUsed.IsAffectedBySubstitute = False Then moveUsed.MoveHits(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = False + Else + BattleScreen.FieldEffects.OppLastMoveFailed = False + End If + If op.Status = Pokemon.StatusProblems.Freeze Then If moveUsed.RemovesOppFrozen = True Then CureStatusProblem(Not own, own, BattleScreen, op.GetDisplayName() & " got defrosted by " & moveUsed.Name & ".", "defrostmove") @@ -2537,6 +2586,12 @@ End If Else moveUsed.MoveHasNoEffect(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If End If 'ABILITY SHIT GOES HERE: @@ -2891,6 +2946,12 @@ BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " snatched " & p.GetDisplayName() & "'s move!")) moveUsed.MoveHits(Not own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = False + Else + BattleScreen.FieldEffects.OppLastMoveFailed = False + End If Else Dim magicReflect As String = "" If moveUsed.MagicCoatAffected = True Then @@ -2929,6 +2990,12 @@ Else If oppSubstitute = 0 Or moveUsed.IsAffectedBySubstitute = False Then moveUsed.MoveHits(Not own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = False + Else + BattleScreen.FieldEffects.OppLastMoveFailed = False + End If Else BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute absorbed the move!")) End If @@ -2944,9 +3011,21 @@ If effectiveness = 0.0F Then BattleScreen.BattleQuery.Add(New TextQueryObject("It has no effect...")) moveUsed.MoveHasNoEffect(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If Else If substitute = 0 Or moveUsed.IsAffectedBySubstitute = False Then moveUsed.MoveHits(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = False + Else + BattleScreen.FieldEffects.OppLastMoveFailed = False + End If Else BattleScreen.BattleQuery.Add(New TextQueryObject("The substitute absorbed the move!")) End If @@ -2962,6 +3041,12 @@ BattleScreen.BattleQuery.Add(New TextQueryObject("But it missed...")) End If moveUsed.MoveMisses(own, BattleScreen) + + If own = True Then + BattleScreen.FieldEffects.OwnLastMoveFailed = True + Else + BattleScreen.FieldEffects.OppLastMoveFailed = True + End If End If ''Own Pokémon Encore Dim attackIndex As Integer = -1 diff --git a/P3D/Battle/BattleSystemV2/FieldEffects.vb b/P3D/Battle/BattleSystemV2/FieldEffects.vb index 5533aa5b7..fd4790242 100644 --- a/P3D/Battle/BattleSystemV2/FieldEffects.vb +++ b/P3D/Battle/BattleSystemV2/FieldEffects.vb @@ -112,6 +112,7 @@ Public OwnTarShot As Boolean = False 'If own Pokémon is affected by Tar Shot Public OwnLastMove As Attack = Nothing 'Last move used + Public OwnLastMoveFailed As Boolean = False 'keeping track of this for Stomping Tantrum Public OwnSpikes As Integer = 0 'Trap move counter Public OwnStealthRock As Integer = 0 'Trap move counter Public OwnStickyWeb As Integer = 0 'Trap move counter @@ -141,6 +142,7 @@ Public OppGuardSpec As Integer = 0 Public OppTurnCounts As Integer = 0 Public OppLastMove As Attack = Nothing + Public OppLastMoveFailed As Boolean = False Public OppLightScreen As Integer = 0 Public OppReflect As Integer = 0 Public OppTailWind As Integer = 0 diff --git a/P3D/Content/Localization/Tokens_de.dat b/P3D/Content/Localization/Tokens_de.dat index 9abc2fd01..6f7f6ba3a 100644 --- a/P3D/Content/Localization/Tokens_de.dat +++ b/P3D/Content/Localization/Tokens_de.dat @@ -3111,6 +3111,7 @@ move_name_692,Drachenhammer move_name_693,Wirbler move_name_705,Kanonenbouquet move_name_706,Psychobeißer +move_name_707,Fruststampfer move_name_708,Schattenknochen move_name_709,Turbofelsen move_name_710,Aquadurchstoß @@ -3121,7 +3122,10 @@ move_name_717,Naturzorn move_name_749,Teerschuss move_name_790,Wunderdampf move_name_796,Stahlstrahl -move_name_797,Zornesfaust +move_name_828,Barrierenstoß +move_name_887,Hyperbohrer +move_name_888,Doppelstrahl +move_name_889,Zornesfaust ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Story translation: --- diff --git a/P3D/Content/Localization/Tokens_en.dat b/P3D/Content/Localization/Tokens_en.dat index cc798e8ce..451ad05f2 100644 --- a/P3D/Content/Localization/Tokens_en.dat +++ b/P3D/Content/Localization/Tokens_en.dat @@ -3200,6 +3200,7 @@ move_name_692,Dragon Hammer move_name_693,Brutal Swing move_name_705,Fleur Cannon move_name_706,Psychic Fangs +move_name_707,Stomping Tantrum move_name_708,Shadow Bone move_name_709,Accelerock move_name_710,Liquidation @@ -3210,8 +3211,10 @@ move_name_717,Natures Madness move_name_749,Tar Shot move_name_790,Strange Steam move_name_796,Steel Beam -move_name_797,Rage Fist -move_name_798,Psyshield Bash +move_name_828,Psyshield Bash +move_name_887,Hyper Drill +move_name_888,Twin Beam +move_name_889,Rage Fist ------ Move Descriptions: move_desc_1,The target is physically pounded with a long tail or a foreleg, etc. diff --git a/P3D/Content/Localization/Tokens_es.dat b/P3D/Content/Localization/Tokens_es.dat index 1c2336b4d..e449b2000 100644 --- a/P3D/Content/Localization/Tokens_es.dat +++ b/P3D/Content/Localization/Tokens_es.dat @@ -3113,6 +3113,7 @@ move_name_692,Martillo Dragón move_name_693,Giro Vil move_name_705,Cañón Floral move_name_706,Psicocolmillo +move_name_707,Pataleta move_name_708,Hueso Sombrío move_name_709,Roca Veloz move_name_710,Hidroariete @@ -3123,7 +3124,10 @@ move_name_717,Furia Natural move_name_749,Alquitranazo move_name_790,Cautivapor move_name_796,Metaláser -move_name_797,Puño Furia +move_name_828,Asalto Barrera +move_name_887,Hipertaladro +move_name_888,Láser Doble +move_name_889,Puño Furia ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Story translation: --- diff --git a/P3D/Content/Localization/Tokens_fr.dat b/P3D/Content/Localization/Tokens_fr.dat index 51ae35e1a..87b90174b 100644 --- a/P3D/Content/Localization/Tokens_fr.dat +++ b/P3D/Content/Localization/Tokens_fr.dat @@ -3111,7 +3111,8 @@ move_name_692,Draco-Marteau move_name_693,Centrifugifle move_name_705,Canon Floral move_name_706,Psycho-Croc -move_name_708,Shadow Bone +move_name_707,Trépignement +move_name_708,Os'Ombre move_name_709,Vif Roc move_name_710,Aqua-Brèche move_name_711,Laser Prisme @@ -3121,7 +3122,10 @@ move_name_717,Natures Madness move_name_749,Goudronnage move_name_790,Vapeur Féérique move_name_796,Métalaser -move_name_797,Poing de Colère +move_name_828,Sprint Bouclier +move_name_887,Hyperceuse +move_name_888,Double Laser +move_name_889,Poing de Colère ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Story translation: --- diff --git a/P3D/Content/Localization/Tokens_nl.dat b/P3D/Content/Localization/Tokens_nl.dat index ee428440f..bbc3a9a5f 100644 --- a/P3D/Content/Localization/Tokens_nl.dat +++ b/P3D/Content/Localization/Tokens_nl.dat @@ -3492,6 +3492,7 @@ move_name_692,Dragon Hammer move_name_693,Brutal Swing move_name_705,Fleur Cannon move_name_706,Psychic Fangs +move_name_707,Stomping Tantrum move_name_708,Shadow Bone move_name_709,Accelerock move_name_710,Liquidation @@ -3502,7 +3503,10 @@ move_name_717,Natures Madness move_name_749,Tar Shot move_name_790,Vreemde stoom move_name_796,Steel Beam -move_name_797,Woedevuist +move_name_828,Psyshield Bash +move_name_887,Hyper Drill +move_name_888,Twin Beam +move_name_889,Woedevuist ------ Move Descriptions: move_desc_1,Het doelwit wordt fysiek geraakt met een lange staart of een voorpoot, enz. diff --git a/P3D/Content/Localization/Tokens_pl.dat b/P3D/Content/Localization/Tokens_pl.dat index 2c0d1ef14..d832408c8 100644 --- a/P3D/Content/Localization/Tokens_pl.dat +++ b/P3D/Content/Localization/Tokens_pl.dat @@ -3112,6 +3112,7 @@ move_name_692,Dragon Hammer move_name_693,Brutal Swing move_name_705,Fleur Cannon move_name_706,Psychic Fangs +move_name_707,Stomping Tantrum move_name_708,Shadow Bone move_name_709,Accelerock move_name_710,Liquidation @@ -3122,7 +3123,11 @@ move_name_717,Natures Madness move_name_749,Tar Shot move_name_790,Strange Steam move_name_796,Steel Beam -move_name_797,Rage Fist +move_name_828,Psyshield Bash +move_name_887,Hyper Drill +move_name_888,Twin Beam +move_name_889,Rage Fist + ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Story translation: --- diff --git a/P3D/Content/Localization/Tokens_ptbr.dat b/P3D/Content/Localization/Tokens_ptbr.dat index 15f9a2d38..9938cc788 100644 --- a/P3D/Content/Localization/Tokens_ptbr.dat +++ b/P3D/Content/Localization/Tokens_ptbr.dat @@ -3196,6 +3196,7 @@ move_name_692,Dragon Hammer move_name_693,Brutal Swing move_name_705,Fleur Cannon move_name_706,Psychic Fangs +move_name_707,Stomping Tantrum move_name_708,Shadow Bone move_name_709,Accelerock move_name_710,Liquidation @@ -3206,7 +3207,10 @@ move_name_717,Natures Madness move_name_749,Tar Shot move_name_790,Strange Steam move_name_796,Steel Beam -move_name_797,Rage Fist +move_name_828,Psyshield Bash +move_name_887,Hyper Drill +move_name_888,Twin Beam +move_name_889,Rage Fist ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Story translation: --- diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj index de31d2b18..3249e8c0e 100644 --- a/P3D/P3D.vbproj +++ b/P3D/P3D.vbproj @@ -28893,6 +28893,7 @@ + diff --git a/P3D/Pokemon/Attacks/Attack.vb b/P3D/Pokemon/Attacks/Attack.vb index dc567e789..e69eca86c 100644 --- a/P3D/Pokemon/Attacks/Attack.vb +++ b/P3D/Pokemon/Attacks/Attack.vb @@ -1693,8 +1693,8 @@ returnMove = New Moves.Fairy.FleurCannon() Case 706 returnMove = New Moves.Psychic.PsychicFangs() - 'Case 707 - 'Stomping Tantrum + Case 707 + returnMove = New Moves.Ground.StompingTantrum() Case 708 returnMove = New Moves.Ghost.ShadowBone() Case 709 diff --git a/P3D/Pokemon/Attacks/Ground/StompingTangtrum.vb b/P3D/Pokemon/Attacks/Ground/StompingTangtrum.vb new file mode 100644 index 000000000..d57ea5b22 --- /dev/null +++ b/P3D/Pokemon/Attacks/Ground/StompingTangtrum.vb @@ -0,0 +1,81 @@ +Namespace BattleSystem.Moves.Ground + + Public Class StompingTantrum + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Ground) + Me.ID = 707 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 75 + Me.Accuracy = 100 + Me.Category = Categories.Physical + Me.ContestCategory = ContestCategories.Tough + Me.Name = Localization.GetString("move_name_" & Me.ID, "Stomping Tantrum") + Me.Description = "Driven by frustration, the user attacks the target. If the user's previous move has failed, the power of this move doubles." + Me.CriticalChance = 1 + Me.IsHMMove = False + Me.Target = Targets.OneAdjacentTarget + Me.Priority = 0 + Me.TimesToAttack = 1 + '#End + + '#SpecialDefinitions + Me.MakesContact = True + Me.ProtectAffected = True + Me.MagicCoatAffected = False + Me.SnatchAffected = False + Me.MirrorMoveAffected = True + Me.KingsrockAffected = True + Me.CounterAffected = True + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = True + Me.ImmunityAffected = True + Me.HasSecondaryEffect = False + Me.RemovesOwnFrozen = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + + Me.IsDamagingMove = True + Me.IsProtectMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + '#End + + Me.AIField1 = AIField.Damage + Me.AIField2 = AIField.Nothing + + End Sub + + Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer + Dim p As Pokemon = BattleScreen.OwnPokemon + Dim op As Pokemon = BattleScreen.OppPokemon + + Dim lastMoveFailed As Boolean = BattleScreen.FieldEffects.OwnLastMoveFailed + + If own = False Then + p = BattleScreen.OppPokemon + op = BattleScreen.OwnPokemon + + lastMoveFailed = BattleScreen.FieldEffects.OppLastMoveFailed + End If + + Dim basePower As Integer = Me.Power + If lastMoveFailed = True Then + basePower *= 2 + End If + + Return basePower + End Function + + End Class + +End Namespace