diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb index 9d60496bd..2bc2d0a43 100644 --- a/P3D/Battle/BattleSystemV2/Battle.vb +++ b/P3D/Battle/BattleSystemV2/Battle.vb @@ -124,11 +124,13 @@ Exit Sub End If - 'If Shadow Force gets programmed, put this in. - 'If BattleScreen.FieldEffects.OwnShadowForceCounter = 1 Then - ' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)}) - ' Exit Sub - 'End If + 'Shadow Force: + If BattleScreen.FieldEffects.OwnShadowForceCounter = 1 Then + SelectedMoveOwn = False + DeleteHostQuery(BattleScreen) + InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, 467)}) + Exit Sub + End If 'If Sky Drop gets programmed, put this in. 'If BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then @@ -301,10 +303,11 @@ Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 291)} End If - ''Shadow Force: - 'If BattleScreen.FieldEffects.OppShadowForceCounter = 1 Then - ' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()} - 'End If + 'Shadow Force: + If BattleScreen.FieldEffects.OppShadowForceCounter = 1 Then + SelectedMoveOpp = False + Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)} + End If ''Sky Drop: 'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then @@ -944,7 +947,7 @@ Dim dig As Integer Dim dive As Integer Dim skyDrop As Integer 'not implemented yet - Dim shadowForce As Integer 'not implemented yet + Dim shadowForce As Integer Dim skullBash As Integer Dim skyAttack As Integer Dim solarBeam As Integer diff --git a/P3D/Battle/BattleSystemV2/BattleCalculation.vb b/P3D/Battle/BattleSystemV2/BattleCalculation.vb index a07c52e2a..58acf30ea 100644 --- a/P3D/Battle/BattleSystemV2/BattleCalculation.vb +++ b/P3D/Battle/BattleSystemV2/BattleCalculation.vb @@ -575,6 +575,9 @@ If UsedAttack.ID = 524 Then Return True End If + If UsedAttack.ID = 480 Then + Return True + End If Return False End Function diff --git a/P3D/Content/GUI/Evolution/EvolutionSpark.png b/P3D/Content/GUI/Evolution/EvolutionSpark.png index f62bdac2e..885b693db 100644 Binary files a/P3D/Content/GUI/Evolution/EvolutionSpark.png and b/P3D/Content/GUI/Evolution/EvolutionSpark.png differ diff --git a/P3D/Content/GUI/Evolution/Light.png b/P3D/Content/GUI/Evolution/Light.png index b27b3bf97..5f9d72001 100644 Binary files a/P3D/Content/GUI/Evolution/Light.png and b/P3D/Content/GUI/Evolution/Light.png differ diff --git a/P3D/Content/GUI/Menus/SaveBook.png b/P3D/Content/GUI/Menus/SaveBook.png index 7c85ca3c6..fa566cd41 100644 Binary files a/P3D/Content/GUI/Menus/SaveBook.png and b/P3D/Content/GUI/Menus/SaveBook.png differ diff --git a/P3D/Content/GUI/Menus/Types.png b/P3D/Content/GUI/Menus/Types.png index 2fba3ebf7..874b19b34 100644 Binary files a/P3D/Content/GUI/Menus/Types.png and b/P3D/Content/GUI/Menus/Types.png differ diff --git a/P3D/Content/GUI/Overworld/flash_overlay.png b/P3D/Content/GUI/Overworld/flash_overlay.png index c96986af1..e5b35167f 100644 Binary files a/P3D/Content/GUI/Overworld/flash_overlay.png and b/P3D/Content/GUI/Overworld/flash_overlay.png differ diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj index a3a0c898b..8be05b15e 100644 --- a/P3D/P3D.vbproj +++ b/P3D/P3D.vbproj @@ -25508,6 +25508,24 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + @@ -25763,9 +25781,13 @@ - + + PreserveNewest + - + + PreserveNewest + @@ -26106,7 +26128,9 @@ - + + PreserveNewest + diff --git a/P3D/Pokemon/Attacks/Attack.vb b/P3D/Pokemon/Attacks/Attack.vb index 2c333f9cf..849c8df99 100644 --- a/P3D/Pokemon/Attacks/Attack.vb +++ b/P3D/Pokemon/Attacks/Attack.vb @@ -1080,8 +1080,8 @@ returnMove = New Moves.Dark.NastyPlot() Case 418 returnMove = New Moves.Steel.BulletPunch() - 'Case 419 - 'Avalanche + Case 419 + returnMove = New Moves.Ice.Avalanche() Case 420 returnMove = New Moves.Ice.IceShard() Case 421 @@ -1162,22 +1162,22 @@ returnMove = New Moves.Normal.DoubleHit() Case 459 returnMove = New Moves.Dragon.RoarOfTime() - 'Case 460 - 'Spacial Rend + Case 460 + returnMove = New Moves.Dragon.SpacialRend() 'Case 461 'Lunar Dance Case 462 returnMove = New Moves.Normal.CrushGrip() Case 463 returnMove = New Moves.Fire.MagmaStorm() - 'Case 464 - 'Dark Void + Case 464 + returnMove = New Moves.Dark.DarkVoid() Case 465 returnMove = New Moves.Grass.Seedflare() Case 466 returnMove = New Moves.Ghost.OminousWind() - 'Case 467 - 'Shadow Force + Case 467 + returnMove = New Moves.Ghost.ShadowForce() Case 468 returnMove = New Moves.Dark.HoneClaws() 'Case 469 @@ -1202,8 +1202,8 @@ 'Magic Room Case 479 returnMove = New Moves.Rock.SmackDown() - 'Case 480 - 'Storm Throw + Case 480 + returnMove = New Moves.Fighting.StormThrow() Case 481 returnMove = New Moves.Fire.FlameBurst() Case 482 @@ -1471,9 +1471,9 @@ Case 613 returnMove = New Moves.Flying.OblivionWing() 'Case 614 - 'Tousand Arrows - 'Case 615 - 'Thousand Waves + 'Thousand Arrows + Case 615 + returnMove = New Moves.Ground.ThousandWaves() Case 616 returnMove = New Moves.Ground.LandsWrath() 'Case 617 diff --git a/P3D/Pokemon/Attacks/Dark/DarkVoid.vb b/P3D/Pokemon/Attacks/Dark/DarkVoid.vb new file mode 100644 index 000000000..1bc19a541 --- /dev/null +++ b/P3D/Pokemon/Attacks/Dark/DarkVoid.vb @@ -0,0 +1,67 @@ +Namespace BattleSystem.Moves.Dark + + Public Class DarkVoid + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Dark) + Me.ID = 464 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 50 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Dark Void" + Me.Description = "Opposing Pokémon are dragged into a world of total darkness that makes them sleep." + Me.CriticalChance = 0 + Me.IsHMMove = False + Me.Target = Targets.AllAdjacentFoes + Me.Priority = 0 + Me.TimesToAttack = 1 + '#End + + '#SpecialDefinitions + Me.MakesContact = False + Me.ProtectAffected = True + Me.MagicCoatAffected = True + Me.SnatchAffected = False + Me.MirrorMoveAffected = True + Me.KingsrockAffected = False + Me.CounterAffected = False + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = False + Me.ImmunityAffected = False + Me.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = False + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = False + '#End + + Me.AIField1 = AIField.Sleep + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + Dim b As Boolean = BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:darkvoid") + If b = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + +End Namespace \ No newline at end of file diff --git a/P3D/Pokemon/Attacks/Dragon/SpacialRend.vb b/P3D/Pokemon/Attacks/Dragon/SpacialRend.vb new file mode 100644 index 000000000..c6735f8e0 --- /dev/null +++ b/P3D/Pokemon/Attacks/Dragon/SpacialRend.vb @@ -0,0 +1,57 @@ +Namespace BattleSystem.Moves.Dragon + + Public Class SpacialRend + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Dragon) + Me.ID = 460 + Me.OriginalPP = 5 + Me.CurrentPP = 5 + Me.MaxPP = 5 + Me.Power = 100 + Me.Accuracy = 95 + Me.Category = Categories.Special + Me.ContestCategory = ContestCategories.Tough + Me.Name = "Spacial Rend" + Me.Description = "The user tears the target along with the space around it. Critical hits land more easily." + Me.CriticalChance = 2 + Me.IsHMMove = False + Me.Target = Targets.OneAdjacentTarget + Me.Priority = 0 + Me.TimesToAttack = 1 + '#End + + '#SpecialDefinitions + Me.MakesContact = False + Me.ProtectAffected = True + Me.MagicCoatAffected = False + Me.SnatchAffected = False + Me.MirrorMoveAffected = True + Me.KingsrockAffected = True + Me.CounterAffected = False + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = True + Me.ImmunityAffected = True + Me.HasSecondaryEffect = False + Me.RemovesFrozen = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = True + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + '#End + End Sub + + End Class + +End Namespace \ No newline at end of file diff --git a/P3D/Pokemon/Attacks/Fighting/StormThrow.vb b/P3D/Pokemon/Attacks/Fighting/StormThrow.vb new file mode 100644 index 000000000..27a5c426e --- /dev/null +++ b/P3D/Pokemon/Attacks/Fighting/StormThrow.vb @@ -0,0 +1,56 @@ +Namespace BattleSystem.Moves.Fighting + + Public Class StormThrow + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Fighting) + Me.ID = 480 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 60 + Me.Accuracy = 100 + Me.Category = Categories.Physical + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Storm Throw" + Me.Description = "The user strikes the target with a fierce blow. This attack always results in a critical hit." + 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.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = True + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + '#End + End Sub + End Class + +End Namespace diff --git a/P3D/Pokemon/Attacks/Ghost/ShadowForce.vb b/P3D/Pokemon/Attacks/Ghost/ShadowForce.vb new file mode 100644 index 000000000..20d9bb25a --- /dev/null +++ b/P3D/Pokemon/Attacks/Ghost/ShadowForce.vb @@ -0,0 +1,200 @@ +Namespace BattleSystem.Moves.Ghost + + Public Class ShadowForce + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Ghost) + Me.ID = 467 + Me.OriginalPP = 5 + Me.CurrentPP = 5 + Me.MaxPP = 5 + Me.Power = 120 + Me.Accuracy = 100 + Me.Category = Categories.Physical + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Shadow Force" + Me.Description = "The user disappears, then strikes the target on the next turn. This move hits even if the target protects itself." + Me.CriticalChance = 1 + Me.IsHMMove = False + Me.Target = Targets.OneAdjacentTarget + Me.Priority = 0 + Me.TimesToAttack = 1 + '#End + + '#SpecialDefinitions + Me.MakesContact = True + Me.ProtectAffected = False + 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.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = True + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + Me.UseAccEvasion = True + Me.CanHitUnderwater = False + Me.CanHitUnderground = False + Me.CanHitInMidAir = False + '#End + + Me.AIField1 = AIField.Damage + Me.AIField2 = AIField.MultiTurn + End Sub + + Public Overrides Function GetUseAccEvasion(own As Boolean, BattleScreen As BattleScreen) As Boolean + Dim shadowforce As Integer = BattleScreen.FieldEffects.OwnShadowForceCounter + If own = False Then + shadowforce = BattleScreen.FieldEffects.OppShadowForceCounter + End If + + If shadowforce = 0 Then + Return False + Else + Return True + End If + End Function + + Public Overrides Sub PreAttack(Own As Boolean, BattleScreen As BattleScreen) + Dim shadowforce As Integer = BattleScreen.FieldEffects.OwnShadowForceCounter + If Own = False Then + shadowforce = BattleScreen.FieldEffects.OppShadowForceCounter + End If + + If shadowforce = 0 Then + Me.FocusOppPokemon = False + Else + Me.FocusOppPokemon = True + End If + End Sub + + Public Overrides Function MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean + Dim shadowforceCounter As Integer = BattleScreen.FieldEffects.OwnShadowForceCounter + + If Own = False Then + shadowforceCounter = BattleScreen.FieldEffects.OppShadowForceCounter + End If + + Dim p As Pokemon = BattleScreen.OwnPokemon + If Own = False Then + p = BattleScreen.OppPokemon + End If + + Dim hasToCharge As Boolean = True + 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 Shadow Force!", "move:shadowforce") = True Then + hasToCharge = False + End If + End If + End If + + If shadowforceCounter = 0 And hasToCharge = True Then + If Own = True Then + BattleScreen.FieldEffects.OwnShadowForceCounter = 1 + Else + BattleScreen.FieldEffects.OppShadowForceCounter = 1 + End If + + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " vanished instantly!")) + + Return True + Else + If Own = True Then + BattleScreen.FieldEffects.OwnShadowForceCounter = 0 + Else + BattleScreen.FieldEffects.OppShadowForceCounter = 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.OwnShadowForceCounter = 0 + Else + BattleScreen.FieldEffects.OppShadowForceCounter = 0 + End If + End Sub + Public Overrides Function DeductPP(own As Boolean, BattleScreen As BattleScreen) As Boolean + Dim ShadowForce As Integer = BattleScreen.FieldEffects.OwnShadowForceCounter + If own = False Then + ShadowForce = BattleScreen.FieldEffects.OppShadowForceCounter + End If + + If ShadowForce = 0 Then + Return False + Else + Return True + End If + End Function + + Private Sub MoveFails(own As Boolean, BattleScreen As BattleScreen) + If own = True Then + BattleScreen.FieldEffects.OwnShadowForceCounter = 0 + Else + BattleScreen.FieldEffects.OppShadowForceCounter = 0 + 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 InflictedFlinch(own As Boolean, BattleScreen As BattleScreen) + MoveFails(own, BattleScreen) + End Sub + + Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) + MoveFails(own, BattleScreen) + End Sub + + Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen) + MoveFails(own, BattleScreen) + End Sub + + Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen) + MoveFails(own, BattleScreen) + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + Dim op As Pokemon = BattleScreen.OppPokemon + + If own = True Then + BattleScreen.FieldEffects.OppDetectCounter = 0 + BattleScreen.FieldEffects.OppProtectCounter = 0 + Else + op = BattleScreen.OwnPokemon + + BattleScreen.FieldEffects.OwnDetectCounter = 0 + BattleScreen.FieldEffects.OwnProtectCounter = 0 + End If + + BattleScreen.BattleQuery.Add(New TextQueryObject("Shadow Force lifted " & op.GetDisplayName() & "'s protection!")) + End Sub + + End Class + +End Namespace \ No newline at end of file diff --git a/P3D/Pokemon/Attacks/Ground/ThousandWaves.vb b/P3D/Pokemon/Attacks/Ground/ThousandWaves.vb new file mode 100644 index 000000000..34d94a8a8 --- /dev/null +++ b/P3D/Pokemon/Attacks/Ground/ThousandWaves.vb @@ -0,0 +1,78 @@ +Namespace BattleSystem.Moves.Ground + + Public Class ThousandWaves + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Ground) + Me.ID = 615 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 90 + Me.Accuracy = 100 + Me.Category = Categories.Physical + Me.ContestCategory = ContestCategories.Tough + Me.Name = "Thousand Waves" + Me.Description = "The user attacks with a wave that crawls along the ground. Those hit can't flee from battle." + Me.CriticalChance = 1 + Me.IsHMMove = False + Me.Target = Targets.AllAdjacentFoes + Me.Priority = 0 + Me.TimesToAttack = 1 + '#End + + '#SpecialDefinitions + Me.MakesContact = False + 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.RemovesFrozen = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = True + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + '#End + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + Dim trapped As Integer = BattleScreen.FieldEffects.OppTrappedCounter + If own = False Then + trapped = BattleScreen.FieldEffects.OwnTrappedCounter + End If + + Dim op As Pokemon = BattleScreen.OppPokemon + If own = False Then + op = BattleScreen.OwnPokemon + End If + + If trapped = 0 Then + If own = True Then + BattleScreen.FieldEffects.OppTrappedCounter = 1 + Else + BattleScreen.FieldEffects.OwnTrappedCounter = 1 + End If + BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " can no longer escape!")) + End If + End Sub + + End Class + +End Namespace \ No newline at end of file diff --git a/P3D/Pokemon/Attacks/Ice/Avalanche.vb b/P3D/Pokemon/Attacks/Ice/Avalanche.vb new file mode 100644 index 000000000..2698c0473 --- /dev/null +++ b/P3D/Pokemon/Attacks/Ice/Avalanche.vb @@ -0,0 +1,92 @@ +Namespace BattleSystem.Moves.Ice + + Public Class Avalanche + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Ice) + Me.ID = 419 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 60 + Me.Accuracy = 100 + Me.Category = Categories.Physical + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Avalanche" + Me.Description = "The power of this attack move is doubled if the user has been hurt by the target in the same turn." + Me.CriticalChance = 1 + Me.IsHMMove = False + Me.Target = Targets.OneAdjacentTarget + Me.Priority = -4 + 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.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = False + Me.IsRecoilMove = False + Me.IsPunchingMove = False + Me.IsDamagingMove = True + Me.IsProtectMove = False + Me.IsSoundMove = False + + Me.IsAffectedBySubstitute = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = True + '#End + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + 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 chance As Integer = GetEffectChance(0, own, BattleScreen) + If Core.Random.Next(0, 100) < chance Then + BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:aurorabeam") + End If + End Sub + + Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer + If own = True Then + If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then + If Not BattleScreen.FieldEffects.OppLastMove Is Nothing Then + If BattleScreen.FieldEffects.OppLastMove.IsDamagingMove = True Then + Return Me.Power * 2 + End If + End If + End If + Else + If BattleScreen.FieldEffects.OwnTurnCounts > BattleScreen.FieldEffects.OppTurnCounts Then + If Not BattleScreen.FieldEffects.OwnLastMove Is Nothing Then + If BattleScreen.FieldEffects.OwnLastMove.IsDamagingMove = True Then + Return Me.Power * 2 + End If + End If + End If + End If + Return Me.Power + End Function + + End Class + +End Namespace \ No newline at end of file