2016-09-07 18:50:38 +02:00
Namespace BattleSystem . Moves . Dark
Public Class KnockOff
Inherits Attack
Public Sub New ( )
'#Definitions
Me . Type = New Element ( Element . Types . Dark )
Me . ID = 282
2018-08-05 03:22:22 +02:00
Me . OriginalPP = 20
Me . CurrentPP = 20
Me . MaxPP = 20
2016-09-07 18:50:38 +02:00
Me . Power = 65
Me . Accuracy = 100
Me . Category = Categories . Physical
Me . ContestCategory = ContestCategories . Smart
2022-12-04 20:11:29 +01:00
Me . Name = Localization . GetString ( " move_name_ " & Me . ID , " Knock Off " )
2016-09-07 18:50:38 +02:00
Me . Description = " The user slaps down the target's held item, and that item can't be used in that battle. The move does more damage if the target has a held item. "
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 = False
Me . CounterAffected = True
Me . DisabledWhileGravity = False
Me . UseEffectiveness = True
Me . ImmunityAffected = True
2023-04-01 08:58:01 +02:00
Me . RemovesOwnFrozen = False
2016-09-07 18:50:38 +02:00
Me . HasSecondaryEffect = False
Me . IsHealingMove = False
Me . IsRecoilMove = False
2022-12-20 17:40:04 +01:00
2016-09-07 18:50:38 +02:00
Me . IsDamagingMove = True
Me . IsProtectMove = False
2022-12-20 17:40:04 +01:00
2016-09-07 18:50:38 +02:00
Me . IsAffectedBySubstitute = True
Me . IsOneHitKOMove = False
Me . IsWonderGuardAffected = True
'#End
End Sub
Public Overrides Function GetBasePower ( own As Boolean , BattleScreen As BattleScreen ) As Integer
2016-12-19 20:51:17 +01:00
Dim p As Pokemon = BattleScreen . OwnPokemon
Dim op As Pokemon = BattleScreen . OppPokemon
If own = False Then
p = BattleScreen . OppPokemon
op = BattleScreen . OwnPokemon
End If
'Conditions
If op . Item Is Nothing Then
Return Power
End If
If op . Item . IsMegaStone = True Then
Return Power
End If
2023-01-02 15:27:59 +01:00
If op . Ability . Name . ToLower ( ) = " multitype " AndAlso op . Item . OriginalName . ToLower ( ) . EndsWith ( " plate " ) Then
2016-12-19 20:51:17 +01:00
Return Power
End If
2023-01-02 15:27:59 +01:00
If op . Ability . Name . ToLower ( ) = " rks system " AndAlso op . Item . OriginalName . ToLower ( ) . EndsWith ( " memory " ) Then
2018-10-26 10:03:33 +02:00
Return Power
End If
2023-01-02 15:27:59 +01:00
If op . Item . OriginalName . ToLower ( ) = " griseous orb " And op . Number = 487 Then
2016-12-19 20:51:17 +01:00
Return Power
End If
2023-01-02 15:27:59 +01:00
If op . Item . OriginalName . ToLower ( ) . EndsWith ( " drive " ) = True AndAlso op . Number = 649 Then
2016-12-19 20:51:17 +01:00
Return Power
2016-09-07 18:50:38 +02:00
End If
2023-07-23 20:53:21 +02:00
If op . Item . IsMail = True Then
2018-10-26 10:03:33 +02:00
Return Power
End If
2016-09-07 18:50:38 +02:00
2016-12-19 20:51:17 +01:00
Return CInt ( Me . Power * 1 . 5F )
2016-09-07 18:50:38 +02:00
End Function
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
2016-12-19 20:51:17 +01:00
'Conditions
If op . Item Is Nothing Then
Exit Sub
End If
2016-09-29 19:56:36 +02:00
If op . Item . IsMegaStone = True Then
Exit Sub
End If
2023-01-02 15:27:59 +01:00
If op . Ability . Name . ToLower ( ) = " multitype " AndAlso op . Item . OriginalName . ToLower ( ) . EndsWith ( " plate " ) Then
2016-12-19 20:51:17 +01:00
Exit Sub
2016-09-07 18:50:38 +02:00
End If
2023-01-02 15:27:59 +01:00
If op . Ability . Name . ToLower ( ) = " rks system " AndAlso op . Item . OriginalName . ToLower ( ) . EndsWith ( " memory " ) Then
2018-10-26 10:03:33 +02:00
Exit Sub
End If
2023-01-02 15:27:59 +01:00
If op . Item . OriginalName . ToLower ( ) = " griseous orb " And op . Number = 487 Then
2016-12-19 20:51:17 +01:00
Exit Sub
End If
2023-01-02 15:27:59 +01:00
If op . Item . OriginalName . ToLower ( ) . EndsWith ( " drive " ) = True AndAlso p . Number = 649 Then
2016-12-19 20:51:17 +01:00
Exit Sub
End If
2023-07-23 20:53:21 +02:00
If op . Item . IsMail = True Then
2018-10-26 10:03:33 +02:00
Exit Sub
End If
2016-12-19 20:51:17 +01:00
2023-06-21 19:21:34 +02:00
Dim ItemID As String
If p . Item . IsGameModeItem = True Then
ItemID = p . Item . gmID
Else
ItemID = p . Item . ID . ToString
2023-05-29 15:33:57 +02:00
End If
op . OriginalItem = Item . GetItemByID ( ItemID )
2016-12-19 20:51:17 +01:00
op . OriginalItem . AdditionalData = op . Item . AdditionalData
BattleScreen . Battle . RemoveHeldItem ( Not own , own , BattleScreen , p . GetDisplayName ( ) & " knocked off the " & op . GetDisplayName ( ) & " 's " & op . OriginalItem . Name & " ! " , " move:knockoff " )
2016-09-07 18:50:38 +02:00
End Sub
End Class
End Namespace