some moves + min gfx
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Before Width: | Height: | Size: 763 B After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 232 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 21 KiB |
|
@ -25508,6 +25508,24 @@
|
|||
</Content>
|
||||
<Compile Include="Pokemon\Abilities\Aerilate.vb" />
|
||||
<Compile Include="Pokemon\Abilities\ParentalBond.vb" />
|
||||
<Compile Include="Pokemon\Attacks\Dark\DarkVoid.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\Dragon\SpacialRend.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\Fighting\StormThrow.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\Ghost\ShadowForce.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\Ground\ThousandWaves.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\Ice\Avalanche.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Items\KeyItems\LibertySeaMap.vb" />
|
||||
<Compile Include="Pokemon\Items\Standard\ExpertBelt.vb" />
|
||||
<Compile Include="Resources\Blur\BlurHandler.vb" />
|
||||
|
@ -25763,9 +25781,13 @@
|
|||
<Compile Include="Battle\BattleAnimations\BASize.vb" />
|
||||
<Compile Include="Battle\BattleAnimations\BattleAnimation3D.vb" />
|
||||
<Compile Include="Battle\BattleStats.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\Battle.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\Battle.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Battle\BattleSystemV2\BattleAnimationScreenV2.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\BattleCalculation.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\BattleCalculation.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Battle\BattleSystemV2\BattleCameraV2.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\BattleMenu.vb" />
|
||||
<Compile Include="Battle\BattleSystemV2\BattleScreen.vb" />
|
||||
|
@ -26106,7 +26128,9 @@
|
|||
<Compile Include="Pokemon\Abilities\WonderGuard.vb" />
|
||||
<Compile Include="Pokemon\Abilities\WonderSkin.vb" />
|
||||
<Compile Include="Pokemon\Abilities\ZenMode.vb" />
|
||||
<Compile Include="Pokemon\Attacks\Attack.vb" />
|
||||
<Compile Include="Pokemon\Attacks\Attack.vb">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="Pokemon\Attacks\AttackSpecialFunctions.vb" />
|
||||
<Compile Include="Pokemon\Attacks\Bug\AttackOrder.vb" />
|
||||
<Compile Include="Pokemon\Attacks\Bug\BugBite.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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|