mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-25 14:54:48 +02:00
Fix Berserker Gene functionality
This commit is contained in:
parent
191fc26cae
commit
ce565d7925
@ -3608,7 +3608,7 @@
|
|||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function InflictConfusion(ByVal own As Boolean, ByVal from As Boolean, ByVal BattleScreen As BattleScreen, ByVal message As String, ByVal cause As String) As Boolean
|
Public Function InflictConfusion(ByVal own As Boolean, ByVal from As Boolean, ByVal BattleScreen As BattleScreen, ByVal message As String, ByVal cause As String, Optional setConfusionTurns As Integer = -1) As Boolean
|
||||||
Dim p As Pokemon = BattleScreen.OwnPokemon
|
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||||
Dim pNPC As NPC = BattleScreen.OwnPokemonNPC
|
Dim pNPC As NPC = BattleScreen.OwnPokemonNPC
|
||||||
Dim op As Pokemon = BattleScreen.OppPokemon
|
Dim op As Pokemon = BattleScreen.OppPokemon
|
||||||
@ -3625,10 +3625,23 @@
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If p.HasVolatileStatus(Pokemon.VolatileStatus.Confusion) = True Then
|
If p.HasVolatileStatus(Pokemon.VolatileStatus.Confusion) = True Then
|
||||||
|
Dim success As Boolean = False
|
||||||
|
If own = True Then
|
||||||
|
If BattleScreen.FieldEffects.OwnConfusionTurns < setConfusionTurns Then
|
||||||
|
success = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If BattleScreen.FieldEffects.OppConfusionTurns < setConfusionTurns Then
|
||||||
|
success = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If success = False Then
|
||||||
Me.ChangeCameraAngle(1, own, BattleScreen)
|
Me.ChangeCameraAngle(1, own, BattleScreen)
|
||||||
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is already confused!"))
|
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is already confused!"))
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If BattleScreen.FieldEffects.MistyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(own, BattleScreen) = True Then
|
If BattleScreen.FieldEffects.MistyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(own, BattleScreen) = True Then
|
||||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The mist prevented the confusion."))
|
BattleScreen.BattleQuery.Add(New TextQueryObject("The mist prevented the confusion."))
|
||||||
@ -3636,6 +3649,9 @@
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim confusionTurns As Integer = Core.Random.Next(1, 5)
|
Dim confusionTurns As Integer = Core.Random.Next(1, 5)
|
||||||
|
If setConfusionTurns <> -1 Then
|
||||||
|
confusionTurns = setConfusionTurns
|
||||||
|
End If
|
||||||
Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute
|
Dim substitute As Integer = BattleScreen.FieldEffects.OwnSubstitute
|
||||||
If own = False Then
|
If own = False Then
|
||||||
substitute = BattleScreen.FieldEffects.OppSubstitute
|
substitute = BattleScreen.FieldEffects.OppSubstitute
|
||||||
@ -3692,7 +3708,9 @@
|
|||||||
Else
|
Else
|
||||||
BattleScreen.BattleQuery.Add(New PlaySoundQueryObject("Battle\Effects\Confused", False))
|
BattleScreen.BattleQuery.Add(New PlaySoundQueryObject("Battle\Effects\Confused", False))
|
||||||
End If
|
End If
|
||||||
|
If p.HasVolatileStatus(Pokemon.VolatileStatus.Confusion) = False Then
|
||||||
p.AddVolatileStatus(Pokemon.VolatileStatus.Confusion)
|
p.AddVolatileStatus(Pokemon.VolatileStatus.Confusion)
|
||||||
|
End If
|
||||||
Select Case message
|
Select Case message
|
||||||
Case "" 'Print default message only
|
Case "" 'Print default message only
|
||||||
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is confused!"))
|
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " is confused!"))
|
||||||
@ -5151,15 +5169,28 @@
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Case "berserk gene"
|
Case "berserk gene"
|
||||||
If p.StatAttack <> 6 OrElse p.StatSpAttack <> 6 Then
|
|
||||||
If p.HP < CInt(Math.Floor(p.MaxHP / 3)) Then
|
|
||||||
If RemoveHeldItem(own, own, BattleScreen, "-1", "") = True Then
|
If RemoveHeldItem(own, own, BattleScreen, "-1", "") = True Then
|
||||||
InflictConfusion(own, own, BattleScreen, p.GetDisplayName() & " went berserk due to the Berserk Gene!", "item:berserkgene")
|
If p.HasVolatileStatus(Pokemon.VolatileStatus.Confusion) = False Then
|
||||||
|
If own = True Then
|
||||||
|
If BattleScreen.OwnPokemonIndex > 0 AndAlso BattleScreen.FieldEffects.TempOwnConfusionTurns > 0 Then
|
||||||
|
InflictConfusion(own, own, BattleScreen, p.GetDisplayName() & " went berserk due to the Berserk Gene!", "item:berserkgene", BattleScreen.FieldEffects.TempOwnConfusionTurns)
|
||||||
|
Else
|
||||||
|
InflictConfusion(own, own, BattleScreen, p.GetDisplayName() & " went berserk due to the Berserk Gene!", "item:berserkgene", 256)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
If BattleScreen.OppPokemonIndex > 0 AndAlso BattleScreen.FieldEffects.TempOppConfusionTurns > 0 Then
|
||||||
|
InflictConfusion(own, own, BattleScreen, p.GetDisplayName() & " went berserk due to the Berserk Gene!", "item:berserkgene", BattleScreen.FieldEffects.TempOppConfusionTurns)
|
||||||
|
Else
|
||||||
|
InflictConfusion(own, own, BattleScreen, p.GetDisplayName() & " went berserk due to the Berserk Gene!", "item:berserkgene", 256)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " went berserk due to the Berserk Gene!"))
|
||||||
|
End If
|
||||||
|
BattleScreen.FieldEffects.TempOppConfusionTurns = 0
|
||||||
RaiseStat(own, own, BattleScreen, "Attack", 2, "", "item:berserkgene")
|
RaiseStat(own, own, BattleScreen, "Attack", 2, "", "item:berserkgene")
|
||||||
RaiseStat(own, own, BattleScreen, "Special Attack", 2, "", "item:berserkgene")
|
RaiseStat(own, own, BattleScreen, "Special Attack", 2, "", "item:berserkgene")
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@ -7271,6 +7302,9 @@
|
|||||||
Dim HasSwitchedInOpp As Boolean = False
|
Dim HasSwitchedInOpp As Boolean = False
|
||||||
Public Sub SwitchOutOwn(ByVal BattleScreen As BattleScreen, ByVal SwitchInIndex As Integer, ByVal InsertIndex As Integer, Optional ByVal message As String = "")
|
Public Sub SwitchOutOwn(ByVal BattleScreen As BattleScreen, ByVal SwitchInIndex As Integer, ByVal InsertIndex As Integer, Optional ByVal message As String = "")
|
||||||
With BattleScreen
|
With BattleScreen
|
||||||
|
If .FieldEffects.OwnConfusionTurns > 0 Then
|
||||||
|
.FieldEffects.TempOwnConfusionTurns = .FieldEffects.OwnConfusionTurns
|
||||||
|
End If
|
||||||
'Natural cure cures status problems
|
'Natural cure cures status problems
|
||||||
If .OwnPokemon.Ability.Name.ToLower() = "natural cure" Then
|
If .OwnPokemon.Ability.Name.ToLower() = "natural cure" Then
|
||||||
ChangeCameraAngle(1, True, BattleScreen)
|
ChangeCameraAngle(1, True, BattleScreen)
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
Public OwnYawn As Integer = 0 'Yawn move counter
|
Public OwnYawn As Integer = 0 'Yawn move counter
|
||||||
Public OwnPerishSongCount As Integer = 0 'Perishsong move counter
|
Public OwnPerishSongCount As Integer = 0 'Perishsong move counter
|
||||||
Public OwnConfusionTurns As Integer = 0 'Turns until confusion runs out
|
Public OwnConfusionTurns As Integer = 0 'Turns until confusion runs out
|
||||||
|
Public TempOwnConfusionTurns As Integer = 0 'For the functionality of Berserk Gene
|
||||||
Public OwnTorment As Integer = 0 'Torment move counter
|
Public OwnTorment As Integer = 0 'Torment move counter
|
||||||
Public OwnTormentMove As Attack = Nothing 'Torment move
|
Public OwnTormentMove As Attack = Nothing 'Torment move
|
||||||
Public OwnMetronomeItemCount As Integer = 0 'The counter for the item Metronome
|
Public OwnMetronomeItemCount As Integer = 0 'The counter for the item Metronome
|
||||||
@ -181,6 +182,7 @@
|
|||||||
Public OppFutureSightID As Integer = 0
|
Public OppFutureSightID As Integer = 0
|
||||||
Public OppPerishSongCount As Integer = 0
|
Public OppPerishSongCount As Integer = 0
|
||||||
Public OppConfusionTurns As Integer = 0
|
Public OppConfusionTurns As Integer = 0
|
||||||
|
Public TempOppConfusionTurns As Integer = 0
|
||||||
Public OppTorment As Integer = 0
|
Public OppTorment As Integer = 0
|
||||||
Public OppTormentMove As Attack = Nothing
|
Public OppTormentMove As Attack = Nothing
|
||||||
Public OppMetronomeItemCount As Integer = 0
|
Public OppMetronomeItemCount As Integer = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user