Updated weather to gen 6, added weather and screens duration items. Sprites missing.

This commit is contained in:
CaptainSegis 2016-10-18 04:19:29 -05:00
parent 35613b57fc
commit baa9d2a81d
14 changed files with 153 additions and 27 deletions

View File

@ -647,7 +647,7 @@
<Compile Include="Pokemon\Attacks\Ground\MudShot.vb" /> <Compile Include="Pokemon\Attacks\Ground\MudShot.vb" />
<Compile Include="Pokemon\Attacks\Ground\MudSport.vb" /> <Compile Include="Pokemon\Attacks\Ground\MudSport.vb" />
<Compile Include="Pokemon\Attacks\Ground\Sand-Attack.vb" /> <Compile Include="Pokemon\Attacks\Ground\Sand-Attack.vb" />
<Compile Include="Pokemon\Attacks\Ground\Sandstorm.vb" /> <Compile Include="Pokemon\Attacks\Rock\Sandstorm.vb" />
<Compile Include="Pokemon\Attacks\Ground\SandTomb.vb" /> <Compile Include="Pokemon\Attacks\Ground\SandTomb.vb" />
<Compile Include="Pokemon\Attacks\Ground\Spikes.vb" /> <Compile Include="Pokemon\Attacks\Ground\Spikes.vb" />
<Compile Include="Pokemon\Attacks\Ice\AuroraBeam.vb" /> <Compile Include="Pokemon\Attacks\Ice\AuroraBeam.vb" />
@ -1410,6 +1410,11 @@
<Compile Include="Pokemon\Items\Standard\BlackSludge.vb" /> <Compile Include="Pokemon\Items\Standard\BlackSludge.vb" />
<Compile Include="Pokemon\Items\Standard\BrickPiece.vb" /> <Compile Include="Pokemon\Items\Standard\BrickPiece.vb" />
<Compile Include="Pokemon\Items\Standard\Charcoal.vb" /> <Compile Include="Pokemon\Items\Standard\Charcoal.vb" />
<Compile Include="Pokemon\Items\Standard\SmoothRock.vb" />
<Compile Include="Pokemon\Items\Standard\IcyRock.vb" />
<Compile Include="Pokemon\Items\Standard\LightClay.vb" />
<Compile Include="Pokemon\Items\Standard\HeatRock.vb" />
<Compile Include="Pokemon\Items\Standard\DampRock.vb" />
<Compile Include="Pokemon\Items\Standard\CleanseTag.vb" /> <Compile Include="Pokemon\Items\Standard\CleanseTag.vb" />
<Compile Include="Pokemon\Items\Standard\CometShard.vb" /> <Compile Include="Pokemon\Items\Standard\CometShard.vb" />
<Compile Include="Pokemon\Items\Standard\DeepSeaScale.vb" /> <Compile Include="Pokemon\Items\Standard\DeepSeaScale.vb" />

View File

@ -3710,10 +3710,11 @@
p = .OppPokemon p = .OppPokemon
op = .OwnPokemon op = .OwnPokemon
End If End If
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own)
If BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen, 1) = True Then If BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen, 1) = True Then
Select Case p.Ability.Name.ToLower() Select Case p.Ability.Name.ToLower()
Case "drizzle" Case "drizzle"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Rain, 10000, BattleScreen, "Drizzle makes it rain!", "drizzle") ChangeWeather(False, False, BattleWeather.WeatherTypes.Rain, turns, BattleScreen, "Drizzle makes it rain!", "drizzle")
Case "cloud nine" Case "cloud nine"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "cloudnine") ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "cloudnine")
Case "intimidate" Case "intimidate"
@ -3725,11 +3726,11 @@
.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " copied the ability " & op.Ability.Name & " from " & op.GetDisplayName() & "!")) .BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " copied the ability " & op.Ability.Name & " from " & op.GetDisplayName() & "!"))
End If End If
Case "sand stream" Case "sand stream"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Sandstorm, 10000, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream") ChangeWeather(False, False, BattleWeather.WeatherTypes.Sandstorm, turns, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream")
Case "forecast" Case "forecast"
ApplyForecast(BattleScreen) ApplyForecast(BattleScreen)
Case "drought" Case "drought"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Sunny, 10000, BattleScreen, "The sunlight turned harsh!", "drought") ChangeWeather(False, False, BattleWeather.WeatherTypes.Sunny, turns, BattleScreen, "The sunlight turned harsh!", "drought")
Case "air lock" Case "air lock"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "airlock") ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "airlock")
Case "download" Case "download"
@ -3763,7 +3764,7 @@
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " makes " & p.GetDisplayName() & " shudder!")) .BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " makes " & p.GetDisplayName() & " shudder!"))
End If End If
Case "snow warning" Case "snow warning"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Hailstorm, 10000, BattleScreen, "Snow Warning summoned a hailstorm!", "snowwarning") ChangeWeather(False, False, BattleWeather.WeatherTypes.Hailstorm, turns, BattleScreen, "Snow Warning summoned a hailstorm!", "snowwarning")
Case "frisk" Case "frisk"
If Not op.Item Is Nothing Then If Not op.Item Is Nothing Then
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.Name & ".")) .BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.Name & "."))

View File

@ -2,6 +2,42 @@
Public Class BattleCalculation Public Class BattleCalculation
Public Shared Function FieldEffectTurns(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, Optional ByVal moveName As String = "") As Integer
Dim turns As Integer = 5
Dim p As Pokemon
If own Then
p = BattleScreen.OwnPokemon
Else
p = BattleScreen.OppPokemon
End If
Dim ability As String = p.Ability.Name.ToLower()
If BattleScreen.FieldEffects.CanUseItem(own) = True Then
Select Case p.Item.Name.ToLower()
Case "damp rock"
If ability = "drizzle" Or moveName = "rain dance" Then
turns = 8
End If
Case "heat rock"
If ability = "drought" Or moveName = "sunny day" Then
turns = 8
End If
Case "smooth rock"
If ability = "sand stream" Or moveName = "sandstorm" Then
turns = 8
End If
Case "icy rock"
If ability = "snow warning" Or moveName = "hail" Then
turns = 8
End If
Case "light clay"
If moveName = "light screen" Or moveName = "reflect" Then
turns = 8
End If
End Select
End If
Return turns
End Function
Public Shared Function MovesFirst(ByVal BattleScreen As BattleScreen) As Boolean Public Shared Function MovesFirst(ByVal BattleScreen As BattleScreen) As Boolean
'Determine strike first with speed: 'Determine strike first with speed:
Dim ownSpeed As Integer = DetermineBattleSpeed(True, BattleScreen) Dim ownSpeed As Integer = DetermineBattleSpeed(True, BattleScreen)

View File

@ -56,7 +56,8 @@
End Sub End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Sunny, 5, BattleScreen, "The sunlight turned harsh!", "move:sunnyday") Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Sunny, turns, BattleScreen, "The sunlight turned harsh!", "move:sunnyday")
End Sub End Sub
End Class End Class

View File

@ -56,7 +56,8 @@
End Sub End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Hailstorm, 5, BattleScreen, "It started to hail!", "move:hail") Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Hailstorm, turns, BattleScreen, "It started to hail!", "move:hail")
End Sub End Sub
End Class End Class

View File

@ -60,15 +60,7 @@ Namespace BattleSystem.Moves.Psychic
If own = False Then If own = False Then
p = BattleScreen.OppPokemon p = BattleScreen.OppPokemon
End If End If
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
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 own = True Then
If BattleScreen.FieldEffects.OwnLightScreen = 0 Then If BattleScreen.FieldEffects.OwnLightScreen = 0 Then
BattleScreen.FieldEffects.OwnLightScreen = turns BattleScreen.FieldEffects.OwnLightScreen = turns

View File

@ -60,15 +60,7 @@ Namespace BattleSystem.Moves.Psychic
If own = False Then If own = False Then
p = BattleScreen.OppPokemon p = BattleScreen.OppPokemon
End If End If
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
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 own = True Then
If BattleScreen.FieldEffects.OwnReflect = 0 Then If BattleScreen.FieldEffects.OwnReflect = 0 Then
BattleScreen.FieldEffects.OwnReflect = turns BattleScreen.FieldEffects.OwnReflect = turns

View File

@ -56,7 +56,8 @@
End Sub End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Sandstorm, 5, BattleScreen, "A sandstorm brewed!", "move:sandstorm") Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Sandstorm, turns, BattleScreen, "A sandstorm brewed!", "move:sandstorm")
End Sub End Sub
End Class End Class

View File

@ -56,7 +56,8 @@
End Sub End Sub
Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen) Public Overrides Sub MoveHits(own As Boolean, BattleScreen As BattleScreen)
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Rain, 5, BattleScreen, "It started to rain!", "move:raindance") Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own, Me.Name.ToLower())
BattleScreen.Battle.ChangeWeather(own, own, BattleWeather.WeatherTypes.Rain, turns, BattleScreen, "It started to rain!", "move:raindance")
End Sub End Sub
End Class End Class

View File

@ -0,0 +1,20 @@
Namespace Items.Standard
<Item(510, "Damp Rock")>
Public Class DampRock
Inherits Item
Public Overrides ReadOnly Property Description As String = "An item to be held by a Pokémon. It extends the duration of the move Rain Dance when used by the holder."
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 100
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(360, 72, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,19 @@
Namespace Items.Standard
<Item(511, "Heat Rock")>
Public Class HeatRock
Inherits Item
Public Overrides ReadOnly Property Description As String = "An item to be held by a Pokémon. It extends the duration of the move Sunny Day when used by the holder."
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 100
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(360, 72, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,19 @@
Namespace Items.Standard
<Item(513, "Icy Rock")>
Public Class IcyRock
Inherits Item
Public Overrides ReadOnly Property Description As String = "An item to be held by a Pokémon. It extends the duration of the move Hail when used by the holder."
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 100
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(360, 72, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,19 @@
Namespace Items.Standard
<Item(514, "Light Clay")>
Public Class LightClay
Inherits Item
Public Overrides ReadOnly Property Description As String = "An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer."
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 100
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(360, 72, 24, 24)
End Sub
End Class
End Namespace

View File

@ -0,0 +1,19 @@
Namespace Items.Standard
<Item(512, "Smooth Rock")>
Public Class SmoothRock
Inherits Item
Public Overrides ReadOnly Property Description As String = "An item to be held by a Pokémon. It extends the duration of the move Sandstorm when used by the holder."
Public Overrides ReadOnly Property PokeDollarPrice As Integer = 100
Public Overrides ReadOnly Property CanBeUsedInBattle As Boolean = False
Public Overrides ReadOnly Property CanBeUsed As Boolean = False
Public Sub New()
_textureRectangle = New Rectangle(360, 72, 24, 24)
End Sub
End Class
End Namespace