From 89ec6ef33e8b2f1bba3569620374d66f101a2aef Mon Sep 17 00:00:00 2001 From: Capt_Segis Date: Wed, 14 Sep 2016 20:21:09 -0500 Subject: [PATCH] Fixed sec. effect values (psychic) --- .../Pokemon/Attacks/Psychic/Agility.vb | 130 +++++----- .../Pokemon/Attacks/Psychic/Amnesia.vb | 130 +++++----- .../Pokemon/Attacks/Psychic/Barrier.vb | 130 +++++----- .../Pokemon/Attacks/Psychic/CosmicPower.vb | 128 ++++----- .../Pokemon/Attacks/Psychic/DreamEater.vb | 214 +++++++-------- .../Pokemon/Attacks/Psychic/Gravity.vb | 136 +++++----- .../Pokemon/Attacks/Psychic/HealingWish.vb | 150 +++++------ .../Pokemon/Attacks/Psychic/Hypnosis.vb | 132 +++++----- .../Pokemon/Attacks/Psychic/Kinesis.vb | 130 +++++----- .../Pokemon/Attacks/Psychic/LightScreen.vb | 180 ++++++------- .../Pokemon/Attacks/Psychic/MagicCoat.vb | 134 +++++----- .../Pokemon/Attacks/Psychic/Meditate.vb | 130 +++++----- .../Pokemon/Attacks/Psychic/MiracleEye.vb | 152 +++++------ .../Pokemon/Attacks/Psychic/PowerTrick.vb | 154 +++++------ .../Pokemon/Attacks/Psychic/PsychoBoost.vb | 120 ++++----- .../Pokemon/Attacks/Psychic/PsychoShift.vb | 192 +++++++------- .../Pokemon/Attacks/Psychic/Reflect.vb | 180 ++++++------- .../2.5DHero/Pokemon/Attacks/Psychic/Rest.vb | 186 ++++++------- .../Pokemon/Attacks/Psychic/RolePlay.vb | 152 +++++------ .../Pokemon/Attacks/Psychic/SkillSwap.vb | 172 ++++++------ .../2.5DHero/Pokemon/Attacks/Psychic/Trick.vb | 244 +++++++++--------- 21 files changed, 1638 insertions(+), 1638 deletions(-) diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Agility.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Agility.vb index 372fe907d..86d8da8dd 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Agility.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Agility.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Agility - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 97 - Me.OriginalPP = 30 - Me.CurrentPP = 30 - Me.MaxPP = 30 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cool - Me.Name = "Agility" - Me.Description = "The user relaxes and lightens its body to move faster. It sharply boosts the Speed stat." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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.RaiseSpeed - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Speed", 2, "", "move:agility") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Agility + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 97 + Me.OriginalPP = 30 + Me.CurrentPP = 30 + Me.MaxPP = 30 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Agility" + Me.Description = "The user relaxes and lightens its body to move faster. It sharply boosts the Speed stat." + 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 = True + Me.MirrorMoveAffected = True + 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.RaiseSpeed + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Speed", 2, "", "move:agility") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Amnesia.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Amnesia.vb index b00ab82e7..67115e2a4 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Amnesia.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Amnesia.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Amnesia - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 133 - Me.OriginalPP = 20 - Me.CurrentPP = 20 - Me.MaxPP = 20 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cute - Me.Name = "Amnesia" - Me.Description = "The user temporarily empties its mind to forget its concerns. It sharply raises the user's Sp. Def stat." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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.RaiseSpDefense - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 2, "", "move:amnesia") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Amnesia + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 133 + Me.OriginalPP = 20 + Me.CurrentPP = 20 + Me.MaxPP = 20 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cute + Me.Name = "Amnesia" + Me.Description = "The user temporarily empties its mind to forget its concerns. It sharply raises the user's Sp. Def stat." + 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 = True + Me.MirrorMoveAffected = True + 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.RaiseSpDefense + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 2, "", "move:amnesia") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Barrier.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Barrier.vb index 729fcc417..731c8bac0 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Barrier.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Barrier.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Barrier - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 112 - Me.OriginalPP = 20 - Me.CurrentPP = 20 - Me.MaxPP = 20 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cool - Me.Name = "Barrier" - Me.Description = "The user throws up a sturdy wall that sharply raises its Defense stat." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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.RaiseDefense - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Defense", 2, "", "move:barrier") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Barrier + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 112 + Me.OriginalPP = 20 + Me.CurrentPP = 20 + Me.MaxPP = 20 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Barrier" + Me.Description = "The user throws up a sturdy wall that sharply raises its Defense stat." + 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 = True + Me.MirrorMoveAffected = True + 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.RaiseDefense + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Defense", 2, "", "move:barrier") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/CosmicPower.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/CosmicPower.vb index 7f6e613d5..9228af85f 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/CosmicPower.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/CosmicPower.vb @@ -1,65 +1,65 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class CosmicPower - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 322 - Me.OriginalPP = 20 - Me.CurrentPP = 20 - Me.MaxPP = 20 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cool - Me.Name = "Cosmic Power" - Me.Description = "The user absorbs a mystical power from space to raise its Defense and Sp. Def stats." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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.RaiseDefense - Me.AIField2 = AIField.RaiseSpDefense - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Defense", 1, "", "move:cosmicpower") - BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 1, "", "move:cosmicpower") - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class CosmicPower + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 322 + Me.OriginalPP = 20 + Me.CurrentPP = 20 + Me.MaxPP = 20 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Cosmic Power" + Me.Description = "The user absorbs a mystical power from space to raise its Defense and Sp. Def stats." + 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 = True + Me.MirrorMoveAffected = True + 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.RaiseDefense + Me.AIField2 = AIField.RaiseSpDefense + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Defense", 1, "", "move:cosmicpower") + BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Special Defense", 1, "", "move:cosmicpower") + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/DreamEater.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/DreamEater.vb index a0914e901..3df29601d 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/DreamEater.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/DreamEater.vb @@ -1,108 +1,108 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class DreamEater - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 138 - Me.OriginalPP = 15 - Me.CurrentPP = 15 - Me.MaxPP = 15 - Me.Power = 100 - Me.Accuracy = 100 - Me.Category = Categories.Special - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Dream Eater" - Me.Description = "The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP." - 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 = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = True - Me.ImmunityAffected = True - Me.HasSecondaryEffect = True - Me.RemovesFrozen = False - - Me.IsHealingMove = True - 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 MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean - Dim op As Pokemon = BattleScreen.OppPokemon - If Own = False Then - op = BattleScreen.OwnPokemon - End If - - If op.Status <> Pokemon.StatusProblems.Sleep Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Return True - Else - Return False - End If - 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 - - Dim damage As Integer = BattleScreen.FieldEffects.OwnLastDamage - If own = False Then - damage = BattleScreen.FieldEffects.OppLastDamage - End If - Dim heal As Integer = CInt(Math.Ceiling(damage / 2)) - - If heal <= 0 Then - heal = 1 - End If - - If op.Ability.Name.ToLower() = "liquid ooze" And BattleScreen.FieldEffects.CanUseAbility(Not own, BattleScreen) = True Then - BattleScreen.Battle.ReduceHP(heal, own, own, BattleScreen, "Liquid Ooze damaged " & p.GetDisplayName() & "!", "liquidooze") - Else - If Not p.Item Is Nothing Then - If p.Item.Name.ToLower() = "big root" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then - heal = CInt(Math.Ceiling(damage * (80 / 100))) - End If - End If - - Dim healBlock As Integer = BattleScreen.FieldEffects.OppHealBlock - If own = False Then - healBlock = BattleScreen.FieldEffects.OwnHealBlock - End If - If healBlock = 0 Then - BattleScreen.Battle.GainHP(heal, own, own, BattleScreen, op.GetDisplayName() & " had its energy drained!", "move:dreameater") - End If - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class DreamEater + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 138 + Me.OriginalPP = 15 + Me.CurrentPP = 15 + Me.MaxPP = 15 + Me.Power = 100 + Me.Accuracy = 100 + Me.Category = Categories.Special + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Dream Eater" + Me.Description = "The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP." + 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 = False + Me.CounterAffected = False + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = True + Me.ImmunityAffected = True + Me.HasSecondaryEffect = False + Me.RemovesFrozen = False + + Me.IsHealingMove = True + 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 MoveFailBeforeAttack(Own As Boolean, BattleScreen As BattleScreen) As Boolean + Dim op As Pokemon = BattleScreen.OppPokemon + If Own = False Then + op = BattleScreen.OwnPokemon + End If + + If op.Status <> Pokemon.StatusProblems.Sleep Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Return True + Else + Return False + End If + 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 + + Dim damage As Integer = BattleScreen.FieldEffects.OwnLastDamage + If own = False Then + damage = BattleScreen.FieldEffects.OppLastDamage + End If + Dim heal As Integer = CInt(Math.Ceiling(damage / 2)) + + If heal <= 0 Then + heal = 1 + End If + + If op.Ability.Name.ToLower() = "liquid ooze" And BattleScreen.FieldEffects.CanUseAbility(Not own, BattleScreen) = True Then + BattleScreen.Battle.ReduceHP(heal, own, own, BattleScreen, "Liquid Ooze damaged " & p.GetDisplayName() & "!", "liquidooze") + Else + If Not p.Item Is Nothing Then + If p.Item.Name.ToLower() = "big root" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then + heal = CInt(Math.Ceiling(damage * (80 / 100))) + End If + End If + + Dim healBlock As Integer = BattleScreen.FieldEffects.OppHealBlock + If own = False Then + healBlock = BattleScreen.FieldEffects.OwnHealBlock + End If + If healBlock = 0 Then + BattleScreen.Battle.GainHP(heal, own, own, BattleScreen, op.GetDisplayName() & " had its energy drained!", "move:dreameater") + End If + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Gravity.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Gravity.vb index 54d93bb45..61daa4f7f 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Gravity.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Gravity.vb @@ -1,69 +1,69 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Gravity - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 356 - Me.OriginalPP = 5 - Me.CurrentPP = 5 - Me.MaxPP = 5 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Beauty - Me.Name = "Gravity" - Me.Description = "Gravity is intensified for five turns, making moves involving flying unusable and negating Levitate." - 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 = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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) - If BattleScreen.FieldEffects.Gravity = 0 Then - BattleScreen.FieldEffects.Gravity = 5 - BattleScreen.BattleQuery.Add(New TextQueryObject("Gravity intensified!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Gravity + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 356 + Me.OriginalPP = 5 + Me.CurrentPP = 5 + Me.MaxPP = 5 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Beauty + Me.Name = "Gravity" + Me.Description = "Gravity is intensified for five turns, making moves involving flying unusable and negating Levitate." + 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 = True + 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.Support + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.FieldEffects.Gravity = 0 Then + BattleScreen.FieldEffects.Gravity = 5 + BattleScreen.BattleQuery.Add(New TextQueryObject("Gravity intensified!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/HealingWish.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/HealingWish.vb index fba564a6e..2f56568ea 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/HealingWish.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/HealingWish.vb @@ -1,76 +1,76 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class HealingWish - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 361 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cute - Me.Name = "Healing Wish" - Me.Description = "The user faints. In return, the Pokemon taking its place will have its HP restored and status conditions cured." - 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 = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - Me.IsHealingMove = True - 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 p As Pokemon = BattleScreen.OwnPokemon - If own = False Then - p = BattleScreen.OppPokemon - End If - - BattleScreen.Battle.ReduceHP(p.HP, own, own, BattleScreen, "", "move:healingwish") - BattleScreen.Battle.FaintPokemon(own, BattleScreen, "") - - If own = True Then - BattleScreen.FieldEffects.OwnHealingWish = True - Else - BattleScreen.FieldEffects.OppHealingWish = True - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class HealingWish + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 361 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cute + Me.Name = "Healing Wish" + Me.Description = "The user faints. In return, the Pokemon taking its place will have its HP restored and status conditions cured." + 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 = True + Me.KingsrockAffected = False + Me.CounterAffected = False + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = False + Me.ImmunityAffected = False + Me.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = True + 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 p As Pokemon = BattleScreen.OwnPokemon + If own = False Then + p = BattleScreen.OppPokemon + End If + + BattleScreen.Battle.ReduceHP(p.HP, own, own, BattleScreen, "", "move:healingwish") + BattleScreen.Battle.FaintPokemon(own, BattleScreen, "") + + If own = True Then + BattleScreen.FieldEffects.OwnHealingWish = True + Else + BattleScreen.FieldEffects.OppHealingWish = True + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Hypnosis.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Hypnosis.vb index 3752bd4dd..c86b42d37 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Hypnosis.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Hypnosis.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Hypnosis - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 95 - Me.OriginalPP = 20 - Me.CurrentPP = 20 - Me.MaxPP = 20 - Me.Power = 0 - Me.Accuracy = 60 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Hypnosis" - Me.Description = "The user employs hypnotic suggestion to make the target fall into a deep sleep." - 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.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 - - Me.AIField1 = AIField.Sleep - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:hypnosis") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - -End Namespace +Namespace BattleSystem.Moves.Psychic + + Public Class Hypnosis + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 95 + Me.OriginalPP = 20 + Me.CurrentPP = 20 + Me.MaxPP = 20 + Me.Power = 0 + Me.Accuracy = 60 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Hypnosis" + Me.Description = "The user employs hypnotic suggestion to make the target fall into a deep sleep." + 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.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 = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = False + '#End + + Me.AIField1 = AIField.Sleep + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:hypnosis") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + +End Namespace diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Kinesis.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Kinesis.vb index bbf91d114..0c651df9f 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Kinesis.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Kinesis.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Kinesis - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 134 - Me.OriginalPP = 15 - Me.CurrentPP = 15 - Me.MaxPP = 15 - Me.Power = 0 - Me.Accuracy = 80 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Kinesis" - Me.Description = "The user distracts the target by bending a spoon. It lowers the target's accuracy." - 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.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 - - Me.AIField1 = AIField.LowerAccuracy - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Accuracy", 1, "", "move:kinesis") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Kinesis + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 134 + Me.OriginalPP = 15 + Me.CurrentPP = 15 + Me.MaxPP = 15 + Me.Power = 0 + Me.Accuracy = 80 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Kinesis" + Me.Description = "The user distracts the target by bending a spoon. It lowers the target's accuracy." + 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.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 = True + Me.IsOneHitKOMove = False + Me.IsWonderGuardAffected = False + '#End + + Me.AIField1 = AIField.LowerAccuracy + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.LowerStat(Not own, own, BattleScreen, "Accuracy", 1, "", "move:kinesis") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/LightScreen.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/LightScreen.vb index cf0b09597..fd51d993a 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/LightScreen.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/LightScreen.vb @@ -1,91 +1,91 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class LightScreen - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 113 - Me.OriginalPP = 30 - Me.CurrentPP = 30 - Me.MaxPP = 30 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Beauty - Me.Name = "Light Screen" - Me.Description = "A wondrous wall of light is put up to suppress damage from special attacks for five turns." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 p As Pokemon = BattleScreen.OwnPokemon - If own = False Then - p = BattleScreen.OppPokemon - End If - - Dim turns As Integer = 6 - - If Not p.Item Is Nothing Then - If p.Item.Name.ToLower() = "light clay" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then - turns = 9 - End If - End If - - If own = True Then - If BattleScreen.FieldEffects.OwnLightScreen = 0 Then - BattleScreen.FieldEffects.OwnLightScreen = turns - BattleScreen.BattleQuery.Add(New TextQueryObject("Light Screen raised your team's Special Defense!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - Else - If BattleScreen.FieldEffects.OppLightScreen = 0 Then - BattleScreen.FieldEffects.OppLightScreen = turns - BattleScreen.BattleQuery.Add(New TextQueryObject("Light Screen raised the other team's Special Defense!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class LightScreen + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 113 + Me.OriginalPP = 30 + Me.CurrentPP = 30 + Me.MaxPP = 30 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Beauty + Me.Name = "Light Screen" + Me.Description = "A wondrous wall of light is put up to suppress damage from special attacks for five turns." + 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 = True + Me.MirrorMoveAffected = True + 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.Support + Me.AIField2 = AIField.Nothing + 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 turns As Integer = 6 + + If Not p.Item Is Nothing Then + If p.Item.Name.ToLower() = "light clay" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then + turns = 9 + End If + End If + + If own = True Then + If BattleScreen.FieldEffects.OwnLightScreen = 0 Then + BattleScreen.FieldEffects.OwnLightScreen = turns + BattleScreen.BattleQuery.Add(New TextQueryObject("Light Screen raised your team's Special Defense!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + Else + If BattleScreen.FieldEffects.OppLightScreen = 0 Then + BattleScreen.FieldEffects.OppLightScreen = turns + BattleScreen.BattleQuery.Add(New TextQueryObject("Light Screen raised the other team's Special Defense!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MagicCoat.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MagicCoat.vb index 03bfc22d0..b62ff1423 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MagicCoat.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MagicCoat.vb @@ -1,68 +1,68 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class MagicCoat - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 277 - Me.OriginalPP = 15 - Me.CurrentPP = 15 - Me.MaxPP = 15 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Beauty - Me.Name = "Magic Coat" - Me.Description = "A barrier reflects back to the target moves like Leech Seed and moves that damage status." - Me.CriticalChance = 0 - Me.IsHMMove = False - Me.Target = Targets.Self - Me.Priority = 4 - 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.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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) - If own = True Then - BattleScreen.FieldEffects.OwnMagicCoat = 1 - Else - BattleScreen.FieldEffects.OppMagicCoat = 1 - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class MagicCoat + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 277 + Me.OriginalPP = 15 + Me.CurrentPP = 15 + Me.MaxPP = 15 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Beauty + Me.Name = "Magic Coat" + Me.Description = "A barrier reflects back to the target moves like Leech Seed and moves that damage status." + Me.CriticalChance = 0 + Me.IsHMMove = False + Me.Target = Targets.Self + Me.Priority = 4 + 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.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.Support + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If own = True Then + BattleScreen.FieldEffects.OwnMagicCoat = 1 + Else + BattleScreen.FieldEffects.OppMagicCoat = 1 + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Meditate.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Meditate.vb index 131cef310..a699bedd5 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Meditate.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Meditate.vb @@ -1,66 +1,66 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Meditate - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 96 - Me.OriginalPP = 40 - Me.CurrentPP = 40 - Me.MaxPP = 40 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Beauty - Me.Name = "Meditate" - Me.Description = "The user meditates to awaken the power deep within its body and raise its Attack stat." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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.RaiseAttack - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Attack", 1, "", "move:meditate") = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Meditate + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 96 + Me.OriginalPP = 40 + Me.CurrentPP = 40 + Me.MaxPP = 40 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Beauty + Me.Name = "Meditate" + Me.Description = "The user meditates to awaken the power deep within its body and raise its Attack stat." + 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 = True + Me.MirrorMoveAffected = True + 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.RaiseAttack + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + If BattleScreen.Battle.RaiseStat(own, own, BattleScreen, "Attack", 1, "", "move:meditate") = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MiracleEye.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MiracleEye.vb index b09c47221..55222f25d 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MiracleEye.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/MiracleEye.vb @@ -1,77 +1,77 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class MiracleEye - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 357 - 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 = "Miracle Eye" - Me.Description = "Enables a Dark-type target to be hit by Psychic-type attacks. This also enables an evasive target to be hit." - 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.ImmunityAffected = False - Me.HasSecondaryEffect = True - 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 - - Me.AIField1 = AIField.Support - Me.AIField2 = AIField.Nothing - 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 - - op.Evasion = 0 - - If own = True Then - BattleScreen.FieldEffects.OppMiracleEye = 1 - Else - BattleScreen.FieldEffects.OwnMiracleEye = 1 - End If - - BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " was identified!")) - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class MiracleEye + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 357 + 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 = "Miracle Eye" + Me.Description = "Enables a Dark-type target to be hit by Psychic-type attacks. This also enables an evasive target to be hit." + 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.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 + '#End + + Me.AIField1 = AIField.Support + Me.AIField2 = AIField.Nothing + 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 + + op.Evasion = 0 + + If own = True Then + BattleScreen.FieldEffects.OppMiracleEye = 1 + Else + BattleScreen.FieldEffects.OwnMiracleEye = 1 + End If + + BattleScreen.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " was identified!")) + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PowerTrick.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PowerTrick.vb index 5a4d9b006..f9ee240d2 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PowerTrick.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PowerTrick.vb @@ -1,78 +1,78 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class PowerTrick - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 379 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cool - Me.Name = "Power Trick" - Me.Description = "The user employs its psychic power to switch its Attack with its Defense stat." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 p As Pokemon = BattleScreen.OwnPokemon - If own = False Then - p = BattleScreen.OppPokemon - End If - - p.OriginalStats(0) = p.Attack - p.OriginalStats(1) = p.Defense - - Dim atk As Integer = p.Attack - Dim def As Integer = p.Defense - - p.Attack = def - p.Defense = atk - - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " switched its Attack and Defense!")) - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class PowerTrick + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 379 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Power Trick" + Me.Description = "The user employs its psychic power to switch its Attack with its Defense stat." + 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 = True + Me.MirrorMoveAffected = True + 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.Support + Me.AIField2 = AIField.Nothing + 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 + + p.OriginalStats(0) = p.Attack + p.OriginalStats(1) = p.Defense + + Dim atk As Integer = p.Attack + Dim def As Integer = p.Defense + + p.Attack = def + p.Defense = atk + + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " switched its Attack and Defense!")) + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoBoost.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoBoost.vb index 4f86a3a72..a15fc09c2 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoBoost.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoBoost.vb @@ -1,61 +1,61 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class PsychoBoost - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 354 - Me.OriginalPP = 5 - Me.CurrentPP = 5 - Me.MaxPP = 5 - Me.Power = 140 - Me.Accuracy = 90 - Me.Category = Categories.Special - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Psycho Boost" - Me.Description = "The user attacks the target at full power. The attack's recoil harshly reduces the user's Sp. Atk stat." - 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 = 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 - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Special Attack", 2, "", "move:psychoboost") - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class PsychoBoost + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 354 + Me.OriginalPP = 5 + Me.CurrentPP = 5 + Me.MaxPP = 5 + Me.Power = 140 + Me.Accuracy = 90 + Me.Category = Categories.Special + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Psycho Boost" + Me.Description = "The user attacks the target at full power. The attack's recoil harshly reduces the user's Sp. Atk stat." + 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 Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + BattleScreen.Battle.LowerStat(own, own, BattleScreen, "Special Attack", 2, "", "move:psychoboost") + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoShift.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoShift.vb index f300b9634..07a61d204 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoShift.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/PsychoShift.vb @@ -1,97 +1,97 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class PsychoShift - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 375 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 100 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cool - Me.Name = "Psycho Shift" - Me.Description = "Using its psychic power of suggestion, the user transfers its status conditions to 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - Dim fails As Boolean = False - Dim p As Pokemon = BattleScreen.OwnPokemon - Dim o As Pokemon = BattleScreen.OppPokemon - If own = False Then - p = BattleScreen.OppPokemon - o = BattleScreen.OwnPokemon - End If - Dim status As Pokemon.StatusProblems = p.Status - - If o.status <> Pokemon.StatusProblems.none Then - fails = True - End If - - Select Case p.Status - Case Pokemon.StatusProblems.Poison - fails = Not BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, False, "", "move:psychoshift") - Case Pokemon.StatusProblems.BadPoison - fails = Not BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, True, "", "move:psychoshift") - Case Pokemon.StatusProblems.Sleep - fails = Not BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:psychoshift") - Case Pokemon.StatusProblems.Paralyzed - fails = Not BattleScreen.Battle.InflictParalysis(Not own, own, BattleScreen, "", "move:psychoshift") - Case Pokemon.StatusProblems.Freeze - fails = Not BattleScreen.Battle.InflictFreeze(Not own, own, BattleScreen, "", "move:psychoshift") - Case Pokemon.StatusProblems.Burn - fails = Not BattleScreen.Battle.InflictBurn(Not own, own, BattleScreen, "", "move:psychoshift") - Case Else - fails = True - End Select - - If fails = True Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - BattleScreen.Battle.CureStatusProblem(own, own, BattleScreen, "", "move:psychoshift") - End If - - - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class PsychoShift + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 375 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 100 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cool + Me.Name = "Psycho Shift" + Me.Description = "Using its psychic power of suggestion, the user transfers its status conditions to 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 = True + Me.MirrorMoveAffected = True + 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 + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + Dim fails As Boolean = False + Dim p As Pokemon = BattleScreen.OwnPokemon + Dim o As Pokemon = BattleScreen.OppPokemon + If own = False Then + p = BattleScreen.OppPokemon + o = BattleScreen.OwnPokemon + End If + Dim status As Pokemon.StatusProblems = p.Status + + If o.status <> Pokemon.StatusProblems.none Then + fails = True + End If + + Select Case p.Status + Case Pokemon.StatusProblems.Poison + fails = Not BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, False, "", "move:psychoshift") + Case Pokemon.StatusProblems.BadPoison + fails = Not BattleScreen.Battle.InflictPoison(Not own, own, BattleScreen, True, "", "move:psychoshift") + Case Pokemon.StatusProblems.Sleep + fails = Not BattleScreen.Battle.InflictSleep(Not own, own, BattleScreen, -1, "", "move:psychoshift") + Case Pokemon.StatusProblems.Paralyzed + fails = Not BattleScreen.Battle.InflictParalysis(Not own, own, BattleScreen, "", "move:psychoshift") + Case Pokemon.StatusProblems.Freeze + fails = Not BattleScreen.Battle.InflictFreeze(Not own, own, BattleScreen, "", "move:psychoshift") + Case Pokemon.StatusProblems.Burn + fails = Not BattleScreen.Battle.InflictBurn(Not own, own, BattleScreen, "", "move:psychoshift") + Case Else + fails = True + End Select + + If fails = True Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + BattleScreen.Battle.CureStatusProblem(own, own, BattleScreen, "", "move:psychoshift") + End If + + + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Reflect.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Reflect.vb index b09b7bfcb..50ffcd946 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Reflect.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Reflect.vb @@ -1,91 +1,91 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Reflect - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 115 - Me.OriginalPP = 20 - Me.CurrentPP = 20 - Me.MaxPP = 20 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Reflect" - Me.Description = "A wondrous wall is put up to suppress damage from physical attacks for five turns." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 p As Pokemon = BattleScreen.OwnPokemon - If own = False Then - p = BattleScreen.OppPokemon - End If - - Dim turns As Integer = 6 - - If Not p.Item Is Nothing Then - If p.Item.Name.ToLower() = "light clay" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then - turns = 9 - End If - End If - - If own = True Then - If BattleScreen.FieldEffects.OwnReflect = 0 Then - BattleScreen.FieldEffects.OwnReflect = turns - BattleScreen.BattleQuery.Add(New TextQueryObject("Reflect raised your team's Defense!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - Else - If BattleScreen.FieldEffects.OppReflect = 0 Then - BattleScreen.FieldEffects.OppReflect = turns - BattleScreen.BattleQuery.Add(New TextQueryObject("Reflect raised the other team's Defense!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Reflect + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 115 + Me.OriginalPP = 20 + Me.CurrentPP = 20 + Me.MaxPP = 20 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Reflect" + Me.Description = "A wondrous wall is put up to suppress damage from physical attacks for five turns." + 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 = True + Me.MirrorMoveAffected = True + 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.Support + Me.AIField2 = AIField.Nothing + 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 turns As Integer = 6 + + If Not p.Item Is Nothing Then + If p.Item.Name.ToLower() = "light clay" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then + turns = 9 + End If + End If + + If own = True Then + If BattleScreen.FieldEffects.OwnReflect = 0 Then + BattleScreen.FieldEffects.OwnReflect = turns + BattleScreen.BattleQuery.Add(New TextQueryObject("Reflect raised your team's Defense!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + Else + If BattleScreen.FieldEffects.OppReflect = 0 Then + BattleScreen.FieldEffects.OppReflect = turns + BattleScreen.BattleQuery.Add(New TextQueryObject("Reflect raised the other team's Defense!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Rest.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Rest.vb index 88ae213ff..cc5e751dc 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Rest.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Rest.vb @@ -1,94 +1,94 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Rest - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 156 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cute - Me.Name = "Rest" - Me.Description = "The user goes to sleep for two turns. It fully restores the user’s HP and heals any status problem." - 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 = True - Me.MirrorMoveAffected = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - Me.IsHealingMove = True - 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.Healing - Me.AIField2 = AIField.Nothing - End Sub - - Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) - Dim fails As Boolean = False - Dim p As Pokemon = BattleScreen.OwnPokemon - If own = False Then - p = BattleScreen.OppPokemon - End If - Dim status As Pokemon.StatusProblems = p.Status - - Dim healBlock As Integer = BattleScreen.FieldEffects.OwnHealBlock - If own = False Then - healBlock = BattleScreen.FieldEffects.OppHealBlock - End If - - If healBlock > 0 Then - fails = True - Else - If p.HP >= p.MaxHP Then - fails = True - Else - If BattleScreen.Battle.InflictSleep(own, own, BattleScreen, 3, "", "move:rest") = False Then - fails = True - End If - End If - End If - - If fails = True Then - p.Status = status - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " slept and became healthy.")) - BattleScreen.Battle.GainHP(p.MaxHP - p.HP, own, own, BattleScreen, "", "move:rest") - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class Rest + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 156 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cute + Me.Name = "Rest" + Me.Description = "The user goes to sleep for two turns. It fully restores the user’s HP and heals any status problem." + 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 = True + Me.MirrorMoveAffected = True + Me.KingsrockAffected = False + Me.CounterAffected = False + + Me.DisabledWhileGravity = False + Me.UseEffectiveness = False + Me.ImmunityAffected = False + Me.RemovesFrozen = False + Me.HasSecondaryEffect = False + + Me.IsHealingMove = True + 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.Healing + Me.AIField2 = AIField.Nothing + End Sub + + Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) + Dim fails As Boolean = False + Dim p As Pokemon = BattleScreen.OwnPokemon + If own = False Then + p = BattleScreen.OppPokemon + End If + Dim status As Pokemon.StatusProblems = p.Status + + Dim healBlock As Integer = BattleScreen.FieldEffects.OwnHealBlock + If own = False Then + healBlock = BattleScreen.FieldEffects.OppHealBlock + End If + + If healBlock > 0 Then + fails = True + Else + If p.HP >= p.MaxHP Then + fails = True + Else + If BattleScreen.Battle.InflictSleep(own, own, BattleScreen, 3, "", "move:rest") = False Then + fails = True + End If + End If + End If + + If fails = True Then + p.Status = status + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " slept and became healthy.")) + BattleScreen.Battle.GainHP(p.MaxHP - p.HP, own, own, BattleScreen, "", "move:rest") + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/RolePlay.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/RolePlay.vb index c860a8613..48e0105c2 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/RolePlay.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/RolePlay.vb @@ -1,77 +1,77 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class RolePlay - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 272 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 0 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Cute - Me.Name = "Role Play" - Me.Description = "The user mimics the target completely, copying the target's natural Ability." - 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.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 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.OriginalAbility Is Nothing Then - p.OriginalAbility = p.Ability - End If - - p.Ability = New Ability(op.Ability.ID, op.Ability.Name, op.Ability.Description) - - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " copies " & op.Ability.Name & " from " & op.GetDisplayName() & ".")) - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class RolePlay + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 272 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 0 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Cute + Me.Name = "Role Play" + Me.Description = "The user mimics the target completely, copying the target's natural Ability." + 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.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.Support + 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 p.OriginalAbility Is Nothing Then + p.OriginalAbility = p.Ability + End If + + p.Ability = New Ability(op.Ability.ID, op.Ability.Name, op.Ability.Description) + + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " copies " & op.Ability.Name & " from " & op.GetDisplayName() & ".")) + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/SkillSwap.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/SkillSwap.vb index 6bf8eb947..a3d9e3bc8 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/SkillSwap.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/SkillSwap.vb @@ -1,87 +1,87 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class SkillSwap - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 285 - 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 = "Skill Swap" - Me.Description = "The user employs its psychic power to exchange Abilities with 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 = True - Me.KingsrockAffected = False - Me.CounterAffected = False - - Me.DisabledWhileGravity = False - Me.UseEffectiveness = False - Me.ImmunityAffected = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 - - Me.AIField1 = AIField.Support - 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 - - Dim bannedAbilities() As String = {"wonder guard", "multitype", "illusion", "stance change"} - - If bannedAbilities.Contains(p.Ability.Name.ToLower()) = False And bannedAbilities.Contains(op.Ability.Name.ToLower()) = False Then - Dim pAbility As Integer = p.Ability.ID - Dim opAbility As Integer = op.Ability.ID - - p.OriginalAbility = Ability.GetAbilityByID(p.Ability.ID) - op.OriginalAbility = Ability.GetAbilityByID(op.Ability.ID) - - p.Ability = Ability.GetAbilityByID(opAbility) - op.Ability = Ability.GetAbilityByID(pAbility) - - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " swapped abilities with its target!")) - Else - 'fails - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - End If - End Sub - - End Class - +Namespace BattleSystem.Moves.Psychic + + Public Class SkillSwap + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 285 + 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 = "Skill Swap" + Me.Description = "The user employs its psychic power to exchange Abilities with 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 = True + 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 = True + 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 p As Pokemon = BattleScreen.OwnPokemon + Dim op As Pokemon = BattleScreen.OppPokemon + If own = False Then + p = BattleScreen.OppPokemon + op = BattleScreen.OwnPokemon + End If + + Dim bannedAbilities() As String = {"wonder guard", "multitype", "illusion", "stance change"} + + If bannedAbilities.Contains(p.Ability.Name.ToLower()) = False And bannedAbilities.Contains(op.Ability.Name.ToLower()) = False Then + Dim pAbility As Integer = p.Ability.ID + Dim opAbility As Integer = op.Ability.ID + + p.OriginalAbility = Ability.GetAbilityByID(p.Ability.ID) + op.OriginalAbility = Ability.GetAbilityByID(op.Ability.ID) + + p.Ability = Ability.GetAbilityByID(opAbility) + op.Ability = Ability.GetAbilityByID(pAbility) + + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " swapped abilities with its target!")) + Else + 'fails + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + End If + End Sub + + End Class + End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Trick.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Trick.vb index 106cc4d71..f3dfd3651 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Trick.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Psychic/Trick.vb @@ -1,123 +1,123 @@ -Namespace BattleSystem.Moves.Psychic - - Public Class Trick - - Inherits Attack - - Public Sub New() - '#Definitions - Me.Type = New Element(Element.Types.Psychic) - Me.ID = 271 - Me.OriginalPP = 10 - Me.CurrentPP = 10 - Me.MaxPP = 10 - Me.Power = 0 - Me.Accuracy = 100 - Me.Category = Categories.Status - Me.ContestCategory = ContestCategories.Smart - Me.Name = "Trick" - Me.Description = "The user catches the target off guard and swaps its held item with its own." - 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 = False - Me.RemovesFrozen = False - Me.HasSecondaryEffect = True - - 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 - - Me.AIField1 = AIField.Support - 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 p.Item Is Nothing And op.Item Is Nothing Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If p.Ability.Name.ToLower() = "sticky hold" Or op.Ability.Name.ToLower() = "sticky hold" Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower() = "griseous orb" AndAlso p.Number = 487 Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If CheckMultitypePlate(p, op) = False Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then - BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) - Else - Dim i1 As Item = p.Item - Dim i2 As Item = op.Item - - p.Item = i2 - op.Item = i1 - BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " switched items with " & op.GetDisplayName() & ".")) - End If - End If - End If - End If - End If - End If - End If - 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 - +Namespace BattleSystem.Moves.Psychic + + Public Class Trick + + Inherits Attack + + Public Sub New() + '#Definitions + Me.Type = New Element(Element.Types.Psychic) + Me.ID = 271 + Me.OriginalPP = 10 + Me.CurrentPP = 10 + Me.MaxPP = 10 + Me.Power = 0 + Me.Accuracy = 100 + Me.Category = Categories.Status + Me.ContestCategory = ContestCategories.Smart + Me.Name = "Trick" + Me.Description = "The user catches the target off guard and swaps its held item with its own." + 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 = 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 = True + 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 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 And op.Item Is Nothing Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If p.Ability.Name.ToLower() = "sticky hold" Or op.Ability.Name.ToLower() = "sticky hold" Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower() = "griseous orb" AndAlso p.Number = 487 Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower() = "griseous orb" AndAlso op.Number = 487 Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If CheckMultitypePlate(p, op) = False Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If Not p.Item Is Nothing AndAlso p.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + If Not op.Item Is Nothing AndAlso op.Item.Name.ToLower().EndsWith(" drive") = True AndAlso p.Number = 649 Then + BattleScreen.BattleQuery.Add(New TextQueryObject(Me.Name & " failed!")) + Else + Dim i1 As Item = p.Item + Dim i2 As Item = op.Item + + p.Item = i2 + op.Item = i1 + BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " switched items with " & op.GetDisplayName() & ".")) + End If + End If + End If + End If + End If + End If + End If + 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 Namespace \ No newline at end of file