This commit is contained in:
CaptainSegis 2018-10-27 16:44:05 -05:00
commit f3ebd5cad4
57 changed files with 3099 additions and 352 deletions

View File

@ -132,12 +132,28 @@
Exit Sub Exit Sub
End If End If
'Phantom Force:
If BattleScreen.FieldEffects.OwnPhantomForceCounter = 1 Then
SelectedMoveOwn = False
DeleteHostQuery(BattleScreen)
InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, 566)})
Exit Sub
End If
'If Sky Drop gets programmed, put this in. 'If Sky Drop gets programmed, put this in.
'If BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then 'If BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then
' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)}) ' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)})
' Exit Sub ' Exit Sub
'End If 'End If
'Geomancy:
If BattleScreen.FieldEffects.OwnGeomancyCounter = 1 Then
SelectedMoveOwn = False
DeleteHostQuery(BattleScreen)
InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, 601)})
Exit Sub
End If
'Solar Beam: 'Solar Beam:
If BattleScreen.FieldEffects.OwnSolarBeam >= 1 Then If BattleScreen.FieldEffects.OwnSolarBeam >= 1 Then
SelectedMoveOwn = False SelectedMoveOwn = False
@ -309,11 +325,23 @@
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)} Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)}
End If End If
'Phantom Force:
If BattleScreen.FieldEffects.OppPhantomForceCounter = 1 Then
SelectedMoveOpp = False
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 566)}
End If
''Sky Drop: ''Sky Drop:
'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then 'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then
' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()} ' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()}
'End If 'End If
'Geomancy:
If BattleScreen.FieldEffects.OppGeomancyCounter = 1 Then
SelectedMoveOpp = False
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 601)}
End If
'Solar Beam: 'Solar Beam:
If BattleScreen.FieldEffects.OppSolarBeam >= 1 Then If BattleScreen.FieldEffects.OppSolarBeam >= 1 Then
SelectedMoveOpp = False SelectedMoveOpp = False
@ -947,7 +975,9 @@
Dim dig As Integer Dim dig As Integer
Dim dive As Integer Dim dive As Integer
Dim skyDrop As Integer 'not implemented yet Dim skyDrop As Integer 'not implemented yet
Dim geomancy As Integer
Dim shadowForce As Integer Dim shadowForce As Integer
Dim phantomForce As Integer
Dim skullBash As Integer Dim skullBash As Integer
Dim skyAttack As Integer Dim skyAttack As Integer
Dim solarBeam As Integer Dim solarBeam As Integer
@ -966,7 +996,9 @@
dig = .OwnDigCounter dig = .OwnDigCounter
dive = .OwnDiveCounter dive = .OwnDiveCounter
skyDrop = .OwnSkyDropCounter skyDrop = .OwnSkyDropCounter
geomancy = .OwnGeomancyCounter
shadowForce = .OwnShadowForceCounter shadowForce = .OwnShadowForceCounter
phantomForce = .OwnPhantomForceCounter
skullBash = .OwnSkullBashCounter skullBash = .OwnSkullBashCounter
skyAttack = .OwnSkyAttackCounter skyAttack = .OwnSkyAttackCounter
solarBeam = .OwnSolarBeam solarBeam = .OwnSolarBeam
@ -978,7 +1010,9 @@
dig = .OppDigCounter dig = .OppDigCounter
dive = .OppDiveCounter dive = .OppDiveCounter
skyDrop = .OppSkyDropCounter skyDrop = .OppSkyDropCounter
geomancy = .OppGeomancyCounter
shadowForce = .OppShadowForceCounter shadowForce = .OppShadowForceCounter
phantomForce = .OppPhantomForceCounter
skullBash = .OppSkullBashCounter skullBash = .OppSkullBashCounter
skyAttack = .OppSkyAttackCounter skyAttack = .OppSkyAttackCounter
solarBeam = .OppSolarBeam solarBeam = .OppSolarBeam
@ -1011,10 +1045,18 @@
If skyDrop = 0 Then If skyDrop = 0 Then
Return True Return True
End If End If
Case "geomancy"
If geomancy = 0 Then
Return True
End If
Case "shadow force" Case "shadow force"
If shadowForce = 0 Then If shadowForce = 0 Then
Return True Return True
End If End If
Case "phantom force"
If phantomForce = 0 Then
Return True
End If
Case "skull bash" Case "skull bash"
If skullBash = 0 Then If skullBash = 0 Then
Return True Return True
@ -1362,7 +1404,7 @@
If moveUsed.ProtectAffected = False Then If moveUsed.ProtectAffected = False Then
NoTargetCheck = False NoTargetCheck = False
Select Case moveUsed.Name.ToLower Select Case moveUsed.Name.ToLower
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" 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"
NoTargetCheck = True NoTargetCheck = True
End Select End Select
End If End If
@ -1411,7 +1453,7 @@
If moveUsed.ProtectAffected = False Then If moveUsed.ProtectAffected = False Then
UseTwoTurnCheck = False UseTwoTurnCheck = False
Select Case moveUsed.Name.ToLower Select Case moveUsed.Name.ToLower
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind" 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"
UseTwoTurnCheck = True UseTwoTurnCheck = True
End Select End Select
End If End If
@ -1471,6 +1513,17 @@
End If End If
End If End If
If DoesNotMiss = True And UseTwoTurnCheck Then 'phantomforce check
Dim phantomforce As Integer = BattleScreen.FieldEffects.OppPhantomForceCounter
If own = False Then
phantomforce = BattleScreen.FieldEffects.OwnPhantomForceCounter
End If
If phantomforce > 0 Then
DoesNotMiss = False
End If
End If
If DoesNotMiss = True And UseTwoTurnCheck Then 'sky drop check If DoesNotMiss = True And UseTwoTurnCheck Then 'sky drop check
Dim skydrop As Integer = BattleScreen.FieldEffects.OppSkyDropCounter Dim skydrop As Integer = BattleScreen.FieldEffects.OppSkyDropCounter
If own = False Then If own = False Then
@ -1482,6 +1535,17 @@
End If End If
End If End If
If DoesNotMiss = True And UseTwoTurnCheck Then 'geomancy check
Dim geomancy As Integer = BattleScreen.FieldEffects.OppGeomancyCounter
If own = False Then
geomancy = BattleScreen.FieldEffects.OwnGeomancyCounter
End If
If geomancy > 0 Then
DoesNotMiss = False
End If
End If
If IsChargingTurn(BattleScreen, own, moveUsed) Then If IsChargingTurn(BattleScreen, own, moveUsed) Then
DoesNotMiss = True DoesNotMiss = True
End If End If
@ -6119,6 +6183,7 @@
.OwnCustapBerry = 0 .OwnCustapBerry = 0
.OwnTrappedCounter = 0 .OwnTrappedCounter = 0
.OwnFuryCutter = 0 .OwnFuryCutter = 0
.OwnEchoedVoice = 0
.OwnPokemonTurns = 0 .OwnPokemonTurns = 0
.OwnStockpileCount = 0 .OwnStockpileCount = 0
.OwnDestinyBond = False .OwnDestinyBond = False
@ -6133,7 +6198,9 @@
.OwnBounceCounter = 0 .OwnBounceCounter = 0
.OwnDiveCounter = 0 .OwnDiveCounter = 0
.OwnShadowForceCounter = 0 .OwnShadowForceCounter = 0
.OwnPhantomForceCounter = 0
.OwnSkyDropCounter = 0 .OwnSkyDropCounter = 0
.OwnGeomancyCounter = 0
.OwnSkyAttackCounter = 0 .OwnSkyAttackCounter = 0
.OwnRazorWindCounter = 0 .OwnRazorWindCounter = 0
.OwnSkullBashCounter = 0 .OwnSkullBashCounter = 0
@ -6454,6 +6521,7 @@
.OppCustapBerry = 0 .OppCustapBerry = 0
.OppTrappedCounter = 0 .OppTrappedCounter = 0
.OppFuryCutter = 0 .OppFuryCutter = 0
.OppEchoedVoice = 0
.OppPokemonTurns = 0 .OppPokemonTurns = 0
.OppStockpileCount = 0 .OppStockpileCount = 0
.OppDestinyBond = False .OppDestinyBond = False
@ -6464,7 +6532,9 @@
.OppBounceCounter = 0 .OppBounceCounter = 0
.OppDiveCounter = 0 .OppDiveCounter = 0
.OppShadowForceCounter = 0 .OppShadowForceCounter = 0
.OppPhantomForceCounter = 0
.OppSkyDropCounter = 0 .OppSkyDropCounter = 0
.OppGeomancyCounter = 0
.OppSkyAttackCounter = 0 .OppSkyAttackCounter = 0
.OppRazorWindCounter = 0 .OppRazorWindCounter = 0
.OppSkullBashCounter = 0 .OppSkullBashCounter = 0

View File

@ -667,6 +667,28 @@
End If End If
End If End If
'Flying Press
If move.ID = 9999 Then
If op.Type1.Type = Element.Types.Fighting Or op.Type2.Type = Element.Types.Fighting Then
effectiveness *= 2
End If
If op.Type1.Type = Element.Types.Grass Or op.Type2.Type = Element.Types.Grass Then
effectiveness *= 2
End If
If op.Type1.Type = Element.Types.Bug Or op.Type2.Type = Element.Types.Bug Then
effectiveness *= 2
End If
If op.Type1.Type = Element.Types.Rock Or op.Type2.Type = Element.Types.Rock Then
effectiveness /= 2
End If
If op.Type1.Type = Element.Types.Steel Or op.Type2.Type = Element.Types.Steel Then
effectiveness /= 2
End If
If op.Type1.Type = Element.Types.Electric Or op.Type2.Type = Element.Types.Electric Then
effectiveness /= 2
End If
End If
'Sheer Cold 'Sheer Cold
If move.ID = 329 Then If move.ID = 329 Then
If op.IsType(Element.Types.Ice) Then If op.IsType(Element.Types.Ice) Then
@ -1470,7 +1492,7 @@
Dim SX As Single = 1.0F Dim SX As Single = 1.0F
Dim DMod As Single = 1.0F Dim DMod As Single = 1.0F
If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 548 Then 'Psyshock and Secret Sword. If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 540 OrElse Attack.ID = 548 Then 'Psyshock, Psystrike and Secret Sword.
DStat = Attack.GetUseDefenseStat(Op) DStat = Attack.GetUseDefenseStat(Op)
DSM = GetMultiplierFromStat(Op.StatDefense) DSM = GetMultiplierFromStat(Op.StatDefense)

View File

@ -62,6 +62,7 @@
Public OwnMiracleEye As Integer = 0 'Own Dark type Pokémon can be hit by Psychic type attacks Public OwnMiracleEye As Integer = 0 'Own Dark type Pokémon can be hit by Psychic type attacks
Public OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves Public OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves
Public OwnFuryCutter As Integer = 0 'Counter for the move fury cutter Public OwnFuryCutter As Integer = 0 'Counter for the move fury cutter
Public OwnEchoedVoice As Integer = 0 'Counter for the move echoed voice
Public OwnPokemonTurns As Integer = 0 'Turns for how long the own pokemon has been in battle Public OwnPokemonTurns As Integer = 0 'Turns for how long the own pokemon has been in battle
Public OwnStockpileCount As Integer = 0 'A counter for the stockpile moves used for Swallow and Spit Up Public OwnStockpileCount As Integer = 0 'A counter for the stockpile moves used for Swallow and Spit Up
Public OwnIceBurnCounter As Integer = 0 'Counter for the Ice Burn move. Public OwnIceBurnCounter As Integer = 0 'Counter for the Ice Burn move.
@ -76,7 +77,9 @@
Public OwnBounceCounter As Integer = 0 Public OwnBounceCounter As Integer = 0
Public OwnDiveCounter As Integer = 0 Public OwnDiveCounter As Integer = 0
Public OwnShadowForceCounter As Integer = 0 Public OwnShadowForceCounter As Integer = 0
Public OwnPhantomForceCounter As Integer = 0
Public OwnSkyDropCounter As Integer = 0 Public OwnSkyDropCounter As Integer = 0
Public OwnGeomancyCounter As Integer = 0
Public OwnWrap As Integer = 0 Public OwnWrap As Integer = 0
Public OwnWhirlpool As Integer = 0 Public OwnWhirlpool As Integer = 0
Public OwnBind As Integer = 0 Public OwnBind As Integer = 0
@ -187,6 +190,7 @@
Public OppMiracleEye As Integer = 0 Public OppMiracleEye As Integer = 0
Public OppProtectMovesCount As Integer = 0 Public OppProtectMovesCount As Integer = 0
Public OppFuryCutter As Integer = 0 Public OppFuryCutter As Integer = 0
Public OppEchoedVoice As Integer = 0
Public OppPokemonTurns As Integer = 0 Public OppPokemonTurns As Integer = 0
Public OppStockpileCount As Integer = 0 Public OppStockpileCount As Integer = 0
Public OppIceBurnCounter As Integer = 0 Public OppIceBurnCounter As Integer = 0
@ -210,7 +214,9 @@
Public OppBounceCounter As Integer = 0 Public OppBounceCounter As Integer = 0
Public OppDiveCounter As Integer = 0 Public OppDiveCounter As Integer = 0
Public OppShadowForceCounter As Integer = 0 Public OppShadowForceCounter As Integer = 0
Public OppPhantomForceCounter As Integer = 0
Public OppSkyDropCounter As Integer = 0 Public OppSkyDropCounter As Integer = 0
Public OppGeomancyCounter As Integer = 0
Public OppWrap As Integer = 0 Public OppWrap As Integer = 0
Public OppWhirlpool As Integer = 0 Public OppWhirlpool As Integer = 0

View File

@ -247,9 +247,17 @@
''' </summary> ''' </summary>
Public ShadowForce As Integer = 0 Public ShadowForce As Integer = 0
''' <summary> ''' <summary>
''' Phantom Force move counter.
''' </summary>
Public PhantomForce As Integer = 0
''' <summary>
''' Sky Drop move counter. ''' Sky Drop move counter.
''' </summary> ''' </summary>
Public SkyDrop As Integer = 0 Public SkyDrop As Integer = 0
''' <summary>
''' Geomancy move counter.
''' </summary>
Public Geomancy As Integer = 0
''' <summary> ''' <summary>
''' Turns this Pokémon is trapped in Wrap. ''' Turns this Pokémon is trapped in Wrap.
@ -297,6 +305,10 @@
''' </summary> ''' </summary>
Public FuryCutter As Integer = 0 Public FuryCutter As Integer = 0
''' <summary> ''' <summary>
''' Counter for the Echoed Voice move.
''' </summary>
Public EchoedVoice As Integer = 0
''' <summary>
''' Counter for the Stockpile move. ''' Counter for the Stockpile move.
''' </summary> ''' </summary>
Public StockPile As Integer = 0 Public StockPile As Integer = 0
@ -449,6 +461,7 @@
Me.CustapBerry = 0 Me.CustapBerry = 0
Me.Trapped = 0 Me.Trapped = 0
Me.FuryCutter = 0 Me.FuryCutter = 0
Me.EchoedVoice = 0
Me.TurnsInBattle = 0 Me.TurnsInBattle = 0
Me.StockPile = 0 Me.StockPile = 0
Me.DestinyBond = 0 Me.DestinyBond = 0
@ -461,7 +474,9 @@
Me.Bounce = 0 Me.Bounce = 0
Me.Dive = 0 Me.Dive = 0
Me.ShadowForce = 0 Me.ShadowForce = 0
Me.PhantomForce = 0
Me.SkyDrop = 0 Me.SkyDrop = 0
Me.Geomancy = 0
Me.SkyAttack = 0 Me.SkyAttack = 0
Me.RazorWind = 0 Me.RazorWind = 0
Me.SkullBash = 0 Me.SkullBash = 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -44,7 +44,7 @@ Move|12,355
Move|16,332 Move|16,332
Move|20,227 Move|20,227
Move|24,374 Move|24,374
Move|28,560 Move|28,9999
Move|32,340 Move|32,340
Move|36,283 Move|36,283
Move|40,297 Move|40,297

View File

@ -25508,25 +25508,121 @@
</Content> </Content>
<Compile Include="Pokemon\Abilities\Aerilate.vb" /> <Compile Include="Pokemon\Abilities\Aerilate.vb" />
<Compile Include="Pokemon\Abilities\ParentalBond.vb" /> <Compile Include="Pokemon\Abilities\ParentalBond.vb" />
<Compile Include="Pokemon\Attacks\Bug\FellStinger.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Dark\DarkVoid.vb"> <Compile Include="Pokemon\Attacks\Dark\DarkVoid.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Dark\HyperspaceFury.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Dark\PartingShot.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Dragon\SpacialRend.vb"> <Compile Include="Pokemon\Attacks\Dragon\SpacialRend.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Fairy\Geomancy.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Fairy\LightOfRuin.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Fighting\FinalGambit.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Fighting\FlyingPress.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Fighting\StormThrow.vb"> <Compile Include="Pokemon\Attacks\Fighting\StormThrow.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Fire\Incinerate.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Flying\DragonAscent.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ghost\PhantomForce.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ghost\ShadowForce.vb"> <Compile Include="Pokemon\Attacks\Ghost\ShadowForce.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Grass\WorrySeed.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ground\PrecipiceBlades.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ground\ThousandArrows.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ground\ThousandWaves.vb"> <Compile Include="Pokemon\Attacks\Ground\ThousandWaves.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Ice\Avalanche.vb"> <Compile Include="Pokemon\Attacks\Ice\Avalanche.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile> </Compile>
<Compile Include="Pokemon\Attacks\Ice\Glaciate.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\Bestow.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\Celebrate.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\HoldBack.vb" />
<Compile Include="Pokemon\Attacks\Normal\Round.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\Judgement.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\Entrainment.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\TechnoBlast.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\ReflectType.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Normal\EchoedVoice.vb" />
<Compile Include="Pokemon\Attacks\Normal\SimpleBeam.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Poison\VenomDrench.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Psychic\HyperspaceHole.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Psychic\Synchronoise.vb" />
<Compile Include="Pokemon\Attacks\Psychic\Psystrike.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Rock\DiamondStorm.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Water\OriginPulse.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Items\KeyItems\LibertySeaMap.vb" /> <Compile Include="Pokemon\Items\KeyItems\LibertySeaMap.vb" />
<Compile Include="Pokemon\Items\Standard\DouseDrive.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Items\Standard\ChillDrive.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Items\Standard\ShockDrive.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Items\Standard\BurnDrive.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Items\Standard\ExpertBelt.vb" /> <Compile Include="Pokemon\Items\Standard\ExpertBelt.vb" />
<Compile Include="Resources\Blur\BlurHandler.vb" /> <Compile Include="Resources\Blur\BlurHandler.vb" />
<Content Include="Content\Data\Scripts\faraway\mewtwonite_y.dat"> <Content Include="Content\Data\Scripts\faraway\mewtwonite_y.dat">
@ -25770,7 +25866,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Pokemon\Items\_itemList.txt" /> <None Include="Pokemon\Items\_itemList.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="My Project\app.manifest" /> <None Include="My Project\app.manifest" />
<None Include="app.config" /> <None Include="app.config" />
</ItemGroup> </ItemGroup>
@ -25792,8 +25890,12 @@
<Compile Include="Battle\BattleSystemV2\BattleMenu.vb" /> <Compile Include="Battle\BattleSystemV2\BattleMenu.vb" />
<Compile Include="Battle\BattleSystemV2\BattleScreen.vb" /> <Compile Include="Battle\BattleSystemV2\BattleScreen.vb" />
<Compile Include="Battle\BattleSystemV2\BattleWeather.vb" /> <Compile Include="Battle\BattleSystemV2\BattleWeather.vb" />
<Compile Include="Battle\BattleSystemV2\FieldEffects.vb" /> <Compile Include="Battle\BattleSystemV2\FieldEffects.vb">
<Compile Include="Battle\BattleSystemV2\PokemonProfile.vb" /> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Battle\BattleSystemV2\PokemonProfile.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Battle\BattleSystemV2\QueryObjects\CameraQueryObject.vb" /> <Compile Include="Battle\BattleSystemV2\QueryObjects\CameraQueryObject.vb" />
<Compile Include="Battle\BattleSystemV2\QueryObjects\ChoosePokemonQueryObject.vb" /> <Compile Include="Battle\BattleSystemV2\QueryObjects\ChoosePokemonQueryObject.vb" />
<Compile Include="Battle\BattleSystemV2\QueryObjects\AfterFaintQueryObject.vb" /> <Compile Include="Battle\BattleSystemV2\QueryObjects\AfterFaintQueryObject.vb" />

View File

@ -1018,8 +1018,8 @@
returnMove = New Moves.Dark.Punishment() returnMove = New Moves.Dark.Punishment()
Case 387 Case 387
returnMove = New Moves.Normal.LastResort() returnMove = New Moves.Normal.LastResort()
'Case 388 Case 388
'Worry Seed returnMove = New Moves.Grass.WorrySeed()
Case 389 Case 389
returnMove = New Moves.Dark.SuckerPunch() returnMove = New Moves.Dark.SuckerPunch()
Case 390 Case 390
@ -1140,8 +1140,8 @@
returnMove = New Moves.Grass.GrassKnot() returnMove = New Moves.Grass.GrassKnot()
Case 448 Case 448
returnMove = New Moves.Flying.Chatter() returnMove = New Moves.Flying.Chatter()
'Case 449 Case 449
'Judgment returnMove = New Moves.Normal.Judgement()
Case 450 Case 450
returnMove = New Moves.Bug.BugBite() returnMove = New Moves.Bug.BugBite()
Case 451 Case 451
@ -1212,8 +1212,8 @@
returnMove = New Moves.Bug.QuiverDance() returnMove = New Moves.Bug.QuiverDance()
Case 484 Case 484
returnMove = New Moves.Steel.HeavySlam() returnMove = New Moves.Steel.HeavySlam()
'Case 485 Case 485
'Synchronoise returnMove = New Moves.Psychic.Synchronoise()
Case 486 Case 486
returnMove = New Moves.Electric.ElectroBall() returnMove = New Moves.Electric.ElectroBall()
'Case 487 'Case 487
@ -1228,16 +1228,16 @@
returnMove = New Moves.Poison.AcidSpray() returnMove = New Moves.Poison.AcidSpray()
Case 492 Case 492
returnMove = New Moves.Dark.FoulPlay() returnMove = New Moves.Dark.FoulPlay()
'Case 493 Case 493
'Simple Beam returnMove = New Moves.Normal.SimpleBeam()
'Case 494 Case 494
'Entertainment returnMove = New Moves.Normal.Entrainment()
'Case 495 'Case 495
'After You 'After You
'Case 496 Case 496
'Round returnMove = New Moves.Normal.Round()
'Case 497 Case 497
'Echoed Voice returnMove = New Moves.Normal.EchoedVoice()
Case 498 Case 498
returnMove = New Moves.Normal.ChipAway() returnMove = New Moves.Normal.ChipAway()
Case 499 Case 499
@ -1262,20 +1262,20 @@
returnMove = New Moves.Steel.ShiftGear() returnMove = New Moves.Steel.ShiftGear()
Case 509 Case 509
returnMove = New Moves.Fighting.CircleThrow() returnMove = New Moves.Fighting.CircleThrow()
'Case 510 Case 510
'Incinerate returnMove = New Moves.Fire.Incinerate()
'Case 511 'Case 511
'Quash 'Quash
Case 512 Case 512
returnMove = New Moves.Flying.Acrobatics() returnMove = New Moves.Flying.Acrobatics()
'Case 513 Case 513
'Reflect Type returnMove = New Moves.Normal.ReflectType()
'Case 514 'Case 514
'Retaliate 'Retaliate
'Case 515 Case 515
'Final Gambit returnMove = New Moves.Fighting.FinalGambit()
'Case 516 Case 516
'Bestow returnMove = New Moves.Normal.Bestow()
Case 517 Case 517
returnMove = New Moves.Fire.Inferno() returnMove = New Moves.Fire.Inferno()
Case 518 Case 518
@ -1322,8 +1322,8 @@
returnMove = New Moves.Grass.CottonGuard() returnMove = New Moves.Grass.CottonGuard()
Case 539 Case 539
returnMove = New Moves.Dark.NightDaze() returnMove = New Moves.Dark.NightDaze()
'Case 540 Case 540
'Psystrike returnMove = New Moves.Psychic.Psystrike()
Case 541 Case 541
returnMove = New Moves.Normal.TailSlap() returnMove = New Moves.Normal.TailSlap()
Case 542 Case 542
@ -1334,14 +1334,14 @@
returnMove = New Moves.Steel.GearGrind() returnMove = New Moves.Steel.GearGrind()
Case 545 Case 545
returnMove = New Moves.Fire.SearingShot() returnMove = New Moves.Fire.SearingShot()
'Case 546 Case 546
'Techno Blast returnMove = New Moves.Normal.TechnoBlast()
'Case 547 'Case 547
'Relic Song 'Relic Song
Case 548 Case 548
returnMove = New Moves.Fighting.SecretSword() returnMove = New Moves.Fighting.SecretSword()
'Case 549 Case 549
'Glaciate returnMove = New Moves.Ice.Glaciate()
Case 550 Case 550
returnMove = New Moves.Electric.BoltStrike() returnMove = New Moves.Electric.BoltStrike()
Case 551 Case 551
@ -1372,10 +1372,10 @@
'Rototiller 'Rototiller
Case 564 Case 564
returnMove = New Moves.Bug.StickyWeb() returnMove = New Moves.Bug.StickyWeb()
'Case 565 Case 565
'Fell Stinger returnMove = New Moves.Bug.FellStinger()
'Case 566 Case 566
'Phantom Force returnMove = New Moves.Ghost.PhantomForce()
'Case 567 'Case 567
'Trick-or-Treat 'Trick-or-Treat
Case 568 Case 568
@ -1392,8 +1392,8 @@
returnMove = New Moves.Ice.FreezeDry() returnMove = New Moves.Ice.FreezeDry()
Case 574 Case 574
returnMove = New Moves.Fairy.DisarmingVoice() returnMove = New Moves.Fairy.DisarmingVoice()
'Case 575 Case 575
'Parting Shot returnMove = New Moves.Dark.PartingShot()
'Case 576 'Case 576
'Topsy-Turvy 'Topsy-Turvy
Case 577 Case 577
@ -1424,12 +1424,12 @@
returnMove = New Moves.Normal.PlayNice() returnMove = New Moves.Normal.PlayNice()
Case 590 Case 590
returnMove = New Moves.Normal.Confide() returnMove = New Moves.Normal.Confide()
'Case 591 Case 591
'Diamond Storm returnMove = New Moves.Rock.DiamondStorm()
Case 592 Case 592
returnMove = New Moves.Water.SteamEruption() returnMove = New Moves.Water.SteamEruption()
'Case 593 Case 593
'Hyperspace Hole returnMove = New Moves.Psychic.HyperspaceHole()
Case 594 Case 594
returnMove = New Moves.Water.WaterShuriken() returnMove = New Moves.Water.WaterShuriken()
Case 595 Case 595
@ -1437,277 +1437,281 @@
'Case 596 'Case 596
'Spiky Shield 'Spiky Shield
'Case 597 'Case 597
'Aromatic Mist 'Aromatic Mist - Double Battles
Case 598 Case 598
returnMove = New Moves.Electric.EerieImpulse() returnMove = New Moves.Electric.EerieImpulse()
'Case 599 Case 599
'Vemon Drench returnMove = New Moves.Poison.VenomDrench()
'Case 600 'Case 600
'Powder 'Powder
'Case 601 Case 601
'Geomancy returnMove = New Moves.Fairy.Geomancy()
'Case 602 'Case 602
'Macnetic Flux 'Magnetic Flux - Double Battles
'Case 603 'Case 603
'Happy Hour 'Happy Hour
'Case 604 'Case 604
'Electric Terrain 'Electric Terrain
Case 605 Case 605
returnMove = New Moves.Fairy.DazzlingGleam() returnMove = New Moves.Fairy.DazzlingGleam()
'Case 606 Case 606
'Celebrate returnMove = New Moves.Normal.Celebrate()
'Case 607 'Case 607
'Hold Hands 'Hold Hands
Case 608 Case 608
returnMove = New Moves.Fairy.BabyDollEyes() returnMove = New Moves.Fairy.BabyDollEyes()
Case 609 Case 609
returnMove = New Moves.Electric.Nuzzle() returnMove = New Moves.Electric.Nuzzle()
'Case 610 Case 610
'Hold Back returnMove = New Moves.Normal.HoldBack()
Case 611 Case 611
returnMove = New Moves.Bug.Infestation() returnMove = New Moves.Bug.Infestation()
Case 612 Case 612
returnMove = New Moves.Fighting.PowerUpPunch() returnMove = New Moves.Fighting.PowerUpPunch()
Case 613 Case 613
returnMove = New Moves.Flying.OblivionWing() returnMove = New Moves.Flying.OblivionWing()
'Case 614 Case 614
'Thousand Arrows returnMove = New Moves.Ground.ThousandArrows()
Case 615 Case 615
returnMove = New Moves.Ground.ThousandWaves() returnMove = New Moves.Ground.ThousandWaves()
Case 616 Case 616
returnMove = New Moves.Ground.LandsWrath() returnMove = New Moves.Ground.LandsWrath()
'Case 617 Case 617
'Light of Ruin returnMove = New Moves.Fairy.LightOfRuin()
'Case 618 Case 618
'Origin Pulse returnMove = New Moves.Water.OriginPulse()
'Case 619 Case 619
'Precipice Blades returnMove = New Moves.Ground.PrecipiceBlades()
'Case 620 Case 620
'Dragon Ascent returnMove = New Moves.Flying.DragonAscent()
'Case 621 Case 621
'Hyperspace Fury returnMove = New Moves.Dark.HyperspaceFury()
'Case 622 '------------------------------------------------BEGIN Z MOVE STREAK
'Breakneck Blitz - Physical 'Case 622
'Case 623 'Breakneck Blitz - Physical
'Breakneck Blitz - Special 'Case 623
'Case 624 'Breakneck Blitz - Special
'All-Out Pummeling - Physical 'Case 624
'Case 625 'All-Out Pummeling - Physical
'All-Out Pummeling - Special 'Case 625
'Case 626 'All-Out Pummeling - Special
'Supersonic Skystrike - Physical 'Case 626
'Case 627 'Supersonic Skystrike - Physical
'Supersonic Skystrike - Special 'Case 627
'Case 628 'Supersonic Skystrike - Special
'Acid Downpour - Physical 'Case 628
'Case 629 'Acid Downpour - Physical
'Acid Downpour - Special 'Case 629
'Case 630 'Acid Downpour - Special
'Tectonic Rage - Physical 'Case 630
'Case 631 'Tectonic Rage - Physical
'Tectonic Rage - Special 'Case 631
'Case 632 'Tectonic Rage - Special
'Continental Crush - Physical 'Case 632
'Case 633 'Continental Crush - Physical
'Continental Crush - Special 'Case 633
'Case 634 'Continental Crush - Special
'Savage Spin-Out - Physical 'Case 634
'Case 635 'Savage Spin-Out - Physical
'Savage Spin-Out - Special 'Case 635
'Case 636 'Savage Spin-Out - Special
'Never-Ending Nightmare - Physical 'Case 636
'Case 637 'Never-Ending Nightmare - Physical
'Never-Ending Nightmare - Special 'Case 637
'Case 638 'Never-Ending Nightmare - Special
'Corkscrew Crash - Physical 'Case 638
'Case 639 'Corkscrew Crash - Physical
'Corkscrew Crash - Special 'Case 639
'Case 640 'Corkscrew Crash - Special
'Inferno Overdrive - Physical 'Case 640
'Case 641 'Inferno Overdrive - Physical
'Inferno Overdrive - Special 'Case 641
'Case 642 'Inferno Overdrive - Special
'Hydro Vortex - Physical 'Case 642
'Case 643 'Hydro Vortex - Physical
'Hydro Vortex - Special 'Case 643
'Case 644 'Hydro Vortex - Special
'Bloom Doom - Physical 'Case 644
'Case 645 'Bloom Doom - Physical
'Bloom Doom - Special 'Case 645
'Case 646 'Bloom Doom - Special
'Gigavolt Havoc - Physical 'Case 646
'Case 647 'Gigavolt Havoc - Physical
'Gigavolt Havoc - Special 'Case 647
'Case 648 'Gigavolt Havoc - Special
'Shattered Psyche - Physical 'Case 648
'Case 649 'Shattered Psyche - Physical
'Shattered Psyche - Special 'Case 649
'Case 650 'Shattered Psyche - Special
'Subzero Slammer - Physical 'Case 650
'Case 651 'Subzero Slammer - Physical
'Subzero Slammer - Special 'Case 651
'Case 652 'Subzero Slammer - Special
'Devastating Drake - Physical 'Case 652
'Case 653 'Devastating Drake - Physical
'Devastating Drake - Special 'Case 653
'Case 654 'Devastating Drake - Special
'Black Hole Eclipse - Physical 'Case 654
'Case 655 'Black Hole Eclipse - Physical
'Black Hole Eclipse - Special 'Case 655
'Case 656 'Black Hole Eclipse - Special
'Twinkle Tackle - Physical 'Case 656
'Case 657 'Twinkle Tackle - Physical
'Twinkle Tackle - Special 'Case 657
'Case 658 'Twinkle Tackle - Special
'Catastropika 'Case 658
'Case 659 'Catastropika
'Shore Up '------------------------------------------------END Z MOVE STREAK
'Case 660 'Case 659
'First Impression 'returnMove = New Moves.Ground.ShoreUp()
'Case 661 'Case 660
'Baneful Bunker 'returnMove = New Moves.Bug.FirstImpression()
'Case 662 'Case 661
'Spirit Shackle 'Baneful Bunker
'Case 663 'Case 662
'Darkest Lariat 'returnMove = New Moves.Ghost.SpiritShackle()
'Case 664 'Case 663
'Sparkling Aria 'returnMove = New Moves.Dark.DarkestLariat()
'Case 665 'Case 664
'Ice Hammer 'returnMove = New Moves.Water.SparklingAria()
'Case 666 'Case 665
'Floral Healing 'returnMove = New Moves.Ice.IceHammer()
'Case 667 'Case 666
'High Horsepower 'Floral Healing - Double Battles
'Case 668 'Case 667
'Strength Sap 'returnMove = New Moves.Ground.HighHorsepower()
'Case 669 'Case 668
'Solar Blade 'returnMove = New Moves.Grass.StrengthSap()
'Case 670 'Case 669
'Leafage 'returnMove = New Moves.Grass.SolarBlade()
'Case 671 'Case 670
'Spotlight 'returnMove = New Moves.Grass.Leafage()
'Case 672 'Case 671
'Toxic Thread 'Spotlight
'Case 673 'Case 672
'Laser Focus 'returnMove = New Moves.Poison.ToxicThread()
'Case 674 'Case 673
'Gear Up 'Laser Focus
'Case 675 'Case 674
'Throat Chop 'returnMove = New Moves.Steel.GearUp()
'Case 676 'Case 675
'Pollen Puff 'Throat Chop
'Case 677 'Case 676
'Anchor Shot 'returnMove = New Moves.Bug.PollenPuff()
'Case 678 'Case 677
'Psychic Terrain 'returnMove = New Moves.Steel.AnchorShot()
'Case 679 'Case 678
'Lunge 'Psychic Terrain
'Case 680 'Case 679
'Fire Lash 'returnMove = New Moves.Bug.Lunge()
'Case 681 'Case 680
'Power Trip 'returnMove = New Moves.Fire.FireLash()
'Case 682 'Case 681
'Burn Up 'returnMove = New Moves.Dark.PowerTrip()
'Case 683 'Case 682
'Speed Swap 'returnMove = New Moves.Fire.BurnUp()
'Case 684 'Case 683
'Smart Strike 'Speed Swap
'Case 685 'Case 684
'Purify 'returnMove = New Moves.Steel.SmartStrike()
'Case 686 'Case 685
'Revelation Dance 'Purify - Double Battles
'Case 687 'Case 686
'Core Enforcer 'returnMove = New Moves.Normal.RevelationDance()
'Case 688 'Case 687
'Trop Kick 'Core Enforcer
'Case 689 'Case 688
'Instruct 'returnMove = New Moves.Grass.TropKick()
'Case 690 'Case 689
'Beak Blast 'Instruct
'Case 691 'Case 690
'Clanging Scales 'Beak Blast
'Case 692 'Case 691
'Dragon Hammer 'returnMove = New Moves.Dragon.ClangingScales()
'Case 693 'Case 692
'Brutal Swing 'returnMove = New Moves.Dragon.DragonHammer()
'Case 694 'Case 693
'Aurora Veil 'returnMove = New Moves.Dark.BrutalSwing()
'Case 695 'Case 694
'Sinister Arrow Raid 'returnMove = New Moves.Ice.AuroraVeil()
'Case 696 'Case 695
'Malicious Moonsault 'Sinister Arrow Raid - Z-Move
'Case 697 'Case 696
'Oceanic Operetta 'Malicious Moonsault - Z-Move
'Case 698 'Case 697
'Guardian of Alola 'Oceanic Operetta - Z-Move
'Case 699 'Case 698
'Soul-Stealing 7-Star Strike 'Guardian of Alola - Z-Move
'Case 700 'Case 699
'Stoked Sparksurfer 'Soul-Stealing 7-Star Strike - Z-Move
'Case 701 'Case 700
'Pulverizing Pancake 'Stoked Sparksurfer - Z-Move
'Case 702 'Case 701
'Extreme Evoboost 'Pulverizing Pancake - Z-Move
'Case 703 'Case 702
'Genesis Supernova 'Extreme Evoboost - Z-Move
'Case 704 'Case 703
'Shell Trap 'Genesis Supernova - Z-Move
'Case 705 'Case 704
'Fleur Cannon 'Shell Trap
'Case 706 'Case 705
'Psychic Fangs 'returnMove = New Moves.Fairy.FleurCannon()
'Case 707 'Case 706
'Stomping Tantrum 'returnMove = New Moves.Psychic.PsychicFangs()
'Case 708 'Case 707
'Shadow Bone 'Stomping Tantrum
'Case 709 'Case 708
'Accelerock 'returnMove = New Moves.Ghost.ShadowBone()
'Case 710 'Case 709
'Liquidation 'returnMove = New Moves.Rock.Accelerock()
'Case 711 'Case 710
'Prismatic Laser 'returnMove = New Moves.Water.Liquidation()
'Case 712 'Case 711
'Spectral Thief 'returnMove = New Moves.Psychic.PrismaticLaser()
'Case 713 'Case 712
'Sunsteel Strike 'Spectral Thief
'Case 714 'Case 713
'Moongeist Beam 'returnMove = New Moves.Steel.SunsteelStrike()
'Case 715 'Case 714
'Tearful Look 'returnMove = New Moves.Ghost.MoongeistBeam()
'Case 716 'Case 715
'Zing Zap 'returnMove = New Moves.Normal.TearfulLook()
'Case 717 'Case 716
'Nature's Madness 'returnMove = New Moves.Electric.ZingZap()
'Case 718 'Case 717
'Multi-Attack 'returnMove = New Moves.Fairy.NaturesMadness()
'Case 719 'Case 718
'10,000,000 Volt Thunderbolt 'returnMove = New Moves.Normal.Multi-Attack()
'Case 720 'Case 719
'Mind Blown '10,000,000 Volt Thunderbolt - Z-Move
'Case 721 'Case 720
'Plasma Fists 'returnMove = New Moves.Fire.MindBlown()
'Case 722 'Case 721
'Photon Geyser 'Plasma Fists
'Case 723 'Case 722
'Light That Burns The Sky 'Photon Geyser
'Case 724 'Case 723
'Searing Sunraze Smash 'Light That Burns The Sky - Z-Move
'Case 725 'Case 724
'Menacing Moonraze Maelstrom 'Searing Sunraze Smash - Z-Move
'Case 726 'Case 725
'Let's Snuggle Forever 'Menacing Moonraze Maelstrom - Z-Move
'Case 727 'Case 726
'Splintered Stormshards 'Let's Snuggle Forever - Z-Move
'Case 728 'Case 727
'Clangorous Soulblaze 'Splintered Stormshards - Z-Move
'Case 729 'Case 728
'Blank 'Clangorous Soulblaze - Z-Move
'Case 729
'Blank
Case 999 Case 999
If GameController.IS_DEBUG_ACTIVE = True Or Core.Player.SandBoxMode = True Then If GameController.IS_DEBUG_ACTIVE = True Or Core.Player.SandBoxMode = True Then
returnMove = New Moves.Special.TheDerpMove() returnMove = New Moves.Special.TheDerpMove()
Else Else
returnMove = New Moves.Normal.Pound() returnMove = New Moves.Normal.Pound()
End If End If
Case 9999
returnMove = New Moves.Fighting.FlyingPress()
Case Else Case Else
'Try to load a GameMode move. 'Try to load a GameMode move.
Dim gameModeMove As Attack = GameModeAttackLoader.GetAttackByID(ID) Dim gameModeMove As Attack = GameModeAttackLoader.GetAttackByID(ID)

View File

@ -0,0 +1,69 @@
Namespace BattleSystem.Moves.Bug
Public Class FellStinger
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Bug)
Me.ID = 565
Me.OriginalPP = 25
Me.CurrentPP = 25
Me.MaxPP = 25
Me.Power = 50
Me.Accuracy = 100
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Fell Stinger"
Me.Description = "When the user knocks out a target with this move, the user's Attack stat rises drastically."
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.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 p As Pokemon = BattleScreen.OwnPokemon
Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then
p = BattleScreen.OppPokemon
op = BattleScreen.OwnPokemon
End If
If op.HP = 0 Then
BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Attack", 3, "", "move:fellstinger")
End If
End Sub
End Class
End Namespace

View File

@ -55,7 +55,24 @@
Me.AIField2 = AIField.Nothing Me.AIField2 = AIField.Nothing
End Sub End Sub
Public Overrides Function MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean
Dim p As Pokemon = BattleScreen.OwnPokemon
If Own = False Then
p = BattleScreen.OppPokemon
End If
If p.Number = 491 Then
Return False
Else
BattleScreen.BattleQuery.Add(New TextQueryObject("But " & p.GetDisplayName() & " can't use the move!"))
Return True
End If
End Function
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim p As Pokemon = BattleScreen.OwnPokemon
If own = False Then
p = BattleScreen.OppPokemon
End If
Dim b As Boolean = BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:darkvoid") Dim b As Boolean = BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:darkvoid")
If b = False Then If b = False Then
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))

View File

@ -0,0 +1,94 @@
Namespace BattleSystem.Moves.Dark
Public Class HyperspaceFury
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Dark)
Me.ID = 621
Me.OriginalPP = 25
Me.CurrentPP = 25
Me.MaxPP = 25
Me.Power = 100
Me.Accuracy = 0
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Tough
Me.Name = "Hyperspace Fury"
Me.Description = "Using its many arms, the user unleashes a barrage of attacks that ignore the effects of moves like Protect and Detect. But the users Defense stat falls."
Me.CriticalChance = 1
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
Me.Priority = 0
Me.TimesToAttack = 1
'#End
'#SpecialDefinitions
Me.MakesContact = False
Me.ProtectAffected = False
Me.MagicCoatAffected = False
Me.SnatchAffected = False
Me.MirrorMoveAffected = False
Me.KingsrockAffected = True
Me.CounterAffected = True
Me.DisabledWhileGravity = False
Me.UseEffectiveness = True
Me.ImmunityAffected = True
Me.RemovesFrozen = False
Me.HasSecondaryEffect = True
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 = False
Me.CanHitUnderwater = False
Me.CanHitUnderground = False
Me.CanHitInMidAir = False
'#End
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.CannotMiss
End Sub
Public Overrides Function MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean
Dim p As Pokemon = BattleScreen.OwnPokemon
If Own = False Then
p = BattleScreen.OppPokemon
End If
If p.Number = 720 And p.AdditionalData = "unbound" Then
Return False
Else
BattleScreen.BattleQuery.Add(New TextQueryObject("But " & p.GetDisplayName() & " can't use the move!"))
Return True
End If
End Function
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.Battle.LowerStat(own, own, BattleScreen, "Defense", 1, "", "move:hyperspacefury")
BattleScreen.BattleQuery.Add(New TextQueryObject("Hyperspace Fury lifted " & op.GetDisplayName() & "'s protection!"))
End Sub
End Class
End Namespace

View File

@ -70,12 +70,18 @@
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
Return Power Return Power
End If End If
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
Return Power
End If
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
Return Power Return Power
End If End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
Return Power Return Power
End If End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Return Power
End If
Return CInt(Me.Power * 1.5F) Return CInt(Me.Power * 1.5F)
End Function End Function
@ -98,12 +104,18 @@
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
Exit Sub Exit Sub
End If End If
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
Exit Sub
End If
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
op.OriginalItem = Item.GetItemByID(op.Item.ID) op.OriginalItem = Item.GetItemByID(op.Item.ID)
op.OriginalItem.AdditionalData = op.Item.AdditionalData op.OriginalItem.AdditionalData = op.Item.AdditionalData

View File

@ -0,0 +1,96 @@
Namespace BattleSystem.Moves.Dark
Public Class PartingShot
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Dark)
Me.ID = 575
Me.OriginalPP = 20
Me.CurrentPP = 20
Me.MaxPP = 20
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Parting Shot"
Me.Description = "With a parting threat, the user lowers the target's Attack and Sp. Atk stats. Then it switches with a party Pokémon."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
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 = True
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 = True
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True
'#End
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:partingshot")
Dim d As Boolean = BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Special Attack", 1, "", "move:partingshot")
If b = False Or d = False Then
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
Public Overrides Sub MoveSwitch(own As Boolean, BattleScreen As BattleScreen)
If own = True Then
If Core.Player.CountFightablePokemon > 1 Then
BattleScreen.Battle.SwitchOutOwn(BattleScreen, GetPokemonIndex(BattleScreen, own), -1)
End If
Else
If BattleScreen.IsTrainerBattle = True Or BattleScreen.IsRemoteBattle = True Or BattleScreen.IsPVPBattle = True Then
If BattleScreen.Trainer.CountUseablePokemon > 1 Then
BattleScreen.Battle.SwitchOutOpp(BattleScreen, GetPokemonIndex(BattleScreen, own))
End If
End If
End If
End Sub
Private Function GetPokemonIndex(ByVal BattleScreen As BattleScreen, ByVal own As Boolean) As Integer
If own = True Then
Dim i As Integer = 0
While Core.Player.Pokemons(i).HP <= 0 Or Core.Player.Pokemons(i).Status = Pokemon.StatusProblems.Fainted Or i = BattleScreen.OwnPokemonIndex Or Core.Player.Pokemons(i).IsEgg() = True
i += 1
End While
Return i
Else
Dim i As Integer = 0
While BattleScreen.Trainer.Pokemons(i).HP <= 0 Or BattleScreen.Trainer.Pokemons(i).Status = Pokemon.StatusProblems.Fainted Or i = BattleScreen.OppPokemonIndex Or BattleScreen.Trainer.Pokemons(i).IsEgg() = True
i += 1
End While
Return i
End If
Return -1
End Function
End Class
End Namespace

View File

@ -75,15 +75,30 @@ Namespace BattleSystem.Moves.Dark
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If CheckMultitypePlate(p, op) = False Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" plate") = True AndAlso p.Number = 493 Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" plate") = True AndAlso op.Number = 493 Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" memory") = True AndAlso p.Number = 773 Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" memory") = True AndAlso op.Number = 773 Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" mail") = True Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" mail") = True Then
CanSwitchItems = False
End If
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
CanSwitchItems = False CanSwitchItems = False
End If End If
@ -105,25 +120,6 @@ Namespace BattleSystem.Moves.Dark
End If End If
End Sub End Sub
Private Function CheckMultitypePlate(ByVal p As Pokemon, ByVal op As Pokemon) As Boolean
If p.Ability.Name.ToLower() <> "multitype" And op.Ability.Name.ToLower() <> "multitype" Then
Return True
Else
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower().EndsWith(" plate") = True Then
Return False
End If
End If
If Not op.Item Is Nothing Then
If op.Item.Name.ToLower().EndsWith(" plate") = True Then
Return False
End If
End If
End If
Return True
End Function
End Class End Class
End Namespace End Namespace

View File

@ -70,12 +70,18 @@
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
Exit Sub Exit Sub
End If End If
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
Exit Sub
End If
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
If p.Item Is Nothing Then If p.Item Is Nothing Then
Dim ItemID As Integer = op.Item.ID Dim ItemID As Integer = op.Item.ID

View File

@ -0,0 +1,70 @@
Namespace BattleSystem.Moves.Fairy
Public Class Geomancy
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fairy)
Me.ID = 601
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Geomancy"
Me.Description = "The user absorbs energy and sharply raises its Sp. Atk, Sp. Def, and Speed stats on the next turn."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.Self
Me.Priority = 0
Me.TimesToAttack = 1
'#End
'#SpecialDefinitions
Me.MakesContact = False
Me.ProtectAffected = False
Me.MagicCoatAffected = False
Me.SnatchAffected = False
Me.MirrorMoveAffected = False
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 = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
'#End
Me.AIField1 = AIField.CanRaiseSpAttack
Me.AIField2 = AIField.CanRaiseSpDefense
Me.AIField3 = AIField.CanRaiseSpeed
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
End Class
End Namespace

View File

@ -0,0 +1,73 @@
Namespace BattleSystem.Moves.Fairy
Public Class LightOfRuin
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fairy)
Me.ID = 617
Me.OriginalPP = 5
Me.CurrentPP = 5
Me.MaxPP = 5
Me.Power = 140
Me.Accuracy = 90
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Light of Ruin"
Me.Description = "Drawing power from the Eternal Flower, the user fires a powerful beam of light. This also damages the user quite a lot."
Me.CriticalChance = 1
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 = True
Me.IsPunchingMove = False
Me.IsDamagingMove = True
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True
'#End
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.Recoil
End Sub
Public Overrides Sub MoveRecoil(own As Boolean, BattleScreen As BattleScreen)
Dim lastDamage As Integer = BattleScreen.FieldEffects.OwnLastDamage
If own = False Then
lastDamage = BattleScreen.FieldEffects.OppLastDamage
End If
Dim recoilDamage As Integer = CInt(Math.Floor(lastDamage / 2))
If recoilDamage <= 0 Then
recoilDamage = 1
End If
BattleScreen.Battle.InflictRecoil(own, own, BattleScreen, Me, recoilDamage, "", "move:lightofruin")
End Sub
End Class
End Namespace

View File

@ -0,0 +1,70 @@
Namespace BattleSystem.Moves.Fighting
Public Class FinalGambit
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fighting)
Me.ID = 515
Me.OriginalPP = 5
Me.CurrentPP = 5
Me.MaxPP = 5
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Tough
Me.Name = "Final Gambit"
Me.Description = "The user risks everything to attack its target. The user faints but does damage equal to its HP."
Me.CriticalChance = 0
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 = False
Me.CounterAffected = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = False
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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.Selfdestruct
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim p As Pokemon = BattleScreen.OwnPokemon
If own = False Then
p = BattleScreen.OppPokemon
End If
Dim dmg As Integer = p.HP
BattleScreen.Battle.ReduceHP(dmg, own, own, BattleScreen, "", "move:finalgambit")
BattleScreen.Battle.ReduceHP(dmg, Not own, own, BattleScreen, "", "move:finalgambit")
End Sub
End Class
End Namespace

View File

@ -0,0 +1,57 @@
Namespace BattleSystem.Moves.Fighting
Public Class FlyingPress
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fighting)
Me.ID = 9999
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 100
Me.Accuracy = 95
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Tough
Me.Name = "Flying Press"
Me.Description = "The user dives down onto the target from the sky. This move is Fighting and Flying type simultaneously."
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 = True
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

View File

@ -0,0 +1,76 @@
Namespace BattleSystem.Moves.Fire
Public Class Incinerate
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fire)
Me.ID = 510
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 60
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Tough
Me.Name = "Incinerate"
Me.Description = "The user attacks opposing Pokémon with fire. If a Pokémon is holding a certain item, such as a Berry, the item becomes burned up and unusable."
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 = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = True
Me.ImmunityAffected = True
Me.HasSecondaryEffect = True
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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.Nothing
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
If Not op.Item Is Nothing Then
If op.Item.IsBerry = True OrElse op.Item.Name.ToLower().EndsWith(" gem") Then
Dim ItemID As Integer = op.Item.ID
BattleScreen.Battle.RemoveHeldItem(Not own, own, BattleScreen, op.GetDisplayName() & "'s " & op.Item.Name & " got burned up!", "move:incinerate")
End If
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,65 @@
Namespace BattleSystem.Moves.Flying
Public Class DragonAscent
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Flying)
Me.ID = 620
Me.OriginalPP = 5
Me.CurrentPP = 5
Me.MaxPP = 5
Me.Power = 120
Me.Accuracy = 100
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Dragon Ascent"
Me.Description = "After soaring upward, the user attacks its target by dropping out of the sky at high speeds. But it lowers its own Defense and Sp. Def stats in the process."
Me.CriticalChance = 1
Me.IsHMMove = False
Me.Target = Targets.OneFoe
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.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 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
End Sub
End Class
End Namespace

View File

@ -0,0 +1,200 @@
Namespace BattleSystem.Moves.Ghost
Public Class PhantomForce
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Ghost)
Me.ID = 566
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 90
Me.Accuracy = 100
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Phantom Force"
Me.Description = "The user vanishes somewhere, 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 phantomforce As Integer = BattleScreen.FieldEffects.OwnPhantomForceCounter
If own = False Then
phantomforce = BattleScreen.FieldEffects.OppPhantomForceCounter
End If
If phantomforce = 0 Then
Return False
Else
Return True
End If
End Function
Public Overrides Sub PreAttack(Own As Boolean, BattleScreen As BattleScreen)
Dim phantomforce As Integer = BattleScreen.FieldEffects.OwnPhantomForceCounter
If Own = False Then
phantomforce = BattleScreen.FieldEffects.OppPhantomForceCounter
End If
If phantomforce = 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 phantomforceCounter As Integer = BattleScreen.FieldEffects.OwnPhantomForceCounter
If Own = False Then
phantomforceCounter = BattleScreen.FieldEffects.OppPhantomForceCounter
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 Phantom Force!", "move:phantomforce") = True Then
hasToCharge = False
End If
End If
End If
If phantomforceCounter = 0 And hasToCharge = True Then
If Own = True Then
BattleScreen.FieldEffects.OwnPhantomForceCounter = 1
Else
BattleScreen.FieldEffects.OppPhantomForceCounter = 1
End If
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " vanished instantly!"))
Return True
Else
If Own = True Then
BattleScreen.FieldEffects.OwnPhantomForceCounter = 0
Else
BattleScreen.FieldEffects.OppPhantomForceCounter = 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.OwnPhantomForceCounter = 0
Else
BattleScreen.FieldEffects.OppPhantomForceCounter = 0
End If
End Sub
Public Overrides Function DeductPP(own As Boolean, BattleScreen As BattleScreen) As Boolean
Dim PhantomForce As Integer = BattleScreen.FieldEffects.OwnPhantomForceCounter
If own = False Then
PhantomForce = BattleScreen.FieldEffects.OppPhantomForceCounter
End If
If PhantomForce = 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.OwnPhantomForceCounter = 0
Else
BattleScreen.FieldEffects.OppPhantomForceCounter = 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("Phantom Force lifted " & op.GetDisplayName() & "'s protection!"))
End Sub
End Class
End Namespace

View File

@ -0,0 +1,72 @@
Namespace BattleSystem.Moves.Grass
Public Class WorrySeed
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Grass)
Me.ID = 388
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Worry Seed"
Me.Description = "A seed that causes worry is planted on the target. It prevents sleep by making the target's Ability Insomnia."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
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.IsHealingMove = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = False
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.ImmunityAffected = True
Me.IsDamagingMove = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
'#End
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then
op = BattleScreen.OwnPokemon
End If
Dim bannedAbilities() As String = {"insomnia", "truant", "multitype", "stance change", "schooling", "comatose", "shields down", "disguise", "rks system", "battle bond"}
If bannedAbilities.Contains(op.Ability.Name.ToLower()) = False Then
op.Ability = Ability.GetAbilityByID(15)
BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " acquired Insomnia!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,57 @@
Namespace BattleSystem.Moves.Ground
Public Class PrecipiceBlades
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Ground)
Me.ID = 619
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 120
Me.Accuracy = 85
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Precipice Blades"
Me.Description = "The user attacks opposing Pokémon by manifesting the power of the land in fearsome blades of stone."
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
End Class
End Namespace

View File

@ -0,0 +1,58 @@
Namespace BattleSystem.Moves.Ground
Public Class ThousandArrows
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Ground)
Me.ID = 614
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 90
Me.Accuracy = 100
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Thousand Arrows"
Me.Description = "This move also hits opposing Pokémon that are in the air. Those Pokémon are knocked down to the ground."
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 = False
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
Me.CanHitInMidAir = True
'#End
End Sub
End Class
End Namespace

View File

@ -52,20 +52,6 @@
'#End '#End
End Sub 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 Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
If own = True Then If own = True Then
If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then

View File

@ -73,7 +73,7 @@
If Not p.Item Is Nothing 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 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 Ice Burn!", "move:iceburn") = True Then If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "Power Herb pushed the use of Freeze Shock!", "move:freezeshock") = True Then
freezeshock = 1 freezeshock = 1
End If End If
End If End If

View File

@ -0,0 +1,64 @@
Namespace BattleSystem.Moves.Ice
Public Class Glaciate
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Ice)
Me.ID = 549
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 65
Me.Accuracy = 95
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Glaciate"
Me.Description = "The user attacks by blowing freezing cold air at opposing Pokémon. This lowers their Speed stat."
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 = False
Me.CounterAffected = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = True
Me.ImmunityAffected = True
Me.RemovesFrozen = False
Me.HasSecondaryEffect = True
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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.LowerSpeed
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Speed", 1, "", "move:glaciate")
End Sub
End Class
End Namespace

View File

@ -0,0 +1,107 @@
Namespace BattleSystem.Moves.Normal
Public Class Bestow
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 516
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Cute
Me.Name = "Bestow"
Me.Description = "The user passes its held item to the target when the target isn't holding an item."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
Me.Priority = 0
Me.TimesToAttack = 1
'#End
'#SpecialDefinitions
Me.MakesContact = False
Me.ProtectAffected = False
Me.MagicCoatAffected = False
Me.SnatchAffected = False
Me.MirrorMoveAffected = True
Me.KingsrockAffected = False
Me.CounterAffected = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = False
Me.ImmunityAffected = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = 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
Me.UseAccEvasion = False
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.CannotMiss
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
If p.Item Is Nothing Then
Exit Sub
End If
If p.Item.IsMegaStone = True Then
Exit Sub
End If
If p.Ability.Name.ToLower() = "multitype" AndAlso p.Item.Name.ToLower().EndsWith(" plate") Then
Exit Sub
End If
If p.Ability.Name.ToLower() = "rks system" AndAlso p.Item.Name.ToLower().EndsWith(" memory") Then
Exit Sub
End If
If p.Item.Name.ToLower() = "griseous orb" And p.Number = 487 Then
Exit Sub
End If
If p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
Exit Sub
End If
If p.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
If op.Item Is Nothing Then
Dim ItemID As Integer = p.Item.ID
p.OriginalItem = Item.GetItemByID(p.Item.ID)
p.OriginalItem.AdditionalData = p.Item.AdditionalData
If BattleScreen.Battle.RemoveHeldItem(own, own, BattleScreen, op.GetDisplayName() & " received the item " & p.Item.Name & " from " & p.GetDisplayName() & "!", "move:bestow") Then
If own = False Then
BattleScreen.FieldEffects.StolenItemIDs.Add(ItemID)
End If
op.Item = Item.GetItemByID(ItemID)
End If
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,65 @@
Namespace BattleSystem.Moves.Normal
Public Class Celebrate
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 606
Me.OriginalPP = 40
Me.CurrentPP = 40
Me.MaxPP = 40
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Cute
Me.Name = "Celebrate"
Me.Description = "The Pokémon congratulates you on your special day!"
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.Self
Me.Priority = 0
Me.TimesToAttack = 1
'#End
'#SpecialDefinitions
Me.MakesContact = False
Me.ProtectAffected = False
Me.MagicCoatAffected = False
Me.SnatchAffected = False
Me.MirrorMoveAffected = False
Me.KingsrockAffected = False
Me.CounterAffected = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = False
Me.ImmunityAffected = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = False
Me.IsHealingMove = False
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.IsDamagingMove = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
Me.UseAccEvasion = False
'#End
Me.AIField1 = AIField.CannotMiss
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.BattleQuery.Add(New TextQueryObject("Congratulations, " & Core.Player.Name & "!"))
End Sub
End Class
End Namespace

View File

@ -73,12 +73,18 @@ Namespace BattleSystem.Moves.Normal
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
Exit Sub Exit Sub
End If End If
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
Exit Sub
End If
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
Exit Sub Exit Sub
End If End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
If p.Item Is Nothing Then If p.Item Is Nothing Then
Dim ItemID As Integer = op.Item.ID Dim ItemID As Integer = op.Item.ID

View File

@ -0,0 +1,138 @@
Namespace BattleSystem.Moves.Normal
Public Class EchoedVoice
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 497
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 40
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Echoed Voice"
Me.Description = "The user attacks the target with an echoing voice. If this move is used every turn, its power is increased."
Me.CriticalChance = 1
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 = True
Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True
'#End
End Sub
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
Dim echoed As Integer = BattleScreen.FieldEffects.OwnEchoedVoice
If own = False Then
echoed = BattleScreen.FieldEffects.OppEchoedVoice
End If
Dim p As Integer = Me.Power
If echoed > 0 Then
For i = 1 To echoed
p += 40
Next
End If
Return p
End Function
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim lastMove As Attack = BattleScreen.FieldEffects.OwnLastMove
If own = False Then
lastMove = BattleScreen.FieldEffects.OppLastMove
End If
If lastMove.ID <> 497 Then
If own = True Then
BattleScreen.FieldEffects.OwnEchoedVoice = 0
Else
BattleScreen.FieldEffects.OppEchoedVoice = 0
End If
Else
Dim echoed As Integer = BattleScreen.FieldEffects.OwnEchoedVoice
If own = False Then
echoed = BattleScreen.FieldEffects.OppEchoedVoice
End If
If echoed < 4 Then
If own = True Then
BattleScreen.FieldEffects.OwnEchoedVoice += 1
Else
BattleScreen.FieldEffects.OppEchoedVoice += 1
End If
End If
End If
End Sub
Private Sub ResetCounter(ByVal own As Boolean, ByVal BattleScreen As BattleScreen)
If own = True Then
BattleScreen.FieldEffects.OwnEchoedVoice = 0
Else
BattleScreen.FieldEffects.OppEchoedVoice = 0
End If
End Sub
Public Overrides Sub MoveMisses(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub MoveProtectedDetected(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub MoveHasNoEffect(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub InflictedFlinch(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
ResetCounter(own, BattleScreen)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,77 @@
Namespace BattleSystem.Moves.Normal
Public Class Entrainment
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 494
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Cute
Me.Name = "Entrainment"
Me.Description = "The user dances with an odd rhythm that compels the target to mimic it, making the target's Ability the same as the user's."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
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.IsHealingMove = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = False
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.ImmunityAffected = True
Me.IsDamagingMove = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
'#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 bannedAbilitiesOpp() As String = {"simple", "truant", "multitype", "stance change", "schooling", "comatose", "shields down", "disguise", "rks system", "battle bond"}
Dim bannedAbilitiesOwn() As String = {"trace", "forecast", "flower gift", "zen mode", "illusion", "imposter", "power of alchemy", "receiver", "disguise", "power construct"}
If bannedAbilitiesOpp.Contains(op.Ability.Name.ToLower()) = False AndAlso bannedAbilitiesOwn.Contains(p.Ability.Name.ToLower()) = False Then
op.Ability = Ability.GetAbilityByID(p.Ability.ID)
BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " acquired " & op.Ability.Name() & "!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,82 @@
Namespace BattleSystem.Moves.Normal
Public Class HoldBack
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 610
Me.OriginalPP = 40
Me.CurrentPP = 40
Me.MaxPP = 40
Me.Power = 40
Me.Accuracy = 100
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Hold Back"
Me.Description = "The user holds back when it attacks, and the target is left with at least 1 HP."
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.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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Function GetDamage(Critical As Boolean, Own As Boolean, targetPokemon As Boolean, BattleScreen As BattleScreen, Optional ExtraParameter As String = "") As Integer
Dim d As Integer = MyBase.GetDamage(Critical, Own, targetPokemon, BattleScreen)
Dim subst As Integer = BattleScreen.FieldEffects.OppSubstitute
If Own = False Then
subst = BattleScreen.FieldEffects.OwnSubstitute
End If
If subst = 0 Then
Dim op As Pokemon = BattleScreen.OppPokemon
If Own = False Then
op = BattleScreen.OwnPokemon
End If
If d >= op.HP Then
d = op.HP - 1
End If
End If
Return d
End Function
End Class
End Namespace

View File

@ -40,13 +40,13 @@
Me.RemovesFrozen = False Me.RemovesFrozen = False
Me.IsHealingMove = False Me.IsHealingMove = False
Me.IsRecoilMove = True Me.IsRecoilMove = False
Me.IsPunchingMove = False Me.IsPunchingMove = False
Me.IsDamagingMove = True Me.IsDamagingMove = True
Me.IsProtectMove = False Me.IsProtectMove = False
Me.IsSoundMove = True Me.IsSoundMove = True
Me.IsAffectedBySubstitute = True Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True Me.IsWonderGuardAffected = True
'#End '#End

View File

@ -0,0 +1,110 @@
Namespace BattleSystem.Moves.Normal
Public Class Judgement
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 449
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 100
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Judgement"
Me.Description = "The user releases countless shots of light at the target. This move's type varies depending on the kind of Plate the user is holding."
Me.CriticalChance = 1
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
Public Overrides Function GetAttackType(own As Boolean, BattleScreen As BattleScreen) As Element
Dim p As Pokemon = BattleScreen.OwnPokemon
If own = False Then
p = BattleScreen.OppPokemon
End If
Dim itemID As Integer = 0
If Not p.Item Is Nothing Then
itemID = p.Item.ID
End If
Select Case p.Item.ID
Case 267
Return New Element(Element.Types.Dragon)
Case 268
Return New Element(Element.Types.Dark)
Case 269
Return New Element(Element.Types.Ground)
Case 270
Return New Element(Element.Types.Fighting)
Case 271
Return New Element(Element.Types.Fire)
Case 272
Return New Element(Element.Types.Ice)
Case 273
Return New Element(Element.Types.Bug)
Case 274
Return New Element(Element.Types.Steel)
Case 275
Return New Element(Element.Types.Grass)
Case 276
Return New Element(Element.Types.Psychic)
Case 277
Return New Element(Element.Types.Fairy)
Case 278
Return New Element(Element.Types.Flying)
Case 279
Return New Element(Element.Types.Water)
Case 280
Return New Element(Element.Types.Ghost)
Case 281
Return New Element(Element.Types.Rock)
Case 282
Return New Element(Element.Types.Poison)
Case 283
Return New Element(Element.Types.Electric)
Case Else
Return New Element(Element.Types.Normal)
End Select
Return Me.Type
End Function
End Class
End Namespace

View File

@ -74,7 +74,7 @@ Namespace BattleSystem.Moves.Normal
BattleScreen.FieldEffects.OppPayDayCounter += coinAmount BattleScreen.FieldEffects.OppPayDayCounter += coinAmount
End If End If
BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered anywhere!")) BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered everywhere!"))
End Sub End Sub
End Class End Class

View File

@ -0,0 +1,75 @@
Namespace BattleSystem.Moves.Normal
Public Class ReflectType
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 513
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Reflect Type"
Me.Description = "The user reflects the target's type, making it the same type as the target."
Me.CriticalChance = 0
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 = False
Me.KingsrockAffected = False
Me.CounterAffected = False
Me.DisabledWhileGravity = False
Me.UseEffectiveness = False
Me.ImmunityAffected = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = False
Me.IsHealingMove = False
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.IsDamagingMove = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
Me.UseAccEvasion = False
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.CannotMiss
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
p.OriginalType1 = New Element(p.Type1.Type)
p.OriginalType2 = New Element(p.Type2.Type)
p.Type1 = New Element(op.Type1.Type)
p.Type2 = New Element(op.Type2.Type)
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s type changed to match " & op.OriginalName & "'s!"))
End Sub
End Class
End Namespace

View File

@ -0,0 +1,78 @@
Namespace BattleSystem.Moves.Normal
Public Class Round
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 496
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 60
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Round"
Me.Description = "The user attacks the target with a song. Others can join in the Round to increase the power of the attack."
Me.CriticalChance = 1
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 = True
Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True
'#End
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.ID = 496 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.ID = 496 Then
Return Me.Power * 2
End If
End If
End If
End If
Return Me.Power
End Function
End Class
End Namespace

View File

@ -0,0 +1,72 @@
Namespace BattleSystem.Moves.Normal
Public Class SimpleBeam
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 493
Me.OriginalPP = 15
Me.CurrentPP = 15
Me.MaxPP = 15
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Cute
Me.Name = "Simple Beam"
Me.Description = "The user's mysterious psychic wave changes the target's Ability to Simple."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
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.IsHealingMove = False
Me.HasSecondaryEffect = False
Me.RemovesFrozen = False
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.ImmunityAffected = True
Me.IsDamagingMove = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
'#End
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then
op = BattleScreen.OwnPokemon
End If
Dim bannedAbilities() As String = {"simple", "truant", "multitype", "stance change", "schooling", "comatose", "shields down", "disguise", "rks system", "battle bond"}
If bannedAbilities.Contains(op.Ability.Name.ToLower()) = False Then
op.Ability = Ability.GetAbilityByID(86)
BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " acquired Simple!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,84 @@
Namespace BattleSystem.Moves.Normal
Public Class TechnoBlast
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Normal)
Me.ID = 546
Me.OriginalPP = 5
Me.CurrentPP = 5
Me.MaxPP = 5
Me.Power = 120
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Techno Blast"
Me.Description = "The user fires a beam of light at its target. The move's type changes depending on the Drive the user holds."
Me.CriticalChance = 1
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
Public Overrides Function GetAttackType(own As Boolean, BattleScreen As BattleScreen) As Element
Dim p As Pokemon = BattleScreen.OwnPokemon
If own = False Then
p = BattleScreen.OppPokemon
End If
Dim itemID As Integer = 0
If Not p.Item Is Nothing Then
itemID = p.Item.ID
End If
Select Case p.Item.ID
Case 1996
Return New Element(Element.Types.Fire)
Case 1997
Return New Element(Element.Types.Ice)
Case 1998
Return New Element(Element.Types.Water)
Case 1999
Return New Element(Element.Types.Electric)
Case Else
Return New Element(Element.Types.Normal)
End Select
Return Me.Type
End Function
End Class
End Namespace

View File

@ -0,0 +1,72 @@
Namespace BattleSystem.Moves.Poison
Public Class VenomDrench
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Poison)
Me.ID = 599
Me.OriginalPP = 20
Me.CurrentPP = 20
Me.MaxPP = 20
Me.Power = 0
Me.Accuracy = 100
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Venom Drench"
Me.Description = "Opposing Pokémon are drenched in an odd poisonous liquid. This lowers the Attack, Sp. Atk, and Speed stats of a poisoned target."
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 = False
Me.KingsrockAffected = False
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 = False
Me.IsProtectMove = False
Me.IsSoundMove = False
Me.IsAffectedBySubstitute = True
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = False
'#End
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then
op = BattleScreen.OwnPokemon
End If
If op.Status = Pokemon.StatusProblems.Poison OrElse op.Status = Pokemon.StatusProblems.BadPoison Then
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:venomdrench")
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Special Attack", 1, "", "move:venomdrench")
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Speed", 1, "", "move:venomdrench")
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -56,11 +56,11 @@
End Sub End Sub
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
Dim p As Pokemon = BattleScreen.OppPokemon Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then If own = False Then
p = BattleScreen.OwnPokemon op = BattleScreen.OwnPokemon
End If End If
If p.Status = Pokemon.StatusProblems.Poison Then If op.Status = Pokemon.StatusProblems.Poison OrElse op.Status = Pokemon.StatusProblems.BadPoison Then
Return 130 Return 130
Else Else
Return Me.Power Return Me.Power

View File

@ -0,0 +1,80 @@
Namespace BattleSystem.Moves.Psychic
Public Class HyperspaceHole
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Psychic)
Me.ID = 593
Me.OriginalPP = 25
Me.CurrentPP = 25
Me.MaxPP = 25
Me.Power = 50
Me.Accuracy = 0
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Hyperspace Hole"
Me.Description = "Using a hyperspace hole, the user appears right next to the target and strikes. This also hits a target using a move such as Protect or Detect."
Me.CriticalChance = 1
Me.IsHMMove = False
Me.Target = Targets.OneAdjacentTarget
Me.Priority = 0
Me.TimesToAttack = 1
'#End
'#SpecialDefinitions
Me.MakesContact = False
Me.ProtectAffected = False
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.RemovesFrozen = False
Me.HasSecondaryEffect = True
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 = False
Me.CanHitUnderwater = False
Me.CanHitUnderground = False
Me.CanHitInMidAir = False
'#End
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.CannotMiss
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("Hyperspace Hole lifted " & op.GetDisplayName() & "'s protection!"))
End Sub
End Class
End Namespace

View File

@ -0,0 +1,61 @@
Namespace BattleSystem.Moves.Psychic
Public Class Psystrike
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Psychic)
Me.ID = 540
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 100
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Cool
Me.Name = "Psystrike"
Me.Description = "The user materializes an odd psychic wave to attack the target. This attack does physical damage."
Me.CriticalChance = 1
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.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 Function GetUseDefenseStat(p As Pokemon) As Integer
Return p.Defense
End Function
End Class
End Namespace

View File

@ -0,0 +1,88 @@
Namespace BattleSystem.Moves.Psychic
Public Class Synchronoise
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Psychic)
Me.ID = 485
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 120
Me.Accuracy = 100
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Synchronoise"
Me.Description = "Using an odd shock wave, the user inflicts damage on any Pokémon of the same type in the area around it."
Me.CriticalChance = 1
Me.IsHMMove = False
Me.Target = Targets.AllAdjacentTargets
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.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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.Nothing
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
If op.Type2.Type = Element.Types.Blank Then
'Solo type
If op.Type1.Type = p.Type1.Type OrElse op.Type1.Type = p.Type2.Type Then
Return False
Else
Return True
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
Else
'Dual type
If op.Type1.Type = p.Type1.Type OrElse op.Type1.Type = p.Type2.Type OrElse op.Type2.Type = p.Type1.Type OrElse op.Type2.Type = p.Type2.Type Then
Return False
Else
Return True
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End If
End Function
End Class
End Namespace

View File

@ -75,15 +75,30 @@ Namespace BattleSystem.Moves.Psychic
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If CheckMultitypePlate(p, op) = False Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
CanSwitchItems = False CanSwitchItems = False
End If End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" plate") = True AndAlso p.Number = 493 Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" plate") = True AndAlso op.Number = 493 Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" memory") = True AndAlso p.Number = 773 Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" memory") = True AndAlso op.Number = 773 Then
CanSwitchItems = False
End If
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" mail") = True Then
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" mail") = True Then
CanSwitchItems = False
End If
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
CanSwitchItems = False CanSwitchItems = False
End If End If
@ -105,25 +120,6 @@ Namespace BattleSystem.Moves.Psychic
End If End If
End Sub End Sub
Private Function CheckMultitypePlate(ByVal p As Pokemon, ByVal op As Pokemon) As Boolean
If p.Ability.Name.ToLower() <> "multitype" And op.Ability.Name.ToLower() <> "multitype" Then
Return True
Else
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower().EndsWith(" plate") = True Then
Return False
End If
End If
If Not op.Item Is Nothing Then
If op.Item.Name.ToLower().EndsWith(" plate") = True Then
Return False
End If
End If
End If
Return True
End Function
End Class End Class
End Namespace End Namespace

View File

@ -0,0 +1,68 @@
Namespace BattleSystem.Moves.Rock
Public Class DiamondStorm
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Rock)
Me.ID = 591
Me.OriginalPP = 5
Me.CurrentPP = 5
Me.MaxPP = 5
Me.Power = 100
Me.Accuracy = 95
Me.Category = Categories.Physical
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Diamond Storm"
Me.Description = "The user whips up a storm of diamonds to damage opposing Pokémon. This may also sharply raise the user's Defense stat."
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
Me.AIField1 = AIField.Damage
Me.AIField2 = AIField.CanRaiseDefense
Me.EffectChances.Add(50)
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
If Core.Random.Next(0, 100) < GetEffectChance(0, own, BattleScreen) Then
BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Defense", 2, "", "move:diamondstorm")
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,58 @@
Namespace BattleSystem.Moves.Water
Public Class OriginPulse
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Water)
Me.ID = 618
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 110
Me.Accuracy = 85
Me.Category = Categories.Special
Me.ContestCategory = ContestCategories.Beauty
Me.Name = "Origin Pulse"
Me.Description = "The user attacks opposing Pokémon with countless beams of light that glow a deep and brilliant blue."
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 = 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
Me.IsPulseMove = True
'#End
End Sub
End Class
End Namespace

View File

@ -0,0 +1,18 @@
Namespace Items.Standard
<Item(1996, "Burn Drive")>
Public Class BurnDrive
Inherits Item
Public Overrides ReadOnly Property Description As String = "Makes Techno Blast a Fire-type move if held by Genesect."
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(0, 312, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,18 @@
Namespace Items.Standard
<Item(1997, "Chill Drive")>
Public Class ChillDrive
Inherits Item
Public Overrides ReadOnly Property Description As String = "Makes Techno Blast an Ice-type move if held by Genesect."
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(24, 312, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,18 @@
Namespace Items.Standard
<Item(1998, "Douse Drive")>
Public Class DouseDrive
Inherits Item
Public Overrides ReadOnly Property Description As String = "Makes Techno Blast a Water-type move if held by Genesect."
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(48, 312, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,18 @@
Namespace Items.Standard
<Item(1999, "Shock Drive")>
Public Class ShockDrive
Inherits Item
Public Overrides ReadOnly Property Description As String = "Makes Techno Blast an Electric-type move if held by Genesect."
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(72, 312, 24, 24)
End Sub
End Class
End Namespace

Binary file not shown.

View File

@ -20,8 +20,9 @@
Dim tutorMove As BattleSystem.Attack = Pokemon.AttackLearns.Values(i) Dim tutorMove As BattleSystem.Attack = Pokemon.AttackLearns.Values(i)
Dim learnLevel As Integer = Pokemon.AttackLearns.Keys(i) Dim learnLevel As Integer = Pokemon.AttackLearns.Keys(i)
If learnLevel <= Pokemon.Level Then 'Commented those to test Tutor Gen 6+ behavior
Dim canLearnMove As Boolean = True 'If learnLevel <= Pokemon.Level Then
Dim canLearnMove As Boolean = True
For Each learnedAttack As BattleSystem.Attack In Pokemon.Attacks For Each learnedAttack As BattleSystem.Attack In Pokemon.Attacks
If learnedAttack.ID = tutorMove.ID Then If learnedAttack.ID = tutorMove.ID Then
@ -38,7 +39,7 @@
If canLearnMove = True Then If canLearnMove = True Then
MovesList.Add(tutorMove) MovesList.Add(tutorMove)
End If End If
End If 'End If
Next Next
Me.MouseVisible = False Me.MouseVisible = False