Terrain related moves added

This commit is contained in:
Ruan Pablo 2019-09-22 18:47:55 -03:00
parent dc10d9d505
commit 4907ee5bf2
6 changed files with 348 additions and 39 deletions

View File

@ -1402,10 +1402,10 @@
'Crafty Shield
'Case 579
'Flower Shield
'Case 580
'Grassy Terrain
'Case 581
'Misty Terrain
Case 580
returnMove = New Moves.Grass.GrassyTerrain()
Case 581
returnMove = New Moves.Fairy.MistyTerrain()
'Case 582
'Electrify
Case 583
@ -1450,8 +1450,8 @@
'Magnetic Flux - Double Battles
'Case 603
'Happy Hour
'Case 604
'Electric Terrain
Case 604
returnMove = New Moves.Electric.ElectricTerrain()
Case 605
returnMove = New Moves.Fairy.DazzlingGleam()
Case 606
@ -1600,8 +1600,8 @@
returnMove = New Moves.Bug.PollenPuff()
Case 677
returnMove = New Moves.Steel.AnchorShot()
'Case 678
'Psychic Terrain
Case 678
returnMove = New Moves.Psychic.PsychicTerrain()
Case 679
returnMove = New Moves.Bug.Lunge()
Case 680

View File

@ -0,0 +1,75 @@
Namespace BattleSystem.Moves.Electric
Public Class ElectricTerrain
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Electric)
Me.ID = 604
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Electric Terrain"
Me.Description = "The user electrifies the ground for five turns, powering up Electric-type moves. Pokémon on the ground no longer fall asleep."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.All
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
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
If BattleScreen.FieldEffects.ElectricTerrain <= 0 Then
BattleScreen.FieldEffects.ElectricTerrain = turns
BattleScreen.FieldEffects.GrassyTerrain = 0
BattleScreen.FieldEffects.PsychicTerrain = 0
BattleScreen.FieldEffects.MistyTerrain = 0
BattleScreen.BattleQuery.Add(New TextQueryObject("An electric current runs across the battlefield!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,75 @@
Namespace BattleSystem.Moves.Fairy
Public Class MistyTerrain
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Fairy)
Me.ID = 581
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 = "Misty Terrain"
Me.Description = "This protects Pokémon on the ground from status conditions and halves damage from Dragon-type moves for five turns."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.All
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
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
If BattleScreen.FieldEffects.MistyTerrain <= 0 Then
BattleScreen.FieldEffects.ElectricTerrain = 0
BattleScreen.FieldEffects.GrassyTerrain = 0
BattleScreen.FieldEffects.PsychicTerrain = 0
BattleScreen.FieldEffects.MistyTerrain = turns
BattleScreen.BattleQuery.Add(New TextQueryObject("Mist swirls around the battlefield!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -0,0 +1,75 @@
Namespace BattleSystem.Moves.Grass
Public Class GrassyTerrain
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Grass)
Me.ID = 580
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 = "Grassy Terrain"
Me.Description = "The user turns the ground to grass for five turns. This restores the HP of Pokémon on the ground a little every turn and powers up Grass type-moves."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.All
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
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
If BattleScreen.FieldEffects.GrassyTerrain <= 0 Then
BattleScreen.FieldEffects.ElectricTerrain = 0
BattleScreen.FieldEffects.GrassyTerrain = turns
BattleScreen.FieldEffects.PsychicTerrain = 0
BattleScreen.FieldEffects.MistyTerrain = 0
BattleScreen.BattleQuery.Add(New TextQueryObject("Grass grew to cover the battlefield!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace

View File

@ -52,37 +52,46 @@
'#End
End Sub
Public Shared Function GetMoveID() As Integer
Select Case Screen.Level.Terrain.TerrainType
Case Terrain.TerrainTypes.Plain
Return 161
Case Terrain.TerrainTypes.Cave
Return 247
Case Terrain.TerrainTypes.DisortionWorld
Return 185
Case Terrain.TerrainTypes.LongGrass
Return 75
Case Terrain.TerrainTypes.Magma
Return 172
Case Terrain.TerrainTypes.PondWater
Return 61
Case Terrain.TerrainTypes.Puddles
Return 426
Case Terrain.TerrainTypes.Rock
Return 157
Case Terrain.TerrainTypes.Sand
Return 89
Case Terrain.TerrainTypes.SeaWater
Return 56
Case Terrain.TerrainTypes.Snow
Return 58
Case Terrain.TerrainTypes.TallGrass
Return 402
Case Terrain.TerrainTypes.Underwater
Return 291
End Select
Return 89
Public Shared Function GetMoveID(own As Boolean, Battlescreen As BattleScreen) As Integer
If Battlescreen.FieldEffects.ElectricTerrain > 0 Then
Return 85
ElseIf Battlescreen.FieldEffects.GrassyTerrain > 0 Then
Return 412
ElseIf Battlescreen.FieldEffects.MistyTerrain > 0 Then
Return 585
ElseIf Battlescreen.FieldEffects.PsychicTerrain > 0 Then
Return 94
Else
Select Case Screen.Level.Terrain.TerrainType
Case Terrain.TerrainTypes.Plain
Return 161
Case Terrain.TerrainTypes.Cave
Return 247
Case Terrain.TerrainTypes.DisortionWorld
Return 185
Case Terrain.TerrainTypes.LongGrass
Return 75
Case Terrain.TerrainTypes.Magma
Return 172
Case Terrain.TerrainTypes.PondWater
Return 61
Case Terrain.TerrainTypes.Puddles
Return 426
Case Terrain.TerrainTypes.Rock
Return 157
Case Terrain.TerrainTypes.Sand
Return 89
Case Terrain.TerrainTypes.SeaWater
Return 56
Case Terrain.TerrainTypes.Snow
Return 58
Case Terrain.TerrainTypes.TallGrass
Return 402
Case Terrain.TerrainTypes.Underwater
Return 291
End Select
Return 89
End If
End Function
End Class

View File

@ -0,0 +1,75 @@
Namespace BattleSystem.Moves.Psychic
Public Class PsychicTerrain
Inherits Attack
Public Sub New()
'#Definitions
Me.Type = New Element(Element.Types.Psychic)
Me.ID = 678
Me.OriginalPP = 10
Me.CurrentPP = 10
Me.MaxPP = 10
Me.Power = 0
Me.Accuracy = 0
Me.Category = Categories.Status
Me.ContestCategory = ContestCategories.Smart
Me.Name = "Psychic Terrain"
Me.Description = "This protects Pokémon on the ground from priority moves and powers up Psychic-type moves for five turns."
Me.CriticalChance = 0
Me.IsHMMove = False
Me.Target = Targets.All
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
'#End
Me.AIField1 = AIField.Support
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
If BattleScreen.FieldEffects.PsychicTerrain <= 0 Then
BattleScreen.FieldEffects.ElectricTerrain = 0
BattleScreen.FieldEffects.GrassyTerrain = 0
BattleScreen.FieldEffects.PsychicTerrain = turns
BattleScreen.FieldEffects.MistyTerrain = 0
BattleScreen.BattleQuery.Add(New TextQueryObject("The battlefield got weird!"))
Else
BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!"))
End If
End Sub
End Class
End Namespace