From 2b647f801aca32ddd23d86c49a1b11f5093b89ee Mon Sep 17 00:00:00 2001 From: CaptainSegis Date: Fri, 23 Dec 2016 13:48:32 -0500 Subject: [PATCH] Fixed inmunity breaking moves/abilities part 2, fixed intimidate and similar abilities. --- .../2.5DHero/Battle/BattleSystemV2/Battle.vb | 18 +++---- .../BattleSystemV2/BattleCalculation.vb | 48 ++----------------- 2.5DHero/2.5DHero/Pokemon/Attacks/Attack.vb | 8 ++-- 3 files changed, 17 insertions(+), 57 deletions(-) diff --git a/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb b/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb index 08dd8a114..3552f8c1c 100644 --- a/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb +++ b/2.5DHero/2.5DHero/Battle/BattleSystemV2/Battle.vb @@ -3991,11 +3991,11 @@ If BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen, 1) = True Then Select Case p.Ability.Name.ToLower() Case "drizzle" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Rain, turns, BattleScreen, "Drizzle makes it rain!", "drizzle") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Rain, turns, BattleScreen, "Drizzle makes it rain!", "drizzle") Case "cloud nine" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "cloudnine") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "cloudnine") Case "intimidate" - LowerStat(True, False, BattleScreen, "Attack", 1, p.GetDisplayName() & "'s Intimidate cuts " & op.GetDisplayName() & "'s attack!", "intimidate") + LowerStat(Not own, own, BattleScreen, "Attack", 1, p.GetDisplayName() & "'s Intimidate cuts " & op.GetDisplayName() & "'s attack!", "intimidate") Case "trace" If op.Ability.Name.ToLower() <> "multitype" And op.Ability.Name.ToLower() <> "illusion" Then p.OriginalAbility = p.Ability @@ -4003,18 +4003,18 @@ .BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " copied the ability " & op.Ability.Name & " from " & op.GetDisplayName() & "!")) End If Case "sand stream" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Sandstorm, turns, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Sandstorm, turns, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream") Case "forecast" ApplyForecast(BattleScreen) Case "drought" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Sunny, turns, BattleScreen, "The sunlight turned harsh!", "drought") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Sunny, turns, BattleScreen, "The sunlight turned harsh!", "drought") Case "air lock" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "airlock") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "airlock") Case "download" If op.Defense < op.SpDefense Then - RaiseStat(False, False, BattleScreen, "Attack", 1, "Download analyzed the foe!", "download") + RaiseStat(own, own, BattleScreen, "Attack", 1, "Download analyzed the foe!", "download") Else - RaiseStat(False, False, BattleScreen, "Special Attack", 1, "Download analyzed the foe!", "download") + RaiseStat(own, own, BattleScreen, "Special Attack", 1, "Download analyzed the foe!", "download") End If Case "mold breaker" .BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " breakes the mold!")) @@ -4041,7 +4041,7 @@ .BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " makes " & p.GetDisplayName() & " shudder!")) End If Case "snow warning" - ChangeWeather(False, False, BattleWeather.WeatherTypes.Hailstorm, turns, BattleScreen, "Snow Warning summoned a hailstorm!", "snowwarning") + ChangeWeather(own, own, BattleWeather.WeatherTypes.Hailstorm, turns, BattleScreen, "Snow Warning summoned a hailstorm!", "snowwarning") Case "frisk" If Not op.Item Is Nothing Then .BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.Name & ".")) diff --git a/2.5DHero/2.5DHero/Battle/BattleSystemV2/BattleCalculation.vb b/2.5DHero/2.5DHero/Battle/BattleSystemV2/BattleCalculation.vb index 19a82377c..aed7e6f67 100644 --- a/2.5DHero/2.5DHero/Battle/BattleSystemV2/BattleCalculation.vb +++ b/2.5DHero/2.5DHero/Battle/BattleSystemV2/BattleCalculation.vb @@ -1656,32 +1656,6 @@ End If End If - 'type1 - Dim Type1 As Single = Element.GetElementMultiplier(Attack.Type, Op.Type1) - If p.Ability.Name.ToLower() = "refrigerate" And Attack.Type.Type = Element.Types.Normal Then - Type1 = Element.GetElementMultiplier(New Element(Element.Types.Ice), Op.Type1) - End If - If p.Ability.Name.ToLower() = "pixilate" And Attack.Type.Type = Element.Types.Normal Then - Type1 = Element.GetElementMultiplier(New Element(Element.Types.Fairy), Op.Type1) - End If - If p.Ability.Name.ToLower() = "aerilate" And Attack.Type.Type = Element.Types.Normal Then - Type1 = Element.GetElementMultiplier(New Element(Element.Types.Flying), Op.Type1) - End If - Type1 = ReverseTypeEffectiveness(Type1) - - 'type2 - Dim Type2 As Single = Element.GetElementMultiplier(Attack.Type, Op.Type2) - If p.Ability.Name.ToLower() = "refrigerate" And Attack.Type.Type = Element.Types.Normal Then - Type2 = Element.GetElementMultiplier(New Element(Element.Types.Ice), Op.Type2) - End If - If p.Ability.Name.ToLower() = "pixilate" And Attack.Type.Type = Element.Types.Normal Then - Type2 = Element.GetElementMultiplier(New Element(Element.Types.Fairy), Op.Type2) - End If - If p.Ability.Name.ToLower() = "aerilate" And Attack.Type.Type = Element.Types.Normal Then - Type2 = Element.GetElementMultiplier(New Element(Element.Types.Flying), Op.Type2) - End If - Type2 = ReverseTypeEffectiveness(Type2) - 'Mod3 Dim Mod3 As Single = 1.0F @@ -1690,23 +1664,9 @@ Dim TL As Single = 1.0F Dim TRB As Single = 1.0F - Dim TypeA As Single = Type1 * Type2 + Dim effectiveness As Single = CalculateEffectiveness(Attack, BattleScreen, p, Op, Own) - If Not Op.Item Is Nothing Then - If Op.Item.Name.ToLower() = "ring target" And BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then - If Type1 = 0 Then - TypeA = Type2 - End If - If Type2 = 0 Then - TypeA = Type1 - End If - If TypeA = 0 Then - TypeA = 1.0F - End If - End If - End If - - If TypeA > 1.0F Then + If effectiveness > 1.0F Then If Op.Ability.Name.ToLower() = "solid rock" Or Op.Ability.Name.ToLower() = "filter" Then If BattleScreen.FieldEffects.CanUseAbility(Not Own, BattleScreen) = True Then SRF = 0.75F @@ -1835,7 +1795,7 @@ End If End If - If TypeA < 1.0F Then + If effectiveness < 1.0F Then If p.Ability.Name.ToLower() = "tinted lens" Then TL = 2.0F End If @@ -1843,7 +1803,7 @@ Mod3 = SRF * EB * TL * TRB - damage = CInt(Math.Floor((((((((Level * 2 / 5) + 2) * BasePower * Atk / 50) / Def) * Mod1) + 2) * CH * Mod2 * R / 100) * STAB * Type1 * Type2 * Mod3)) + damage = CInt(Math.Floor((((((((Level * 2 / 5) + 2) * BasePower * Atk / 50) / Def) * Mod1) + 2) * CH * Mod2 * R / 100) * STAB * effectiveness * Mod3)) If p.Ability.Name.ToLower() = "multiscale" And p.HP = p.MaxHP And BattleScreen.FieldEffects.CanUseAbility(Own, BattleScreen) = True Then damage = CInt(damage / 2) diff --git a/2.5DHero/2.5DHero/Pokemon/Attacks/Attack.vb b/2.5DHero/2.5DHero/Pokemon/Attacks/Attack.vb index 84264778f..a12472047 100644 --- a/2.5DHero/2.5DHero/Pokemon/Attacks/Attack.vb +++ b/2.5DHero/2.5DHero/Pokemon/Attacks/Attack.vb @@ -1634,12 +1634,12 @@ If Me.Type.Type = Element.Types.Normal Then If p.Ability.Name.ToLower() = "pixilate" Then Return New Element(Element.Types.Fairy) - End If - If p.Ability.Name.ToLower() = "refrigerate" Then + ElseIf p.Ability.Name.ToLower() = "refrigerate" Then Return New Element(Element.Types.Ice) - End If - If p.Ability.Name.ToLower() = "aerilate" Then + ElseIf p.Ability.Name.ToLower() = "aerilate" Then Return New Element(Element.Types.Flying) + ElseIf p.Ability.Name.ToLower() = "galvanize" Then + Return New Element(Element.Types.Electric) End If End If