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\MudSport.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\Spikes.vb" />
<Compile Include="Pokemon\Attacks\Ice\AuroraBeam.vb" />
@ -1410,6 +1410,11 @@
<Compile Include="Pokemon\Items\Standard\BlackSludge.vb" />
<Compile Include="Pokemon\Items\Standard\BrickPiece.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\CometShard.vb" />
<Compile Include="Pokemon\Items\Standard\DeepSeaScale.vb" />

View File

@ -3710,10 +3710,11 @@
p = .OppPokemon
op = .OwnPokemon
End If
Dim turns As Integer = BattleCalculation.FieldEffectTurns(BattleScreen, own)
If BattleScreen.FieldEffects.CanUseAbility(own, BattleScreen, 1) = True Then
Select Case p.Ability.Name.ToLower()
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"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "cloudnine")
Case "intimidate"
@ -3725,11 +3726,11 @@
.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, 10000, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream")
ChangeWeather(False, False, BattleWeather.WeatherTypes.Sandstorm, turns, BattleScreen, "Sand Stream creates a sandstorm!", "sandstream")
Case "forecast"
ApplyForecast(BattleScreen)
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"
ChangeWeather(False, False, BattleWeather.WeatherTypes.Clear, 0, BattleScreen, "", "airlock")
Case "download"
@ -3763,7 +3764,7 @@
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " makes " & p.GetDisplayName() & " shudder!"))
End If
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"
If Not op.Item Is Nothing Then
.BattleQuery.Add(New TextQueryObject(op.GetDisplayName() & " is holding " & op.Item.Name & "."))

View File

@ -2,6 +2,42 @@
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
'Determine strike first with speed:
Dim ownSpeed As Integer = DetermineBattleSpeed(True, BattleScreen)

View File

@ -56,7 +56,8 @@
End Sub
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 Class

View File

@ -56,7 +56,8 @@
End Sub
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 Class

View File

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

View File

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

View File

@ -56,7 +56,8 @@
End Sub
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 Class

View File

@ -56,7 +56,8 @@
End Sub
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 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