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
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 BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then
' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)})
' Exit Sub
'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:
If BattleScreen.FieldEffects.OwnSolarBeam >= 1 Then
SelectedMoveOwn = False
@ -309,11 +325,23 @@
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)}
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:
'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then
' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()}
'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:
If BattleScreen.FieldEffects.OppSolarBeam >= 1 Then
SelectedMoveOpp = False
@ -947,7 +975,9 @@
Dim dig As Integer
Dim dive As Integer
Dim skyDrop As Integer 'not implemented yet
Dim shadowForce As Integer
Dim geomancy As Integer
Dim shadowForce As Integer
Dim phantomForce As Integer
Dim skullBash As Integer
Dim skyAttack As Integer
Dim solarBeam As Integer
@ -966,7 +996,9 @@
dig = .OwnDigCounter
dive = .OwnDiveCounter
skyDrop = .OwnSkyDropCounter
geomancy = .OwnGeomancyCounter
shadowForce = .OwnShadowForceCounter
phantomForce = .OwnPhantomForceCounter
skullBash = .OwnSkullBashCounter
skyAttack = .OwnSkyAttackCounter
solarBeam = .OwnSolarBeam
@ -978,7 +1010,9 @@
dig = .OppDigCounter
dive = .OppDiveCounter
skyDrop = .OppSkyDropCounter
geomancy = .OppGeomancyCounter
shadowForce = .OppShadowForceCounter
phantomForce = .OppPhantomForceCounter
skullBash = .OppSkullBashCounter
skyAttack = .OppSkyAttackCounter
solarBeam = .OppSolarBeam
@ -1011,10 +1045,18 @@
If skyDrop = 0 Then
Return True
End If
Case "geomancy"
If geomancy = 0 Then
Return True
End If
Case "shadow force"
If shadowForce = 0 Then
Return True
End If
Case "phantom force"
If phantomForce = 0 Then
Return True
End If
Case "skull bash"
If skullBash = 0 Then
Return True
@ -1362,7 +1404,7 @@
If moveUsed.ProtectAffected = False Then
NoTargetCheck = False
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
End Select
End If
@ -1411,7 +1453,7 @@
If moveUsed.ProtectAffected = False Then
UseTwoTurnCheck = False
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
End Select
End If
@ -1471,6 +1513,17 @@
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
Dim skydrop As Integer = BattleScreen.FieldEffects.OppSkyDropCounter
If own = False Then
@ -1482,6 +1535,17 @@
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
DoesNotMiss = True
End If
@ -6119,6 +6183,7 @@
.OwnCustapBerry = 0
.OwnTrappedCounter = 0
.OwnFuryCutter = 0
.OwnEchoedVoice = 0
.OwnPokemonTurns = 0
.OwnStockpileCount = 0
.OwnDestinyBond = False
@ -6133,7 +6198,9 @@
.OwnBounceCounter = 0
.OwnDiveCounter = 0
.OwnShadowForceCounter = 0
.OwnPhantomForceCounter = 0
.OwnSkyDropCounter = 0
.OwnGeomancyCounter = 0
.OwnSkyAttackCounter = 0
.OwnRazorWindCounter = 0
.OwnSkullBashCounter = 0
@ -6454,6 +6521,7 @@
.OppCustapBerry = 0
.OppTrappedCounter = 0
.OppFuryCutter = 0
.OppEchoedVoice = 0
.OppPokemonTurns = 0
.OppStockpileCount = 0
.OppDestinyBond = False
@ -6464,7 +6532,9 @@
.OppBounceCounter = 0
.OppDiveCounter = 0
.OppShadowForceCounter = 0
.OppPhantomForceCounter = 0
.OppSkyDropCounter = 0
.OppGeomancyCounter = 0
.OppSkyAttackCounter = 0
.OppRazorWindCounter = 0
.OppSkullBashCounter = 0

View File

@ -667,6 +667,28 @@
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
If move.ID = 329 Then
If op.IsType(Element.Types.Ice) Then
@ -1470,7 +1492,7 @@
Dim SX 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)
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 OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves
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 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.
@ -76,7 +77,9 @@
Public OwnBounceCounter As Integer = 0
Public OwnDiveCounter As Integer = 0
Public OwnShadowForceCounter As Integer = 0
Public OwnPhantomForceCounter As Integer = 0
Public OwnSkyDropCounter As Integer = 0
Public OwnGeomancyCounter As Integer = 0
Public OwnWrap As Integer = 0
Public OwnWhirlpool As Integer = 0
Public OwnBind As Integer = 0
@ -187,6 +190,7 @@
Public OppMiracleEye As Integer = 0
Public OppProtectMovesCount As Integer = 0
Public OppFuryCutter As Integer = 0
Public OppEchoedVoice As Integer = 0
Public OppPokemonTurns As Integer = 0
Public OppStockpileCount As Integer = 0
Public OppIceBurnCounter As Integer = 0
@ -210,7 +214,9 @@
Public OppBounceCounter As Integer = 0
Public OppDiveCounter As Integer = 0
Public OppShadowForceCounter As Integer = 0
Public OppPhantomForceCounter As Integer = 0
Public OppSkyDropCounter As Integer = 0
Public OppGeomancyCounter As Integer = 0
Public OppWrap As Integer = 0
Public OppWhirlpool As Integer = 0

View File

@ -247,9 +247,17 @@
''' </summary>
Public ShadowForce As Integer = 0
''' <summary>
''' Phantom Force move counter.
''' </summary>
Public PhantomForce As Integer = 0
''' <summary>
''' Sky Drop move counter.
''' </summary>
Public SkyDrop As Integer = 0
''' <summary>
''' Geomancy move counter.
''' </summary>
Public Geomancy As Integer = 0
''' <summary>
''' Turns this Pokémon is trapped in Wrap.
@ -297,6 +305,10 @@
''' </summary>
Public FuryCutter As Integer = 0
''' <summary>
''' Counter for the Echoed Voice move.
''' </summary>
Public EchoedVoice As Integer = 0
''' <summary>
''' Counter for the Stockpile move.
''' </summary>
Public StockPile As Integer = 0
@ -449,6 +461,7 @@
Me.CustapBerry = 0
Me.Trapped = 0
Me.FuryCutter = 0
Me.EchoedVoice = 0
Me.TurnsInBattle = 0
Me.StockPile = 0
Me.DestinyBond = 0
@ -461,7 +474,9 @@
Me.Bounce = 0
Me.Dive = 0
Me.ShadowForce = 0
Me.PhantomForce = 0
Me.SkyDrop = 0
Me.Geomancy = 0
Me.SkyAttack = 0
Me.RazorWind = 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|20,227
Move|24,374
Move|28,560
Move|28,9999
Move|32,340
Move|36,283
Move|40,297

View File

@ -25508,25 +25508,121 @@
</Content>
<Compile Include="Pokemon\Abilities\Aerilate.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">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</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">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</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">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</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">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</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">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
<Compile Include="Pokemon\Attacks\Ice\Avalanche.vb">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</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\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="Resources\Blur\BlurHandler.vb" />
<Content Include="Content\Data\Scripts\faraway\mewtwonite_y.dat">
@ -25770,7 +25866,9 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<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="app.config" />
</ItemGroup>
@ -25792,8 +25890,12 @@
<Compile Include="Battle\BattleSystemV2\BattleMenu.vb" />
<Compile Include="Battle\BattleSystemV2\BattleScreen.vb" />
<Compile Include="Battle\BattleSystemV2\BattleWeather.vb" />
<Compile Include="Battle\BattleSystemV2\FieldEffects.vb" />
<Compile Include="Battle\BattleSystemV2\PokemonProfile.vb" />
<Compile Include="Battle\BattleSystemV2\FieldEffects.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\ChoosePokemonQueryObject.vb" />
<Compile Include="Battle\BattleSystemV2\QueryObjects\AfterFaintQueryObject.vb" />

View File

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

View File

@ -70,12 +70,18 @@
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
Exit Sub
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
Exit Sub
End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
Exit Sub
End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
If p.Item Is Nothing Then
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 Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim p As Pokemon = BattleScreen.OwnPokemon
Dim op As Pokemon = BattleScreen.OppPokemon
If own = False Then
p = BattleScreen.OppPokemon
op = BattleScreen.OwnPokemon
End If
Dim chance As Integer = GetEffectChance(0, own, BattleScreen)
If Core.Random.Next(0, 100) < chance Then
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:aurorabeam")
End If
End Sub
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
If own = True Then
If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then

View File

@ -73,7 +73,7 @@
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 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
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
Exit Sub
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
Exit Sub
End If
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
Exit Sub
End If
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
Exit Sub
End If
If p.Item Is Nothing Then
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.IsHealingMove = False
Me.IsRecoilMove = True
Me.IsRecoilMove = False
Me.IsPunchingMove = False
Me.IsDamagingMove = True
Me.IsProtectMove = False
Me.IsSoundMove = True
Me.IsAffectedBySubstitute = True
Me.IsAffectedBySubstitute = False
Me.IsOneHitKOMove = False
Me.IsWonderGuardAffected = True
'#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
End If
BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered anywhere!"))
BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered everywhere!"))
End Sub
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
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
p = BattleScreen.OwnPokemon
op = BattleScreen.OwnPokemon
End If
If p.Status = Pokemon.StatusProblems.Poison Then
If op.Status = Pokemon.StatusProblems.Poison OrElse op.Status = Pokemon.StatusProblems.BadPoison Then
Return 130
Else
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
CanSwitchItems = False
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
CanSwitchItems = False
End If
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
CanSwitchItems = False
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
CanSwitchItems = False
End If
@ -105,25 +120,6 @@ Namespace BattleSystem.Moves.Psychic
End If
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 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 learnLevel As Integer = Pokemon.AttackLearns.Keys(i)
If learnLevel <= Pokemon.Level Then
Dim canLearnMove As Boolean = True
'Commented those to test Tutor Gen 6+ behavior
'If learnLevel <= Pokemon.Level Then
Dim canLearnMove As Boolean = True
For Each learnedAttack As BattleSystem.Attack In Pokemon.Attacks
If learnedAttack.ID = tutorMove.ID Then
@ -38,7 +39,7 @@
If canLearnMove = True Then
MovesList.Add(tutorMove)
End If
End If
'End If
Next
Me.MouseVisible = False