Fixed multiturn moves interaction with confusion status

This commit is contained in:
CaptainSegis 2017-01-17 00:20:32 -05:00
parent 70714a9005
commit 3f42993401
17 changed files with 138 additions and 0 deletions

View File

@ -1228,6 +1228,7 @@
Dim a As Attack = New ConfusionAttack() Dim a As Attack = New ConfusionAttack()
Dim damage As Integer = BattleCalculation.CalculateDamage(a, False, True, True, BattleScreen) Dim damage As Integer = BattleCalculation.CalculateDamage(a, False, True, True, BattleScreen)
ReduceHP(damage, own, own, BattleScreen, p.GetDisplayName() & " hurt itself in confusion.", "confusiondamage") ReduceHP(damage, own, own, BattleScreen, p.GetDisplayName() & " hurt itself in confusion.", "confusiondamage")
moveUsed.HurtItselfInConfusion(own, BattleScreen)
Exit Sub Exit Sub
End If End If
End If End If

View File

@ -1726,6 +1726,24 @@
'DO NOTHING 'DO NOTHING
End Sub End Sub
''' <summary>
''' Event that occurs when the pokemon has hurt itself in confusion.
''' </summary>
''' <param name="Own">If the own Pokémon is confused.</param>
''' <param name="BattleScreen">Reference to the BattleScreen.</param>
Public Overridable Sub HurtItselfInConfusion(ByVal own As Boolean, ByVal BattleScreen As BattleScreen)
'DO NOTHING
End Sub
''' <summary>
''' Event that occurs when the pokemon has falls in love with the opponent.
''' </summary>
''' <param name="Own">If the own Pokémon is in love.</param>
''' <param name="BattleScreen">Reference to the BattleScreen.</param>
Public Overridable Sub IsAttracted(ByVal own As Boolean, ByVal BattleScreen As BattleScreen)
'DO NOTHING
End Sub
''' <summary> ''' <summary>
''' Event that occurs when a the pokemon has been put to sleep. ''' Event that occurs when a the pokemon has been put to sleep.
''' </summary> ''' </summary>

View File

@ -113,6 +113,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -169,6 +169,14 @@
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -166,6 +166,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -169,6 +169,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -113,6 +113,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -188,6 +188,14 @@
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -170,6 +170,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -129,6 +129,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -137,6 +137,13 @@
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -168,6 +168,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -170,6 +170,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace

View File

@ -113,6 +113,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -101,6 +101,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -129,6 +129,14 @@ Namespace BattleSystem.Moves.Rock
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen) Interruption(own, BattleScreen)
End Sub End Sub
Public Overrides Sub HurtItselfInConfusion(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
Public Overrides Sub IsAttracted(own As Boolean, BattleScreen As BattleScreen)
Interruption(own, BattleScreen)
End Sub
End Class End Class
End Namespace End Namespace

View File

@ -172,6 +172,14 @@
Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub IsSleeping(own As Boolean, BattleScreen As BattleScreen)
MoveFails(own, BattleScreen) MoveFails(own, BattleScreen)
End Sub 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
End Class End Class
End Namespace End Namespace