Fixed inmunity breaking moves/abilities part 2, fixed intimidate and similar abilities.
This commit is contained in:
parent
97852cc8f0
commit
2b647f801a
|
@ -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 & "."))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue