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