mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-27 07:44:31 +02:00
Merge branch 'master' of https://github.com/P3D-Legacy/P3D-Legacy
This commit is contained in:
commit
f3ebd5cad4
@ -132,12 +132,28 @@
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'Phantom Force:
|
||||||
|
If BattleScreen.FieldEffects.OwnPhantomForceCounter = 1 Then
|
||||||
|
SelectedMoveOwn = False
|
||||||
|
DeleteHostQuery(BattleScreen)
|
||||||
|
InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, 566)})
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
'If Sky Drop gets programmed, put this in.
|
'If Sky Drop gets programmed, put this in.
|
||||||
'If BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then
|
'If BattleScreen.FieldEffects.OwnSkyDropCounter = 1 Then
|
||||||
' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)})
|
' InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, xxx)})
|
||||||
' Exit Sub
|
' Exit Sub
|
||||||
'End If
|
'End If
|
||||||
|
|
||||||
|
'Geomancy:
|
||||||
|
If BattleScreen.FieldEffects.OwnGeomancyCounter = 1 Then
|
||||||
|
SelectedMoveOwn = False
|
||||||
|
DeleteHostQuery(BattleScreen)
|
||||||
|
InitializeRound(BattleScreen, New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OwnPokemon, 601)})
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
'Solar Beam:
|
'Solar Beam:
|
||||||
If BattleScreen.FieldEffects.OwnSolarBeam >= 1 Then
|
If BattleScreen.FieldEffects.OwnSolarBeam >= 1 Then
|
||||||
SelectedMoveOwn = False
|
SelectedMoveOwn = False
|
||||||
@ -309,11 +325,23 @@
|
|||||||
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)}
|
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 467)}
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'Phantom Force:
|
||||||
|
If BattleScreen.FieldEffects.OppPhantomForceCounter = 1 Then
|
||||||
|
SelectedMoveOpp = False
|
||||||
|
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 566)}
|
||||||
|
End If
|
||||||
|
|
||||||
''Sky Drop:
|
''Sky Drop:
|
||||||
'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then
|
'If BattleScreen.FieldEffects.OppSkyDropCounter = 1 Then
|
||||||
' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()}
|
' Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = (19).ToString()}
|
||||||
'End If
|
'End If
|
||||||
|
|
||||||
|
'Geomancy:
|
||||||
|
If BattleScreen.FieldEffects.OppGeomancyCounter = 1 Then
|
||||||
|
SelectedMoveOpp = False
|
||||||
|
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = GetPokemonMoveFromID(BattleScreen.OppPokemon, 601)}
|
||||||
|
End If
|
||||||
|
|
||||||
'Solar Beam:
|
'Solar Beam:
|
||||||
If BattleScreen.FieldEffects.OppSolarBeam >= 1 Then
|
If BattleScreen.FieldEffects.OppSolarBeam >= 1 Then
|
||||||
SelectedMoveOpp = False
|
SelectedMoveOpp = False
|
||||||
@ -947,7 +975,9 @@
|
|||||||
Dim dig As Integer
|
Dim dig As Integer
|
||||||
Dim dive As Integer
|
Dim dive As Integer
|
||||||
Dim skyDrop As Integer 'not implemented yet
|
Dim skyDrop As Integer 'not implemented yet
|
||||||
|
Dim geomancy As Integer
|
||||||
Dim shadowForce As Integer
|
Dim shadowForce As Integer
|
||||||
|
Dim phantomForce As Integer
|
||||||
Dim skullBash As Integer
|
Dim skullBash As Integer
|
||||||
Dim skyAttack As Integer
|
Dim skyAttack As Integer
|
||||||
Dim solarBeam As Integer
|
Dim solarBeam As Integer
|
||||||
@ -966,7 +996,9 @@
|
|||||||
dig = .OwnDigCounter
|
dig = .OwnDigCounter
|
||||||
dive = .OwnDiveCounter
|
dive = .OwnDiveCounter
|
||||||
skyDrop = .OwnSkyDropCounter
|
skyDrop = .OwnSkyDropCounter
|
||||||
|
geomancy = .OwnGeomancyCounter
|
||||||
shadowForce = .OwnShadowForceCounter
|
shadowForce = .OwnShadowForceCounter
|
||||||
|
phantomForce = .OwnPhantomForceCounter
|
||||||
skullBash = .OwnSkullBashCounter
|
skullBash = .OwnSkullBashCounter
|
||||||
skyAttack = .OwnSkyAttackCounter
|
skyAttack = .OwnSkyAttackCounter
|
||||||
solarBeam = .OwnSolarBeam
|
solarBeam = .OwnSolarBeam
|
||||||
@ -978,7 +1010,9 @@
|
|||||||
dig = .OppDigCounter
|
dig = .OppDigCounter
|
||||||
dive = .OppDiveCounter
|
dive = .OppDiveCounter
|
||||||
skyDrop = .OppSkyDropCounter
|
skyDrop = .OppSkyDropCounter
|
||||||
|
geomancy = .OppGeomancyCounter
|
||||||
shadowForce = .OppShadowForceCounter
|
shadowForce = .OppShadowForceCounter
|
||||||
|
phantomForce = .OppPhantomForceCounter
|
||||||
skullBash = .OppSkullBashCounter
|
skullBash = .OppSkullBashCounter
|
||||||
skyAttack = .OppSkyAttackCounter
|
skyAttack = .OppSkyAttackCounter
|
||||||
solarBeam = .OppSolarBeam
|
solarBeam = .OppSolarBeam
|
||||||
@ -1011,10 +1045,18 @@
|
|||||||
If skyDrop = 0 Then
|
If skyDrop = 0 Then
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
|
Case "geomancy"
|
||||||
|
If geomancy = 0 Then
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
Case "shadow force"
|
Case "shadow force"
|
||||||
If shadowForce = 0 Then
|
If shadowForce = 0 Then
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
|
Case "phantom force"
|
||||||
|
If phantomForce = 0 Then
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
Case "skull bash"
|
Case "skull bash"
|
||||||
If skullBash = 0 Then
|
If skullBash = 0 Then
|
||||||
Return True
|
Return True
|
||||||
@ -1362,7 +1404,7 @@
|
|||||||
If moveUsed.ProtectAffected = False Then
|
If moveUsed.ProtectAffected = False Then
|
||||||
NoTargetCheck = False
|
NoTargetCheck = False
|
||||||
Select Case moveUsed.Name.ToLower
|
Select Case moveUsed.Name.ToLower
|
||||||
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind"
|
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "geomancy", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind"
|
||||||
NoTargetCheck = True
|
NoTargetCheck = True
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
@ -1411,7 +1453,7 @@
|
|||||||
If moveUsed.ProtectAffected = False Then
|
If moveUsed.ProtectAffected = False Then
|
||||||
UseTwoTurnCheck = False
|
UseTwoTurnCheck = False
|
||||||
Select Case moveUsed.Name.ToLower
|
Select Case moveUsed.Name.ToLower
|
||||||
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind"
|
Case "accupressure", "confide", "feint", "hold hands", "hyperspace fury", "hyperspace hole", "phantom force", "psych up", "geomancy", "play nice", "roar", "role play", "shadow force", "sketch", "transform", "whirlwind"
|
||||||
UseTwoTurnCheck = True
|
UseTwoTurnCheck = True
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
@ -1471,6 +1513,17 @@
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If DoesNotMiss = True And UseTwoTurnCheck Then 'phantomforce check
|
||||||
|
Dim phantomforce As Integer = BattleScreen.FieldEffects.OppPhantomForceCounter
|
||||||
|
If own = False Then
|
||||||
|
phantomforce = BattleScreen.FieldEffects.OwnPhantomForceCounter
|
||||||
|
End If
|
||||||
|
|
||||||
|
If phantomforce > 0 Then
|
||||||
|
DoesNotMiss = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If DoesNotMiss = True And UseTwoTurnCheck Then 'sky drop check
|
If DoesNotMiss = True And UseTwoTurnCheck Then 'sky drop check
|
||||||
Dim skydrop As Integer = BattleScreen.FieldEffects.OppSkyDropCounter
|
Dim skydrop As Integer = BattleScreen.FieldEffects.OppSkyDropCounter
|
||||||
If own = False Then
|
If own = False Then
|
||||||
@ -1482,6 +1535,17 @@
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If DoesNotMiss = True And UseTwoTurnCheck Then 'geomancy check
|
||||||
|
Dim geomancy As Integer = BattleScreen.FieldEffects.OppGeomancyCounter
|
||||||
|
If own = False Then
|
||||||
|
geomancy = BattleScreen.FieldEffects.OwnGeomancyCounter
|
||||||
|
End If
|
||||||
|
|
||||||
|
If geomancy > 0 Then
|
||||||
|
DoesNotMiss = False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If IsChargingTurn(BattleScreen, own, moveUsed) Then
|
If IsChargingTurn(BattleScreen, own, moveUsed) Then
|
||||||
DoesNotMiss = True
|
DoesNotMiss = True
|
||||||
End If
|
End If
|
||||||
@ -6119,6 +6183,7 @@
|
|||||||
.OwnCustapBerry = 0
|
.OwnCustapBerry = 0
|
||||||
.OwnTrappedCounter = 0
|
.OwnTrappedCounter = 0
|
||||||
.OwnFuryCutter = 0
|
.OwnFuryCutter = 0
|
||||||
|
.OwnEchoedVoice = 0
|
||||||
.OwnPokemonTurns = 0
|
.OwnPokemonTurns = 0
|
||||||
.OwnStockpileCount = 0
|
.OwnStockpileCount = 0
|
||||||
.OwnDestinyBond = False
|
.OwnDestinyBond = False
|
||||||
@ -6133,7 +6198,9 @@
|
|||||||
.OwnBounceCounter = 0
|
.OwnBounceCounter = 0
|
||||||
.OwnDiveCounter = 0
|
.OwnDiveCounter = 0
|
||||||
.OwnShadowForceCounter = 0
|
.OwnShadowForceCounter = 0
|
||||||
|
.OwnPhantomForceCounter = 0
|
||||||
.OwnSkyDropCounter = 0
|
.OwnSkyDropCounter = 0
|
||||||
|
.OwnGeomancyCounter = 0
|
||||||
.OwnSkyAttackCounter = 0
|
.OwnSkyAttackCounter = 0
|
||||||
.OwnRazorWindCounter = 0
|
.OwnRazorWindCounter = 0
|
||||||
.OwnSkullBashCounter = 0
|
.OwnSkullBashCounter = 0
|
||||||
@ -6454,6 +6521,7 @@
|
|||||||
.OppCustapBerry = 0
|
.OppCustapBerry = 0
|
||||||
.OppTrappedCounter = 0
|
.OppTrappedCounter = 0
|
||||||
.OppFuryCutter = 0
|
.OppFuryCutter = 0
|
||||||
|
.OppEchoedVoice = 0
|
||||||
.OppPokemonTurns = 0
|
.OppPokemonTurns = 0
|
||||||
.OppStockpileCount = 0
|
.OppStockpileCount = 0
|
||||||
.OppDestinyBond = False
|
.OppDestinyBond = False
|
||||||
@ -6464,7 +6532,9 @@
|
|||||||
.OppBounceCounter = 0
|
.OppBounceCounter = 0
|
||||||
.OppDiveCounter = 0
|
.OppDiveCounter = 0
|
||||||
.OppShadowForceCounter = 0
|
.OppShadowForceCounter = 0
|
||||||
|
.OppPhantomForceCounter = 0
|
||||||
.OppSkyDropCounter = 0
|
.OppSkyDropCounter = 0
|
||||||
|
.OppGeomancyCounter = 0
|
||||||
.OppSkyAttackCounter = 0
|
.OppSkyAttackCounter = 0
|
||||||
.OppRazorWindCounter = 0
|
.OppRazorWindCounter = 0
|
||||||
.OppSkullBashCounter = 0
|
.OppSkullBashCounter = 0
|
||||||
|
@ -667,6 +667,28 @@
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'Flying Press
|
||||||
|
If move.ID = 9999 Then
|
||||||
|
If op.Type1.Type = Element.Types.Fighting Or op.Type2.Type = Element.Types.Fighting Then
|
||||||
|
effectiveness *= 2
|
||||||
|
End If
|
||||||
|
If op.Type1.Type = Element.Types.Grass Or op.Type2.Type = Element.Types.Grass Then
|
||||||
|
effectiveness *= 2
|
||||||
|
End If
|
||||||
|
If op.Type1.Type = Element.Types.Bug Or op.Type2.Type = Element.Types.Bug Then
|
||||||
|
effectiveness *= 2
|
||||||
|
End If
|
||||||
|
If op.Type1.Type = Element.Types.Rock Or op.Type2.Type = Element.Types.Rock Then
|
||||||
|
effectiveness /= 2
|
||||||
|
End If
|
||||||
|
If op.Type1.Type = Element.Types.Steel Or op.Type2.Type = Element.Types.Steel Then
|
||||||
|
effectiveness /= 2
|
||||||
|
End If
|
||||||
|
If op.Type1.Type = Element.Types.Electric Or op.Type2.Type = Element.Types.Electric Then
|
||||||
|
effectiveness /= 2
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
'Sheer Cold
|
'Sheer Cold
|
||||||
If move.ID = 329 Then
|
If move.ID = 329 Then
|
||||||
If op.IsType(Element.Types.Ice) Then
|
If op.IsType(Element.Types.Ice) Then
|
||||||
@ -1470,7 +1492,7 @@
|
|||||||
Dim SX As Single = 1.0F
|
Dim SX As Single = 1.0F
|
||||||
Dim DMod As Single = 1.0F
|
Dim DMod As Single = 1.0F
|
||||||
|
|
||||||
If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 548 Then 'Psyshock and Secret Sword.
|
If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 540 OrElse Attack.ID = 548 Then 'Psyshock, Psystrike and Secret Sword.
|
||||||
DStat = Attack.GetUseDefenseStat(Op)
|
DStat = Attack.GetUseDefenseStat(Op)
|
||||||
DSM = GetMultiplierFromStat(Op.StatDefense)
|
DSM = GetMultiplierFromStat(Op.StatDefense)
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
Public OwnMiracleEye As Integer = 0 'Own Dark type Pokémon can be hit by Psychic type attacks
|
Public OwnMiracleEye As Integer = 0 'Own Dark type Pokémon can be hit by Psychic type attacks
|
||||||
Public OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves
|
Public OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves
|
||||||
Public OwnFuryCutter As Integer = 0 'Counter for the move fury cutter
|
Public OwnFuryCutter As Integer = 0 'Counter for the move fury cutter
|
||||||
|
Public OwnEchoedVoice As Integer = 0 'Counter for the move echoed voice
|
||||||
Public OwnPokemonTurns As Integer = 0 'Turns for how long the own pokemon has been in battle
|
Public OwnPokemonTurns As Integer = 0 'Turns for how long the own pokemon has been in battle
|
||||||
Public OwnStockpileCount As Integer = 0 'A counter for the stockpile moves used for Swallow and Spit Up
|
Public OwnStockpileCount As Integer = 0 'A counter for the stockpile moves used for Swallow and Spit Up
|
||||||
Public OwnIceBurnCounter As Integer = 0 'Counter for the Ice Burn move.
|
Public OwnIceBurnCounter As Integer = 0 'Counter for the Ice Burn move.
|
||||||
@ -76,7 +77,9 @@
|
|||||||
Public OwnBounceCounter As Integer = 0
|
Public OwnBounceCounter As Integer = 0
|
||||||
Public OwnDiveCounter As Integer = 0
|
Public OwnDiveCounter As Integer = 0
|
||||||
Public OwnShadowForceCounter As Integer = 0
|
Public OwnShadowForceCounter As Integer = 0
|
||||||
|
Public OwnPhantomForceCounter As Integer = 0
|
||||||
Public OwnSkyDropCounter As Integer = 0
|
Public OwnSkyDropCounter As Integer = 0
|
||||||
|
Public OwnGeomancyCounter As Integer = 0
|
||||||
Public OwnWrap As Integer = 0
|
Public OwnWrap As Integer = 0
|
||||||
Public OwnWhirlpool As Integer = 0
|
Public OwnWhirlpool As Integer = 0
|
||||||
Public OwnBind As Integer = 0
|
Public OwnBind As Integer = 0
|
||||||
@ -187,6 +190,7 @@
|
|||||||
Public OppMiracleEye As Integer = 0
|
Public OppMiracleEye As Integer = 0
|
||||||
Public OppProtectMovesCount As Integer = 0
|
Public OppProtectMovesCount As Integer = 0
|
||||||
Public OppFuryCutter As Integer = 0
|
Public OppFuryCutter As Integer = 0
|
||||||
|
Public OppEchoedVoice As Integer = 0
|
||||||
Public OppPokemonTurns As Integer = 0
|
Public OppPokemonTurns As Integer = 0
|
||||||
Public OppStockpileCount As Integer = 0
|
Public OppStockpileCount As Integer = 0
|
||||||
Public OppIceBurnCounter As Integer = 0
|
Public OppIceBurnCounter As Integer = 0
|
||||||
@ -210,7 +214,9 @@
|
|||||||
Public OppBounceCounter As Integer = 0
|
Public OppBounceCounter As Integer = 0
|
||||||
Public OppDiveCounter As Integer = 0
|
Public OppDiveCounter As Integer = 0
|
||||||
Public OppShadowForceCounter As Integer = 0
|
Public OppShadowForceCounter As Integer = 0
|
||||||
|
Public OppPhantomForceCounter As Integer = 0
|
||||||
Public OppSkyDropCounter As Integer = 0
|
Public OppSkyDropCounter As Integer = 0
|
||||||
|
Public OppGeomancyCounter As Integer = 0
|
||||||
|
|
||||||
Public OppWrap As Integer = 0
|
Public OppWrap As Integer = 0
|
||||||
Public OppWhirlpool As Integer = 0
|
Public OppWhirlpool As Integer = 0
|
||||||
|
@ -247,9 +247,17 @@
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public ShadowForce As Integer = 0
|
Public ShadowForce As Integer = 0
|
||||||
''' <summary>
|
''' <summary>
|
||||||
|
''' Phantom Force move counter.
|
||||||
|
''' </summary>
|
||||||
|
Public PhantomForce As Integer = 0
|
||||||
|
''' <summary>
|
||||||
''' Sky Drop move counter.
|
''' Sky Drop move counter.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public SkyDrop As Integer = 0
|
Public SkyDrop As Integer = 0
|
||||||
|
''' <summary>
|
||||||
|
''' Geomancy move counter.
|
||||||
|
''' </summary>
|
||||||
|
Public Geomancy As Integer = 0
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Turns this Pokémon is trapped in Wrap.
|
''' Turns this Pokémon is trapped in Wrap.
|
||||||
@ -297,6 +305,10 @@
|
|||||||
''' </summary>
|
''' </summary>
|
||||||
Public FuryCutter As Integer = 0
|
Public FuryCutter As Integer = 0
|
||||||
''' <summary>
|
''' <summary>
|
||||||
|
''' Counter for the Echoed Voice move.
|
||||||
|
''' </summary>
|
||||||
|
Public EchoedVoice As Integer = 0
|
||||||
|
''' <summary>
|
||||||
''' Counter for the Stockpile move.
|
''' Counter for the Stockpile move.
|
||||||
''' </summary>
|
''' </summary>
|
||||||
Public StockPile As Integer = 0
|
Public StockPile As Integer = 0
|
||||||
@ -449,6 +461,7 @@
|
|||||||
Me.CustapBerry = 0
|
Me.CustapBerry = 0
|
||||||
Me.Trapped = 0
|
Me.Trapped = 0
|
||||||
Me.FuryCutter = 0
|
Me.FuryCutter = 0
|
||||||
|
Me.EchoedVoice = 0
|
||||||
Me.TurnsInBattle = 0
|
Me.TurnsInBattle = 0
|
||||||
Me.StockPile = 0
|
Me.StockPile = 0
|
||||||
Me.DestinyBond = 0
|
Me.DestinyBond = 0
|
||||||
@ -461,7 +474,9 @@
|
|||||||
Me.Bounce = 0
|
Me.Bounce = 0
|
||||||
Me.Dive = 0
|
Me.Dive = 0
|
||||||
Me.ShadowForce = 0
|
Me.ShadowForce = 0
|
||||||
|
Me.PhantomForce = 0
|
||||||
Me.SkyDrop = 0
|
Me.SkyDrop = 0
|
||||||
|
Me.Geomancy = 0
|
||||||
Me.SkyAttack = 0
|
Me.SkyAttack = 0
|
||||||
Me.RazorWind = 0
|
Me.RazorWind = 0
|
||||||
Me.SkullBash = 0
|
Me.SkullBash = 0
|
||||||
|
BIN
P3D/Content/GUI/Menus/SummaryStatus.png
Normal file
BIN
P3D/Content/GUI/Menus/SummaryStatus.png
Normal file
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 |
@ -44,7 +44,7 @@ Move|12,355
|
|||||||
Move|16,332
|
Move|16,332
|
||||||
Move|20,227
|
Move|20,227
|
||||||
Move|24,374
|
Move|24,374
|
||||||
Move|28,560
|
Move|28,9999
|
||||||
Move|32,340
|
Move|32,340
|
||||||
Move|36,283
|
Move|36,283
|
||||||
Move|40,297
|
Move|40,297
|
||||||
|
108
P3D/P3D.vbproj
108
P3D/P3D.vbproj
@ -25508,25 +25508,121 @@
|
|||||||
</Content>
|
</Content>
|
||||||
<Compile Include="Pokemon\Abilities\Aerilate.vb" />
|
<Compile Include="Pokemon\Abilities\Aerilate.vb" />
|
||||||
<Compile Include="Pokemon\Abilities\ParentalBond.vb" />
|
<Compile Include="Pokemon\Abilities\ParentalBond.vb" />
|
||||||
|
<Compile Include="Pokemon\Attacks\Bug\FellStinger.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Dark\DarkVoid.vb">
|
<Compile Include="Pokemon\Attacks\Dark\DarkVoid.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Dark\HyperspaceFury.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Dark\PartingShot.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Dragon\SpacialRend.vb">
|
<Compile Include="Pokemon\Attacks\Dragon\SpacialRend.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Fairy\Geomancy.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Fairy\LightOfRuin.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Fighting\FinalGambit.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Fighting\FlyingPress.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Fighting\StormThrow.vb">
|
<Compile Include="Pokemon\Attacks\Fighting\StormThrow.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Fire\Incinerate.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Flying\DragonAscent.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Ghost\PhantomForce.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Ghost\ShadowForce.vb">
|
<Compile Include="Pokemon\Attacks\Ghost\ShadowForce.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Grass\WorrySeed.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Ground\PrecipiceBlades.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Ground\ThousandArrows.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Ground\ThousandWaves.vb">
|
<Compile Include="Pokemon\Attacks\Ground\ThousandWaves.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Pokemon\Attacks\Ice\Avalanche.vb">
|
<Compile Include="Pokemon\Attacks\Ice\Avalanche.vb">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Ice\Glaciate.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\Bestow.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\Celebrate.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\HoldBack.vb" />
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\Round.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\Judgement.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\Entrainment.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\TechnoBlast.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\ReflectType.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\EchoedVoice.vb" />
|
||||||
|
<Compile Include="Pokemon\Attacks\Normal\SimpleBeam.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Poison\VenomDrench.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Psychic\HyperspaceHole.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Psychic\Synchronoise.vb" />
|
||||||
|
<Compile Include="Pokemon\Attacks\Psychic\Psystrike.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Rock\DiamondStorm.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Attacks\Water\OriginPulse.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Items\KeyItems\LibertySeaMap.vb" />
|
<Compile Include="Pokemon\Items\KeyItems\LibertySeaMap.vb" />
|
||||||
|
<Compile Include="Pokemon\Items\Standard\DouseDrive.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Items\Standard\ChillDrive.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Items\Standard\ShockDrive.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Pokemon\Items\Standard\BurnDrive.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Pokemon\Items\Standard\ExpertBelt.vb" />
|
<Compile Include="Pokemon\Items\Standard\ExpertBelt.vb" />
|
||||||
<Compile Include="Resources\Blur\BlurHandler.vb" />
|
<Compile Include="Resources\Blur\BlurHandler.vb" />
|
||||||
<Content Include="Content\Data\Scripts\faraway\mewtwonite_y.dat">
|
<Content Include="Content\Data\Scripts\faraway\mewtwonite_y.dat">
|
||||||
@ -25770,7 +25866,9 @@
|
|||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Pokemon\Items\_itemList.txt" />
|
<None Include="Pokemon\Items\_itemList.txt">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Include="My Project\app.manifest" />
|
<None Include="My Project\app.manifest" />
|
||||||
<None Include="app.config" />
|
<None Include="app.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -25792,8 +25890,12 @@
|
|||||||
<Compile Include="Battle\BattleSystemV2\BattleMenu.vb" />
|
<Compile Include="Battle\BattleSystemV2\BattleMenu.vb" />
|
||||||
<Compile Include="Battle\BattleSystemV2\BattleScreen.vb" />
|
<Compile Include="Battle\BattleSystemV2\BattleScreen.vb" />
|
||||||
<Compile Include="Battle\BattleSystemV2\BattleWeather.vb" />
|
<Compile Include="Battle\BattleSystemV2\BattleWeather.vb" />
|
||||||
<Compile Include="Battle\BattleSystemV2\FieldEffects.vb" />
|
<Compile Include="Battle\BattleSystemV2\FieldEffects.vb">
|
||||||
<Compile Include="Battle\BattleSystemV2\PokemonProfile.vb" />
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Battle\BattleSystemV2\PokemonProfile.vb">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Battle\BattleSystemV2\QueryObjects\CameraQueryObject.vb" />
|
<Compile Include="Battle\BattleSystemV2\QueryObjects\CameraQueryObject.vb" />
|
||||||
<Compile Include="Battle\BattleSystemV2\QueryObjects\ChoosePokemonQueryObject.vb" />
|
<Compile Include="Battle\BattleSystemV2\QueryObjects\ChoosePokemonQueryObject.vb" />
|
||||||
<Compile Include="Battle\BattleSystemV2\QueryObjects\AfterFaintQueryObject.vb" />
|
<Compile Include="Battle\BattleSystemV2\QueryObjects\AfterFaintQueryObject.vb" />
|
||||||
|
@ -1018,8 +1018,8 @@
|
|||||||
returnMove = New Moves.Dark.Punishment()
|
returnMove = New Moves.Dark.Punishment()
|
||||||
Case 387
|
Case 387
|
||||||
returnMove = New Moves.Normal.LastResort()
|
returnMove = New Moves.Normal.LastResort()
|
||||||
'Case 388
|
Case 388
|
||||||
'Worry Seed
|
returnMove = New Moves.Grass.WorrySeed()
|
||||||
Case 389
|
Case 389
|
||||||
returnMove = New Moves.Dark.SuckerPunch()
|
returnMove = New Moves.Dark.SuckerPunch()
|
||||||
Case 390
|
Case 390
|
||||||
@ -1140,8 +1140,8 @@
|
|||||||
returnMove = New Moves.Grass.GrassKnot()
|
returnMove = New Moves.Grass.GrassKnot()
|
||||||
Case 448
|
Case 448
|
||||||
returnMove = New Moves.Flying.Chatter()
|
returnMove = New Moves.Flying.Chatter()
|
||||||
'Case 449
|
Case 449
|
||||||
'Judgment
|
returnMove = New Moves.Normal.Judgement()
|
||||||
Case 450
|
Case 450
|
||||||
returnMove = New Moves.Bug.BugBite()
|
returnMove = New Moves.Bug.BugBite()
|
||||||
Case 451
|
Case 451
|
||||||
@ -1212,8 +1212,8 @@
|
|||||||
returnMove = New Moves.Bug.QuiverDance()
|
returnMove = New Moves.Bug.QuiverDance()
|
||||||
Case 484
|
Case 484
|
||||||
returnMove = New Moves.Steel.HeavySlam()
|
returnMove = New Moves.Steel.HeavySlam()
|
||||||
'Case 485
|
Case 485
|
||||||
'Synchronoise
|
returnMove = New Moves.Psychic.Synchronoise()
|
||||||
Case 486
|
Case 486
|
||||||
returnMove = New Moves.Electric.ElectroBall()
|
returnMove = New Moves.Electric.ElectroBall()
|
||||||
'Case 487
|
'Case 487
|
||||||
@ -1228,16 +1228,16 @@
|
|||||||
returnMove = New Moves.Poison.AcidSpray()
|
returnMove = New Moves.Poison.AcidSpray()
|
||||||
Case 492
|
Case 492
|
||||||
returnMove = New Moves.Dark.FoulPlay()
|
returnMove = New Moves.Dark.FoulPlay()
|
||||||
'Case 493
|
Case 493
|
||||||
'Simple Beam
|
returnMove = New Moves.Normal.SimpleBeam()
|
||||||
'Case 494
|
Case 494
|
||||||
'Entertainment
|
returnMove = New Moves.Normal.Entrainment()
|
||||||
'Case 495
|
'Case 495
|
||||||
'After You
|
'After You
|
||||||
'Case 496
|
Case 496
|
||||||
'Round
|
returnMove = New Moves.Normal.Round()
|
||||||
'Case 497
|
Case 497
|
||||||
'Echoed Voice
|
returnMove = New Moves.Normal.EchoedVoice()
|
||||||
Case 498
|
Case 498
|
||||||
returnMove = New Moves.Normal.ChipAway()
|
returnMove = New Moves.Normal.ChipAway()
|
||||||
Case 499
|
Case 499
|
||||||
@ -1262,20 +1262,20 @@
|
|||||||
returnMove = New Moves.Steel.ShiftGear()
|
returnMove = New Moves.Steel.ShiftGear()
|
||||||
Case 509
|
Case 509
|
||||||
returnMove = New Moves.Fighting.CircleThrow()
|
returnMove = New Moves.Fighting.CircleThrow()
|
||||||
'Case 510
|
Case 510
|
||||||
'Incinerate
|
returnMove = New Moves.Fire.Incinerate()
|
||||||
'Case 511
|
'Case 511
|
||||||
'Quash
|
'Quash
|
||||||
Case 512
|
Case 512
|
||||||
returnMove = New Moves.Flying.Acrobatics()
|
returnMove = New Moves.Flying.Acrobatics()
|
||||||
'Case 513
|
Case 513
|
||||||
'Reflect Type
|
returnMove = New Moves.Normal.ReflectType()
|
||||||
'Case 514
|
'Case 514
|
||||||
'Retaliate
|
'Retaliate
|
||||||
'Case 515
|
Case 515
|
||||||
'Final Gambit
|
returnMove = New Moves.Fighting.FinalGambit()
|
||||||
'Case 516
|
Case 516
|
||||||
'Bestow
|
returnMove = New Moves.Normal.Bestow()
|
||||||
Case 517
|
Case 517
|
||||||
returnMove = New Moves.Fire.Inferno()
|
returnMove = New Moves.Fire.Inferno()
|
||||||
Case 518
|
Case 518
|
||||||
@ -1322,8 +1322,8 @@
|
|||||||
returnMove = New Moves.Grass.CottonGuard()
|
returnMove = New Moves.Grass.CottonGuard()
|
||||||
Case 539
|
Case 539
|
||||||
returnMove = New Moves.Dark.NightDaze()
|
returnMove = New Moves.Dark.NightDaze()
|
||||||
'Case 540
|
Case 540
|
||||||
'Psystrike
|
returnMove = New Moves.Psychic.Psystrike()
|
||||||
Case 541
|
Case 541
|
||||||
returnMove = New Moves.Normal.TailSlap()
|
returnMove = New Moves.Normal.TailSlap()
|
||||||
Case 542
|
Case 542
|
||||||
@ -1334,14 +1334,14 @@
|
|||||||
returnMove = New Moves.Steel.GearGrind()
|
returnMove = New Moves.Steel.GearGrind()
|
||||||
Case 545
|
Case 545
|
||||||
returnMove = New Moves.Fire.SearingShot()
|
returnMove = New Moves.Fire.SearingShot()
|
||||||
'Case 546
|
Case 546
|
||||||
'Techno Blast
|
returnMove = New Moves.Normal.TechnoBlast()
|
||||||
'Case 547
|
'Case 547
|
||||||
'Relic Song
|
'Relic Song
|
||||||
Case 548
|
Case 548
|
||||||
returnMove = New Moves.Fighting.SecretSword()
|
returnMove = New Moves.Fighting.SecretSword()
|
||||||
'Case 549
|
Case 549
|
||||||
'Glaciate
|
returnMove = New Moves.Ice.Glaciate()
|
||||||
Case 550
|
Case 550
|
||||||
returnMove = New Moves.Electric.BoltStrike()
|
returnMove = New Moves.Electric.BoltStrike()
|
||||||
Case 551
|
Case 551
|
||||||
@ -1372,10 +1372,10 @@
|
|||||||
'Rototiller
|
'Rototiller
|
||||||
Case 564
|
Case 564
|
||||||
returnMove = New Moves.Bug.StickyWeb()
|
returnMove = New Moves.Bug.StickyWeb()
|
||||||
'Case 565
|
Case 565
|
||||||
'Fell Stinger
|
returnMove = New Moves.Bug.FellStinger()
|
||||||
'Case 566
|
Case 566
|
||||||
'Phantom Force
|
returnMove = New Moves.Ghost.PhantomForce()
|
||||||
'Case 567
|
'Case 567
|
||||||
'Trick-or-Treat
|
'Trick-or-Treat
|
||||||
Case 568
|
Case 568
|
||||||
@ -1392,8 +1392,8 @@
|
|||||||
returnMove = New Moves.Ice.FreezeDry()
|
returnMove = New Moves.Ice.FreezeDry()
|
||||||
Case 574
|
Case 574
|
||||||
returnMove = New Moves.Fairy.DisarmingVoice()
|
returnMove = New Moves.Fairy.DisarmingVoice()
|
||||||
'Case 575
|
Case 575
|
||||||
'Parting Shot
|
returnMove = New Moves.Dark.PartingShot()
|
||||||
'Case 576
|
'Case 576
|
||||||
'Topsy-Turvy
|
'Topsy-Turvy
|
||||||
Case 577
|
Case 577
|
||||||
@ -1424,12 +1424,12 @@
|
|||||||
returnMove = New Moves.Normal.PlayNice()
|
returnMove = New Moves.Normal.PlayNice()
|
||||||
Case 590
|
Case 590
|
||||||
returnMove = New Moves.Normal.Confide()
|
returnMove = New Moves.Normal.Confide()
|
||||||
'Case 591
|
Case 591
|
||||||
'Diamond Storm
|
returnMove = New Moves.Rock.DiamondStorm()
|
||||||
Case 592
|
Case 592
|
||||||
returnMove = New Moves.Water.SteamEruption()
|
returnMove = New Moves.Water.SteamEruption()
|
||||||
'Case 593
|
Case 593
|
||||||
'Hyperspace Hole
|
returnMove = New Moves.Psychic.HyperspaceHole()
|
||||||
Case 594
|
Case 594
|
||||||
returnMove = New Moves.Water.WaterShuriken()
|
returnMove = New Moves.Water.WaterShuriken()
|
||||||
Case 595
|
Case 595
|
||||||
@ -1437,55 +1437,56 @@
|
|||||||
'Case 596
|
'Case 596
|
||||||
'Spiky Shield
|
'Spiky Shield
|
||||||
'Case 597
|
'Case 597
|
||||||
'Aromatic Mist
|
'Aromatic Mist - Double Battles
|
||||||
Case 598
|
Case 598
|
||||||
returnMove = New Moves.Electric.EerieImpulse()
|
returnMove = New Moves.Electric.EerieImpulse()
|
||||||
'Case 599
|
Case 599
|
||||||
'Vemon Drench
|
returnMove = New Moves.Poison.VenomDrench()
|
||||||
'Case 600
|
'Case 600
|
||||||
'Powder
|
'Powder
|
||||||
'Case 601
|
Case 601
|
||||||
'Geomancy
|
returnMove = New Moves.Fairy.Geomancy()
|
||||||
'Case 602
|
'Case 602
|
||||||
'Macnetic Flux
|
'Magnetic Flux - Double Battles
|
||||||
'Case 603
|
'Case 603
|
||||||
'Happy Hour
|
'Happy Hour
|
||||||
'Case 604
|
'Case 604
|
||||||
'Electric Terrain
|
'Electric Terrain
|
||||||
Case 605
|
Case 605
|
||||||
returnMove = New Moves.Fairy.DazzlingGleam()
|
returnMove = New Moves.Fairy.DazzlingGleam()
|
||||||
'Case 606
|
Case 606
|
||||||
'Celebrate
|
returnMove = New Moves.Normal.Celebrate()
|
||||||
'Case 607
|
'Case 607
|
||||||
'Hold Hands
|
'Hold Hands
|
||||||
Case 608
|
Case 608
|
||||||
returnMove = New Moves.Fairy.BabyDollEyes()
|
returnMove = New Moves.Fairy.BabyDollEyes()
|
||||||
Case 609
|
Case 609
|
||||||
returnMove = New Moves.Electric.Nuzzle()
|
returnMove = New Moves.Electric.Nuzzle()
|
||||||
'Case 610
|
Case 610
|
||||||
'Hold Back
|
returnMove = New Moves.Normal.HoldBack()
|
||||||
Case 611
|
Case 611
|
||||||
returnMove = New Moves.Bug.Infestation()
|
returnMove = New Moves.Bug.Infestation()
|
||||||
Case 612
|
Case 612
|
||||||
returnMove = New Moves.Fighting.PowerUpPunch()
|
returnMove = New Moves.Fighting.PowerUpPunch()
|
||||||
Case 613
|
Case 613
|
||||||
returnMove = New Moves.Flying.OblivionWing()
|
returnMove = New Moves.Flying.OblivionWing()
|
||||||
'Case 614
|
Case 614
|
||||||
'Thousand Arrows
|
returnMove = New Moves.Ground.ThousandArrows()
|
||||||
Case 615
|
Case 615
|
||||||
returnMove = New Moves.Ground.ThousandWaves()
|
returnMove = New Moves.Ground.ThousandWaves()
|
||||||
Case 616
|
Case 616
|
||||||
returnMove = New Moves.Ground.LandsWrath()
|
returnMove = New Moves.Ground.LandsWrath()
|
||||||
'Case 617
|
Case 617
|
||||||
'Light of Ruin
|
returnMove = New Moves.Fairy.LightOfRuin()
|
||||||
'Case 618
|
Case 618
|
||||||
'Origin Pulse
|
returnMove = New Moves.Water.OriginPulse()
|
||||||
'Case 619
|
Case 619
|
||||||
'Precipice Blades
|
returnMove = New Moves.Ground.PrecipiceBlades()
|
||||||
'Case 620
|
Case 620
|
||||||
'Dragon Ascent
|
returnMove = New Moves.Flying.DragonAscent()
|
||||||
'Case 621
|
Case 621
|
||||||
'Hyperspace Fury
|
returnMove = New Moves.Dark.HyperspaceFury()
|
||||||
|
'------------------------------------------------BEGIN Z MOVE STREAK
|
||||||
'Case 622
|
'Case 622
|
||||||
'Breakneck Blitz - Physical
|
'Breakneck Blitz - Physical
|
||||||
'Case 623
|
'Case 623
|
||||||
@ -1560,146 +1561,147 @@
|
|||||||
'Twinkle Tackle - Special
|
'Twinkle Tackle - Special
|
||||||
'Case 658
|
'Case 658
|
||||||
'Catastropika
|
'Catastropika
|
||||||
|
'------------------------------------------------END Z MOVE STREAK
|
||||||
'Case 659
|
'Case 659
|
||||||
'Shore Up
|
'returnMove = New Moves.Ground.ShoreUp()
|
||||||
'Case 660
|
'Case 660
|
||||||
'First Impression
|
'returnMove = New Moves.Bug.FirstImpression()
|
||||||
'Case 661
|
'Case 661
|
||||||
'Baneful Bunker
|
'Baneful Bunker
|
||||||
'Case 662
|
'Case 662
|
||||||
'Spirit Shackle
|
'returnMove = New Moves.Ghost.SpiritShackle()
|
||||||
'Case 663
|
'Case 663
|
||||||
'Darkest Lariat
|
'returnMove = New Moves.Dark.DarkestLariat()
|
||||||
'Case 664
|
'Case 664
|
||||||
'Sparkling Aria
|
'returnMove = New Moves.Water.SparklingAria()
|
||||||
'Case 665
|
'Case 665
|
||||||
'Ice Hammer
|
'returnMove = New Moves.Ice.IceHammer()
|
||||||
'Case 666
|
'Case 666
|
||||||
'Floral Healing
|
'Floral Healing - Double Battles
|
||||||
'Case 667
|
'Case 667
|
||||||
'High Horsepower
|
'returnMove = New Moves.Ground.HighHorsepower()
|
||||||
'Case 668
|
'Case 668
|
||||||
'Strength Sap
|
'returnMove = New Moves.Grass.StrengthSap()
|
||||||
'Case 669
|
'Case 669
|
||||||
'Solar Blade
|
'returnMove = New Moves.Grass.SolarBlade()
|
||||||
'Case 670
|
'Case 670
|
||||||
'Leafage
|
'returnMove = New Moves.Grass.Leafage()
|
||||||
'Case 671
|
'Case 671
|
||||||
'Spotlight
|
'Spotlight
|
||||||
'Case 672
|
'Case 672
|
||||||
'Toxic Thread
|
'returnMove = New Moves.Poison.ToxicThread()
|
||||||
'Case 673
|
'Case 673
|
||||||
'Laser Focus
|
'Laser Focus
|
||||||
'Case 674
|
'Case 674
|
||||||
'Gear Up
|
'returnMove = New Moves.Steel.GearUp()
|
||||||
'Case 675
|
'Case 675
|
||||||
'Throat Chop
|
'Throat Chop
|
||||||
'Case 676
|
'Case 676
|
||||||
'Pollen Puff
|
'returnMove = New Moves.Bug.PollenPuff()
|
||||||
'Case 677
|
'Case 677
|
||||||
'Anchor Shot
|
'returnMove = New Moves.Steel.AnchorShot()
|
||||||
'Case 678
|
'Case 678
|
||||||
'Psychic Terrain
|
'Psychic Terrain
|
||||||
'Case 679
|
'Case 679
|
||||||
'Lunge
|
'returnMove = New Moves.Bug.Lunge()
|
||||||
'Case 680
|
'Case 680
|
||||||
'Fire Lash
|
'returnMove = New Moves.Fire.FireLash()
|
||||||
'Case 681
|
'Case 681
|
||||||
'Power Trip
|
'returnMove = New Moves.Dark.PowerTrip()
|
||||||
'Case 682
|
'Case 682
|
||||||
'Burn Up
|
'returnMove = New Moves.Fire.BurnUp()
|
||||||
'Case 683
|
'Case 683
|
||||||
'Speed Swap
|
'Speed Swap
|
||||||
'Case 684
|
'Case 684
|
||||||
'Smart Strike
|
'returnMove = New Moves.Steel.SmartStrike()
|
||||||
'Case 685
|
'Case 685
|
||||||
'Purify
|
'Purify - Double Battles
|
||||||
'Case 686
|
'Case 686
|
||||||
'Revelation Dance
|
'returnMove = New Moves.Normal.RevelationDance()
|
||||||
'Case 687
|
'Case 687
|
||||||
'Core Enforcer
|
'Core Enforcer
|
||||||
'Case 688
|
'Case 688
|
||||||
'Trop Kick
|
'returnMove = New Moves.Grass.TropKick()
|
||||||
'Case 689
|
'Case 689
|
||||||
'Instruct
|
'Instruct
|
||||||
'Case 690
|
'Case 690
|
||||||
'Beak Blast
|
'Beak Blast
|
||||||
'Case 691
|
'Case 691
|
||||||
'Clanging Scales
|
'returnMove = New Moves.Dragon.ClangingScales()
|
||||||
'Case 692
|
'Case 692
|
||||||
'Dragon Hammer
|
'returnMove = New Moves.Dragon.DragonHammer()
|
||||||
'Case 693
|
'Case 693
|
||||||
'Brutal Swing
|
'returnMove = New Moves.Dark.BrutalSwing()
|
||||||
'Case 694
|
'Case 694
|
||||||
'Aurora Veil
|
'returnMove = New Moves.Ice.AuroraVeil()
|
||||||
'Case 695
|
'Case 695
|
||||||
'Sinister Arrow Raid
|
'Sinister Arrow Raid - Z-Move
|
||||||
'Case 696
|
'Case 696
|
||||||
'Malicious Moonsault
|
'Malicious Moonsault - Z-Move
|
||||||
'Case 697
|
'Case 697
|
||||||
'Oceanic Operetta
|
'Oceanic Operetta - Z-Move
|
||||||
'Case 698
|
'Case 698
|
||||||
'Guardian of Alola
|
'Guardian of Alola - Z-Move
|
||||||
'Case 699
|
'Case 699
|
||||||
'Soul-Stealing 7-Star Strike
|
'Soul-Stealing 7-Star Strike - Z-Move
|
||||||
'Case 700
|
'Case 700
|
||||||
'Stoked Sparksurfer
|
'Stoked Sparksurfer - Z-Move
|
||||||
'Case 701
|
'Case 701
|
||||||
'Pulverizing Pancake
|
'Pulverizing Pancake - Z-Move
|
||||||
'Case 702
|
'Case 702
|
||||||
'Extreme Evoboost
|
'Extreme Evoboost - Z-Move
|
||||||
'Case 703
|
'Case 703
|
||||||
'Genesis Supernova
|
'Genesis Supernova - Z-Move
|
||||||
'Case 704
|
'Case 704
|
||||||
'Shell Trap
|
'Shell Trap
|
||||||
'Case 705
|
'Case 705
|
||||||
'Fleur Cannon
|
'returnMove = New Moves.Fairy.FleurCannon()
|
||||||
'Case 706
|
'Case 706
|
||||||
'Psychic Fangs
|
'returnMove = New Moves.Psychic.PsychicFangs()
|
||||||
'Case 707
|
'Case 707
|
||||||
'Stomping Tantrum
|
'Stomping Tantrum
|
||||||
'Case 708
|
'Case 708
|
||||||
'Shadow Bone
|
'returnMove = New Moves.Ghost.ShadowBone()
|
||||||
'Case 709
|
'Case 709
|
||||||
'Accelerock
|
'returnMove = New Moves.Rock.Accelerock()
|
||||||
'Case 710
|
'Case 710
|
||||||
'Liquidation
|
'returnMove = New Moves.Water.Liquidation()
|
||||||
'Case 711
|
'Case 711
|
||||||
'Prismatic Laser
|
'returnMove = New Moves.Psychic.PrismaticLaser()
|
||||||
'Case 712
|
'Case 712
|
||||||
'Spectral Thief
|
'Spectral Thief
|
||||||
'Case 713
|
'Case 713
|
||||||
'Sunsteel Strike
|
'returnMove = New Moves.Steel.SunsteelStrike()
|
||||||
'Case 714
|
'Case 714
|
||||||
'Moongeist Beam
|
'returnMove = New Moves.Ghost.MoongeistBeam()
|
||||||
'Case 715
|
'Case 715
|
||||||
'Tearful Look
|
'returnMove = New Moves.Normal.TearfulLook()
|
||||||
'Case 716
|
'Case 716
|
||||||
'Zing Zap
|
'returnMove = New Moves.Electric.ZingZap()
|
||||||
'Case 717
|
'Case 717
|
||||||
'Nature's Madness
|
'returnMove = New Moves.Fairy.NaturesMadness()
|
||||||
'Case 718
|
'Case 718
|
||||||
'Multi-Attack
|
'returnMove = New Moves.Normal.Multi-Attack()
|
||||||
'Case 719
|
'Case 719
|
||||||
'10,000,000 Volt Thunderbolt
|
'10,000,000 Volt Thunderbolt - Z-Move
|
||||||
'Case 720
|
'Case 720
|
||||||
'Mind Blown
|
'returnMove = New Moves.Fire.MindBlown()
|
||||||
'Case 721
|
'Case 721
|
||||||
'Plasma Fists
|
'Plasma Fists
|
||||||
'Case 722
|
'Case 722
|
||||||
'Photon Geyser
|
'Photon Geyser
|
||||||
'Case 723
|
'Case 723
|
||||||
'Light That Burns The Sky
|
'Light That Burns The Sky - Z-Move
|
||||||
'Case 724
|
'Case 724
|
||||||
'Searing Sunraze Smash
|
'Searing Sunraze Smash - Z-Move
|
||||||
'Case 725
|
'Case 725
|
||||||
'Menacing Moonraze Maelstrom
|
'Menacing Moonraze Maelstrom - Z-Move
|
||||||
'Case 726
|
'Case 726
|
||||||
'Let's Snuggle Forever
|
'Let's Snuggle Forever - Z-Move
|
||||||
'Case 727
|
'Case 727
|
||||||
'Splintered Stormshards
|
'Splintered Stormshards - Z-Move
|
||||||
'Case 728
|
'Case 728
|
||||||
'Clangorous Soulblaze
|
'Clangorous Soulblaze - Z-Move
|
||||||
'Case 729
|
'Case 729
|
||||||
'Blank
|
'Blank
|
||||||
Case 999
|
Case 999
|
||||||
@ -1708,6 +1710,8 @@
|
|||||||
Else
|
Else
|
||||||
returnMove = New Moves.Normal.Pound()
|
returnMove = New Moves.Normal.Pound()
|
||||||
End If
|
End If
|
||||||
|
Case 9999
|
||||||
|
returnMove = New Moves.Fighting.FlyingPress()
|
||||||
Case Else
|
Case Else
|
||||||
'Try to load a GameMode move.
|
'Try to load a GameMode move.
|
||||||
Dim gameModeMove As Attack = GameModeAttackLoader.GetAttackByID(ID)
|
Dim gameModeMove As Attack = GameModeAttackLoader.GetAttackByID(ID)
|
||||||
|
69
P3D/Pokemon/Attacks/Bug/FellStinger.vb
Normal file
69
P3D/Pokemon/Attacks/Bug/FellStinger.vb
Normal 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
|
@ -55,7 +55,24 @@
|
|||||||
Me.AIField2 = AIField.Nothing
|
Me.AIField2 = AIField.Nothing
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Public Overrides Function MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean
|
||||||
|
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||||
|
If Own = False Then
|
||||||
|
p = BattleScreen.OppPokemon
|
||||||
|
End If
|
||||||
|
If p.Number = 491 Then
|
||||||
|
Return False
|
||||||
|
Else
|
||||||
|
BattleScreen.BattleQuery.Add(New TextQueryObject("But " & p.GetDisplayName() & " can't use the move!"))
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
|
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
|
||||||
|
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||||
|
If own = False Then
|
||||||
|
p = BattleScreen.OppPokemon
|
||||||
|
End If
|
||||||
Dim b As Boolean = BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:darkvoid")
|
Dim b As Boolean = BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:darkvoid")
|
||||||
If b = False Then
|
If b = False Then
|
||||||
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
|
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
|
||||||
|
94
P3D/Pokemon/Attacks/Dark/HyperspaceFury.vb
Normal file
94
P3D/Pokemon/Attacks/Dark/HyperspaceFury.vb
Normal 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 user’s 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
|
@ -70,12 +70,18 @@
|
|||||||
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
||||||
Return Power
|
Return Power
|
||||||
End If
|
End If
|
||||||
|
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
|
||||||
|
Return Power
|
||||||
|
End If
|
||||||
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
||||||
Return Power
|
Return Power
|
||||||
End If
|
End If
|
||||||
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
||||||
Return Power
|
Return Power
|
||||||
End If
|
End If
|
||||||
|
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
Return Power
|
||||||
|
End If
|
||||||
|
|
||||||
Return CInt(Me.Power * 1.5F)
|
Return CInt(Me.Power * 1.5F)
|
||||||
End Function
|
End Function
|
||||||
@ -98,12 +104,18 @@
|
|||||||
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
op.OriginalItem = Item.GetItemByID(op.Item.ID)
|
op.OriginalItem = Item.GetItemByID(op.Item.ID)
|
||||||
op.OriginalItem.AdditionalData = op.Item.AdditionalData
|
op.OriginalItem.AdditionalData = op.Item.AdditionalData
|
||||||
|
96
P3D/Pokemon/Attacks/Dark/PartingShot.vb
Normal file
96
P3D/Pokemon/Attacks/Dark/PartingShot.vb
Normal 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
|
@ -75,15 +75,30 @@ Namespace BattleSystem.Moves.Dark
|
|||||||
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
If CheckMultitypePlate(p, op) = False Then
|
|
||||||
CanSwitchItems = False
|
|
||||||
End If
|
|
||||||
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" plate") = True AndAlso p.Number = 493 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" plate") = True AndAlso op.Number = 493 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" memory") = True AndAlso p.Number = 773 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" memory") = True AndAlso op.Number = 773 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
|
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
@ -105,25 +120,6 @@ Namespace BattleSystem.Moves.Dark
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function CheckMultitypePlate(ByVal p As Pokemon, ByVal op As Pokemon) As Boolean
|
|
||||||
If p.Ability.Name.ToLower() <> "multitype" And op.Ability.Name.ToLower() <> "multitype" Then
|
|
||||||
Return True
|
|
||||||
Else
|
|
||||||
If Not p.Item Is Nothing Then
|
|
||||||
If p.Item.Name.ToLower().EndsWith(" plate") = True Then
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
If Not op.Item Is Nothing Then
|
|
||||||
If op.Item.Name.ToLower().EndsWith(" plate") = True Then
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return True
|
|
||||||
End Function
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
End Namespace
|
End Namespace
|
||||||
|
@ -70,12 +70,18 @@
|
|||||||
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
If p.Item Is Nothing Then
|
If p.Item Is Nothing Then
|
||||||
Dim ItemID As Integer = op.Item.ID
|
Dim ItemID As Integer = op.Item.ID
|
||||||
|
70
P3D/Pokemon/Attacks/Fairy/Geomancy.vb
Normal file
70
P3D/Pokemon/Attacks/Fairy/Geomancy.vb
Normal 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
|
73
P3D/Pokemon/Attacks/Fairy/LightOfRuin.vb
Normal file
73
P3D/Pokemon/Attacks/Fairy/LightOfRuin.vb
Normal 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
|
70
P3D/Pokemon/Attacks/Fighting/FinalGambit.vb
Normal file
70
P3D/Pokemon/Attacks/Fighting/FinalGambit.vb
Normal 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
|
57
P3D/Pokemon/Attacks/Fighting/FlyingPress.vb
Normal file
57
P3D/Pokemon/Attacks/Fighting/FlyingPress.vb
Normal 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
|
76
P3D/Pokemon/Attacks/Fire/Incinerate.vb
Normal file
76
P3D/Pokemon/Attacks/Fire/Incinerate.vb
Normal 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
|
65
P3D/Pokemon/Attacks/Flying/DragonAscent.vb
Normal file
65
P3D/Pokemon/Attacks/Flying/DragonAscent.vb
Normal 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
|
200
P3D/Pokemon/Attacks/Ghost/PhantomForce.vb
Normal file
200
P3D/Pokemon/Attacks/Ghost/PhantomForce.vb
Normal 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
|
72
P3D/Pokemon/Attacks/Grass/WorrySeed.vb
Normal file
72
P3D/Pokemon/Attacks/Grass/WorrySeed.vb
Normal 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
|
57
P3D/Pokemon/Attacks/Ground/PrecipiceBlades.vb
Normal file
57
P3D/Pokemon/Attacks/Ground/PrecipiceBlades.vb
Normal 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
|
58
P3D/Pokemon/Attacks/Ground/ThousandArrows.vb
Normal file
58
P3D/Pokemon/Attacks/Ground/ThousandArrows.vb
Normal 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
|
@ -52,20 +52,6 @@
|
|||||||
'#End
|
'#End
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
|
|
||||||
Dim p As Pokemon = BattleScreen.OwnPokemon
|
|
||||||
Dim op As Pokemon = BattleScreen.OppPokemon
|
|
||||||
If own = False Then
|
|
||||||
p = BattleScreen.OppPokemon
|
|
||||||
op = BattleScreen.OwnPokemon
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim chance As Integer = GetEffectChance(0, own, BattleScreen)
|
|
||||||
If Core.Random.Next(0, 100) < chance Then
|
|
||||||
BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Attack", 1, "", "move:aurorabeam")
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
|
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
|
||||||
If own = True Then
|
If own = True Then
|
||||||
If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then
|
If BattleScreen.FieldEffects.OppTurnCounts > BattleScreen.FieldEffects.OwnTurnCounts Then
|
||||||
|
@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
If Not p.Item Is Nothing Then
|
If Not p.Item Is Nothing Then
|
||||||
If p.Item.Name.ToLower() = "power herb" And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
|
If p.Item.Name.ToLower() = "power herb" And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
|
||||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "Power Herb pushed the use of Ice Burn!", "move:iceburn") = True Then
|
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "Power Herb pushed the use of Freeze Shock!", "move:freezeshock") = True Then
|
||||||
freezeshock = 1
|
freezeshock = 1
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
64
P3D/Pokemon/Attacks/Ice/Glaciate.vb
Normal file
64
P3D/Pokemon/Attacks/Ice/Glaciate.vb
Normal 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
|
107
P3D/Pokemon/Attacks/Normal/Bestow.vb
Normal file
107
P3D/Pokemon/Attacks/Normal/Bestow.vb
Normal 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
|
65
P3D/Pokemon/Attacks/Normal/Celebrate.vb
Normal file
65
P3D/Pokemon/Attacks/Normal/Celebrate.vb
Normal 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
|
@ -73,12 +73,18 @@ Namespace BattleSystem.Moves.Normal
|
|||||||
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
If op.Ability.Name.ToLower() = "multitype" AndAlso op.Item.Name.ToLower().EndsWith(" plate") Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Ability.Name.ToLower() = "rks system" AndAlso op.Item.Name.ToLower().EndsWith(" memory") Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
If op.Item.Name.ToLower() = "griseous orb" And op.Number = 487 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
If op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
If op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
If p.Item Is Nothing Then
|
If p.Item Is Nothing Then
|
||||||
Dim ItemID As Integer = op.Item.ID
|
Dim ItemID As Integer = op.Item.ID
|
||||||
|
138
P3D/Pokemon/Attacks/Normal/EchoedVoice.vb
Normal file
138
P3D/Pokemon/Attacks/Normal/EchoedVoice.vb
Normal 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
|
77
P3D/Pokemon/Attacks/Normal/Entrainment.vb
Normal file
77
P3D/Pokemon/Attacks/Normal/Entrainment.vb
Normal 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
|
82
P3D/Pokemon/Attacks/Normal/HoldBack.vb
Normal file
82
P3D/Pokemon/Attacks/Normal/HoldBack.vb
Normal 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
|
@ -40,13 +40,13 @@
|
|||||||
Me.RemovesFrozen = False
|
Me.RemovesFrozen = False
|
||||||
|
|
||||||
Me.IsHealingMove = False
|
Me.IsHealingMove = False
|
||||||
Me.IsRecoilMove = True
|
Me.IsRecoilMove = False
|
||||||
Me.IsPunchingMove = False
|
Me.IsPunchingMove = False
|
||||||
Me.IsDamagingMove = True
|
Me.IsDamagingMove = True
|
||||||
Me.IsProtectMove = False
|
Me.IsProtectMove = False
|
||||||
Me.IsSoundMove = True
|
Me.IsSoundMove = True
|
||||||
|
|
||||||
Me.IsAffectedBySubstitute = True
|
Me.IsAffectedBySubstitute = False
|
||||||
Me.IsOneHitKOMove = False
|
Me.IsOneHitKOMove = False
|
||||||
Me.IsWonderGuardAffected = True
|
Me.IsWonderGuardAffected = True
|
||||||
'#End
|
'#End
|
||||||
|
110
P3D/Pokemon/Attacks/Normal/Judgement.vb
Normal file
110
P3D/Pokemon/Attacks/Normal/Judgement.vb
Normal 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
|
@ -74,7 +74,7 @@ Namespace BattleSystem.Moves.Normal
|
|||||||
BattleScreen.FieldEffects.OppPayDayCounter += coinAmount
|
BattleScreen.FieldEffects.OppPayDayCounter += coinAmount
|
||||||
End If
|
End If
|
||||||
|
|
||||||
BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered anywhere!"))
|
BattleScreen.BattleQuery.Add(New TextQueryObject("Coins were scattered everywhere!"))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
75
P3D/Pokemon/Attacks/Normal/ReflectType.vb
Normal file
75
P3D/Pokemon/Attacks/Normal/ReflectType.vb
Normal 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
|
78
P3D/Pokemon/Attacks/Normal/Round.vb
Normal file
78
P3D/Pokemon/Attacks/Normal/Round.vb
Normal 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
|
72
P3D/Pokemon/Attacks/Normal/SimpleBeam.vb
Normal file
72
P3D/Pokemon/Attacks/Normal/SimpleBeam.vb
Normal 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
|
84
P3D/Pokemon/Attacks/Normal/TechnoBlast.vb
Normal file
84
P3D/Pokemon/Attacks/Normal/TechnoBlast.vb
Normal 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
|
72
P3D/Pokemon/Attacks/Poison/VenomDrench.vb
Normal file
72
P3D/Pokemon/Attacks/Poison/VenomDrench.vb
Normal 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
|
@ -56,11 +56,11 @@
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
|
Public Overrides Function GetBasePower(own As Boolean, BattleScreen As BattleScreen) As Integer
|
||||||
Dim p As Pokemon = BattleScreen.OppPokemon
|
Dim op As Pokemon = BattleScreen.OppPokemon
|
||||||
If own = False Then
|
If own = False Then
|
||||||
p = BattleScreen.OwnPokemon
|
op = BattleScreen.OwnPokemon
|
||||||
End If
|
End If
|
||||||
If p.Status = Pokemon.StatusProblems.Poison Then
|
If op.Status = Pokemon.StatusProblems.Poison OrElse op.Status = Pokemon.StatusProblems.BadPoison Then
|
||||||
Return 130
|
Return 130
|
||||||
Else
|
Else
|
||||||
Return Me.Power
|
Return Me.Power
|
||||||
|
80
P3D/Pokemon/Attacks/Psychic/HyperspaceHole.vb
Normal file
80
P3D/Pokemon/Attacks/Psychic/HyperspaceHole.vb
Normal 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
|
61
P3D/Pokemon/Attacks/Psychic/Psystrike.vb
Normal file
61
P3D/Pokemon/Attacks/Psychic/Psystrike.vb
Normal 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
|
88
P3D/Pokemon/Attacks/Psychic/Synchronoise.vb
Normal file
88
P3D/Pokemon/Attacks/Psychic/Synchronoise.vb
Normal 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
|
@ -75,15 +75,30 @@ Namespace BattleSystem.Moves.Psychic
|
|||||||
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
If CheckMultitypePlate(p, op) = False Then
|
|
||||||
CanSwitchItems = False
|
|
||||||
End If
|
|
||||||
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso op.Number = 649 Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" plate") = True AndAlso p.Number = 493 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" plate") = True AndAlso op.Number = 493 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" memory") = True AndAlso p.Number = 773 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" memory") = True AndAlso op.Number = 773 Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
|
If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" mail") = True Then
|
||||||
|
CanSwitchItems = False
|
||||||
|
End If
|
||||||
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
|
If (p.Item IsNot Nothing AndAlso p.Item.IsMegaStone) OrElse (op.Item IsNot Nothing AndAlso op.Item.IsMegaStone) Then
|
||||||
CanSwitchItems = False
|
CanSwitchItems = False
|
||||||
End If
|
End If
|
||||||
@ -105,25 +120,6 @@ Namespace BattleSystem.Moves.Psychic
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function CheckMultitypePlate(ByVal p As Pokemon, ByVal op As Pokemon) As Boolean
|
|
||||||
If p.Ability.Name.ToLower() <> "multitype" And op.Ability.Name.ToLower() <> "multitype" Then
|
|
||||||
Return True
|
|
||||||
Else
|
|
||||||
If Not p.Item Is Nothing Then
|
|
||||||
If p.Item.Name.ToLower().EndsWith(" plate") = True Then
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
If Not op.Item Is Nothing Then
|
|
||||||
If op.Item.Name.ToLower().EndsWith(" plate") = True Then
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return True
|
|
||||||
End Function
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
End Namespace
|
End Namespace
|
68
P3D/Pokemon/Attacks/Rock/DiamondStorm.vb
Normal file
68
P3D/Pokemon/Attacks/Rock/DiamondStorm.vb
Normal 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
|
58
P3D/Pokemon/Attacks/Water/OriginPulse.vb
Normal file
58
P3D/Pokemon/Attacks/Water/OriginPulse.vb
Normal 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
|
18
P3D/Pokemon/Items/Standard/BurnDrive.vb
Normal file
18
P3D/Pokemon/Items/Standard/BurnDrive.vb
Normal 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
|
18
P3D/Pokemon/Items/Standard/ChillDrive.vb
Normal file
18
P3D/Pokemon/Items/Standard/ChillDrive.vb
Normal 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
|
18
P3D/Pokemon/Items/Standard/DouseDrive.vb
Normal file
18
P3D/Pokemon/Items/Standard/DouseDrive.vb
Normal 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
|
18
P3D/Pokemon/Items/Standard/ShockDrive.vb
Normal file
18
P3D/Pokemon/Items/Standard/ShockDrive.vb
Normal 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.
@ -20,7 +20,8 @@
|
|||||||
Dim tutorMove As BattleSystem.Attack = Pokemon.AttackLearns.Values(i)
|
Dim tutorMove As BattleSystem.Attack = Pokemon.AttackLearns.Values(i)
|
||||||
Dim learnLevel As Integer = Pokemon.AttackLearns.Keys(i)
|
Dim learnLevel As Integer = Pokemon.AttackLearns.Keys(i)
|
||||||
|
|
||||||
If learnLevel <= Pokemon.Level Then
|
'Commented those to test Tutor Gen 6+ behavior
|
||||||
|
'If learnLevel <= Pokemon.Level Then
|
||||||
Dim canLearnMove As Boolean = True
|
Dim canLearnMove As Boolean = True
|
||||||
|
|
||||||
For Each learnedAttack As BattleSystem.Attack In Pokemon.Attacks
|
For Each learnedAttack As BattleSystem.Attack In Pokemon.Attacks
|
||||||
@ -38,7 +39,7 @@
|
|||||||
If canLearnMove = True Then
|
If canLearnMove = True Then
|
||||||
MovesList.Add(tutorMove)
|
MovesList.Add(tutorMove)
|
||||||
End If
|
End If
|
||||||
End If
|
'End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Me.MouseVisible = False
|
Me.MouseVisible = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user