commit
430199af67
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageRestore>
|
||||
<add key="enabled" value="True" />
|
||||
<add key="automatic" value="True" />
|
||||
</packageRestore>
|
||||
<packageSources>
|
||||
<add key="monogame-dev" value="http://teamcity.monogame.net/guestAuth/app/nuget/v1/FeedService.svc/" />
|
||||
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
|
||||
</packageSources>
|
||||
</configuration>
|
File diff suppressed because it is too large
Load Diff
|
@ -33,6 +33,12 @@
|
|||
If moveName = "light screen" Or moveName = "reflect" Then
|
||||
turns = 8
|
||||
End If
|
||||
Case "terrain extender"
|
||||
If moveName = "electric terrain" Or moveName = "grassy terrain" Or moveName = "misty terrain" Or moveName = "psychic terrain" Then
|
||||
turns = 8
|
||||
ElseIf ability = "electric surge" Or ability = "grassy surge" Or ability = "misty surge" Or ability = "psychic surge" Then
|
||||
turns = 8
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
Return turns
|
||||
|
@ -75,11 +81,12 @@
|
|||
End If
|
||||
End If
|
||||
|
||||
If ownPokemon.Ability.Name.ToLower() = "gale wings" And ownAttack.Type.Type = Element.Types.Flying Then
|
||||
'Added condition to check for full HP
|
||||
If ownPokemon.Ability.Name.ToLower() = "gale wings" And ownAttack.Type.Type = Element.Types.Flying And ownPokemon.HP = ownPokemon.MaxHP Then
|
||||
ownPriority += 1
|
||||
End If
|
||||
|
||||
If oppPokemon.Ability.Name.ToLower() = "gale wings" And oppAttack.Type.Type = Element.Types.Flying Then
|
||||
If oppPokemon.Ability.Name.ToLower() = "gale wings" And oppAttack.Type.Type = Element.Types.Flying And oppPokemon.HP = oppPokemon.MaxHP Then
|
||||
oppPriority += 1
|
||||
End If
|
||||
|
||||
|
@ -226,7 +233,7 @@
|
|||
End If
|
||||
|
||||
If p.Status = P3D.Pokemon.StatusProblems.Paralyzed And p.Ability.Name.ToLower() <> "quick feet" Then
|
||||
speed = CInt(speed / 4) 'Divide the speed by 4 if the Pokemon is paralyzed.
|
||||
speed = CInt(speed / 2) 'Divide the speed by 2 (gen 7 standards) if the Pokemon is paralyzed.
|
||||
End If
|
||||
|
||||
If Not p.Item Is Nothing Then
|
||||
|
@ -271,6 +278,14 @@
|
|||
If BattleScreen.FieldEffects.Weather = BattleWeather.WeatherTypes.Sandstorm Then
|
||||
speed *= 2
|
||||
End If
|
||||
Case "slush rush"
|
||||
If BattleScreen.FieldEffects.Weather = BattleWeather.WeatherTypes.Hailstorm Then
|
||||
speed *= 2
|
||||
End If
|
||||
Case "surge surfer"
|
||||
If BattleScreen.FieldEffects.ElectricTerrain > 0 Then
|
||||
speed *= 2
|
||||
End If
|
||||
End Select
|
||||
|
||||
Dim grassPledge As Integer = BattleScreen.FieldEffects.OppGrassPledge
|
||||
|
@ -290,11 +305,11 @@
|
|||
|
||||
If p.Ability.Name.ToLower() = "slow start" Then
|
||||
If own = True Then
|
||||
If BattleScreen.FieldEffects.OwnTurnCounts < 5 Then
|
||||
If BattleScreen.FieldEffects.OwnPokemonTurns < 5 Then
|
||||
speed = CInt(speed / 2)
|
||||
End If
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OppTurnCounts < 5 Then
|
||||
If BattleScreen.FieldEffects.OppPokemonTurns < 5 Then
|
||||
speed = CInt(speed / 2)
|
||||
End If
|
||||
End If
|
||||
|
@ -305,6 +320,86 @@
|
|||
Return speed
|
||||
End Function
|
||||
|
||||
Public Shared Function DetermineBattleAttack(ByVal own As Boolean, ByVal BattleScreen As BattleScreen) As Integer
|
||||
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||
If own = False Then
|
||||
p = BattleScreen.OppPokemon
|
||||
End If
|
||||
|
||||
Dim attack As Integer = CInt(p.Attack * GetMultiplierFromStat(p.StatAttack)) 'Calculate the attack's basic value
|
||||
|
||||
If own = True Then
|
||||
If BattleScreen.IsPVPBattle = False Then
|
||||
If Core.Player.Badges.Contains(1) = True Then
|
||||
attack = CInt(attack + (attack * (1 / 8))) 'Add 1/8 of the attack if the player has the 1st badge and it's not a PvP battle
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If p.Status = P3D.Pokemon.StatusProblems.Burn And p.Ability.Name.ToLower() <> "guts" Then
|
||||
attack = CInt(attack / 2)
|
||||
End If
|
||||
|
||||
If Not p.Item Is Nothing Then
|
||||
If p.Item.Name = "Choice Band" Then
|
||||
attack = CInt(attack * 1.5F)
|
||||
End If
|
||||
If p.Number = 25 Then
|
||||
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(own) = True Then
|
||||
If p.Item.Name = "Light Ball" Then
|
||||
attack *= 2
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If p.Number = 104 OrElse p.Number = 105 Then
|
||||
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(own) = True Then
|
||||
If p.Item.Name = "Thick Club" Then
|
||||
attack *= 2
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Select Case p.Ability.Name.ToLower()
|
||||
Case "huge power"
|
||||
attack *= 2
|
||||
Case "pure power"
|
||||
attack *= 2
|
||||
Case "defeatist"
|
||||
If p.HP / p.MaxHP <= 0.5 Then
|
||||
attack = CInt(attack / 2)
|
||||
End If
|
||||
Case "hustle"
|
||||
attack = CInt(attack * 1.5F)
|
||||
Case "flower gift"
|
||||
If BattleScreen.FieldEffects.Weather = BattleWeather.WeatherTypes.Sunny Then
|
||||
attack = CInt(attack * 1.5F)
|
||||
End If
|
||||
End Select
|
||||
|
||||
If p.Ability.Name.ToLower() = "guts" Then
|
||||
If p.Status = Pokemon.StatusProblems.Paralyzed Or p.Status = Pokemon.StatusProblems.Burn Or p.Status = Pokemon.StatusProblems.Poison Or p.Status = Pokemon.StatusProblems.Sleep Or p.Status = Pokemon.StatusProblems.Freeze Then
|
||||
attack = CInt(attack * 1.5F)
|
||||
End If
|
||||
End If
|
||||
|
||||
If p.Ability.Name.ToLower() = "slow start" Then
|
||||
If own = True Then
|
||||
If BattleScreen.FieldEffects.OwnPokemonTurns < 5 Then
|
||||
attack = CInt(attack / 2)
|
||||
End If
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OppPokemonTurns < 5 Then
|
||||
attack = CInt(attack / 2)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
attack = attack.Clamp(1, 999)
|
||||
|
||||
Return attack
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Outcome: 0=true/>1=false:1=sleeptalk/snore 2=other move 3=start sleep 4=X wont obey 5=X wont obey 6=X turned away 7=X is loafing around 8=X pretended to not notice
|
||||
''' </summary>
|
||||
|
@ -380,6 +475,10 @@
|
|||
Return True
|
||||
End If
|
||||
|
||||
If UsedAttack.GetUseAccEvasion(own, BattleScreen) = False Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
Dim result As Single = 1.0F
|
||||
|
||||
Dim INIT As Integer = UsedAttack.GetAccuracy(own, BattleScreen)
|
||||
|
@ -403,14 +502,10 @@
|
|||
|
||||
Dim ACCM As Single = GetMultiplierFromAccEvasion(ACC)
|
||||
|
||||
If UsedAttack.GetUseAccEvasion(own, BattleScreen) = False Then
|
||||
ACCM = 1.0F
|
||||
End If
|
||||
|
||||
result = INIT * ACCM
|
||||
|
||||
If Not op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not own) = True Then
|
||||
If op.Item.Name.ToLower() = "brightpowder" Or op.Item.Name.ToLower() = "lax incense" Then
|
||||
If op.Item.Name.ToLower() = "bright powder" Or op.Item.Name.ToLower() = "lax incense" Then
|
||||
result *= 0.9F
|
||||
End If
|
||||
End If
|
||||
|
@ -543,7 +638,7 @@
|
|||
If p.Number = 113 Then
|
||||
C += 2
|
||||
End If
|
||||
Case "stick"
|
||||
Case "leek"
|
||||
If p.Number = 83 Then
|
||||
C += 2
|
||||
End If
|
||||
|
@ -571,7 +666,10 @@
|
|||
If Core.Random.Next(0, chance) = 0 Then
|
||||
Return True
|
||||
End If
|
||||
If UsedAttack.ID = 524 Then
|
||||
If UsedAttack.ID = 524 Then 'frost breath
|
||||
Return True
|
||||
End If
|
||||
If UsedAttack.ID = 480 Then 'storm throw
|
||||
Return True
|
||||
End If
|
||||
|
||||
|
@ -590,31 +688,46 @@
|
|||
op = BattleScreen.OwnPokemon
|
||||
End If
|
||||
|
||||
If p.Type1.Type = Element.Types.Ghost Or p.Type2.Type = Element.Types.Ghost Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
If p.Ability.Name.ToLower() = "run away" Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
If op.Ability.Name.ToLower() = "shadow tag" And p.Ability.Name.ToLower() <> "shadow tag" Then
|
||||
If Not p.Item Is Nothing Then
|
||||
If p.Item.Name.ToLower() = "smoke ball" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
|
||||
If op.Ability.Name.ToLower() = "shadow tag" And p.Ability.Name.ToLower() <> "shadow tag" And op.HP > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If op.Ability.Name.ToLower() = "arena trap" Then
|
||||
Dim magnetRise As Integer = BattleScreen.FieldEffects.OwnMagnetRise
|
||||
If own = False Then
|
||||
magnetRise = BattleScreen.FieldEffects.OppMagnetRise
|
||||
End If
|
||||
|
||||
If p.Type1.Type <> Element.Types.Flying And p.Type2.Type <> Element.Types.Flying And p.Ability.Name.ToLower() <> "levitate" And magnetRise = 0 Then
|
||||
Return False
|
||||
End If
|
||||
If op.Ability.Name.ToLower() = "arena trap" And op.HP > 0 And BattleScreen.FieldEffects.IsGrounded(own, BattleScreen) = True Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If op.Ability.Name.ToLower() = "magnet pull" Then
|
||||
If op.Ability.Name.ToLower() = "magnet pull" And op.HP > 0 Then
|
||||
If p.Type1.Type = Element.Types.Steel Or p.Type2.Type = Element.Types.Steel Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
With BattleScreen.FieldEffects
|
||||
If own = True Then
|
||||
If .OwnWrap > 0 Or .OwnBind > 0 Or .OwnClamp > 0 Or .OwnFireSpin > 0 Or .OwnMagmaStorm > 0 Or .OwnSandTomb > 0 Or .OwnWhirlpool > 0 Or .OwnInfestation > 0 Then
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
If .OppWrap > 0 Or .OppBind > 0 Or .OppClamp > 0 Or .OppFireSpin > 0 Or .OppMagmaStorm > 0 Or .OppSandTomb > 0 Or .OppWhirlpool > 0 Or .OppInfestation > 0 Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
|
||||
Dim ingrain As Integer = BattleScreen.FieldEffects.OwnIngrain
|
||||
If own = False Then
|
||||
ingrain = BattleScreen.FieldEffects.OppIngrain
|
||||
|
@ -626,13 +739,6 @@
|
|||
If p.Speed > op.Speed Then
|
||||
Return True
|
||||
Else
|
||||
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(own) = True Then
|
||||
If p.Item.Name.ToLower() = "smoke ball" Then
|
||||
BattleScreen.FieldEffects.RunTries += 1
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim A As Integer = p.Speed
|
||||
Dim B As Integer = op.Speed
|
||||
If B = 0 Then
|
||||
|
@ -663,33 +769,109 @@
|
|||
End If
|
||||
End If
|
||||
|
||||
Dim _targetHasIronBall As Boolean = False
|
||||
If Not op.Item Is Nothing Then
|
||||
If op.Item.Name.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then
|
||||
_targetHasIronBall = True
|
||||
'Flying Press
|
||||
If move.ID = 9999 Then
|
||||
If op.Type1.Type = Element.Types.Fighting Or op.Type2.Type = Element.Types.Fighting Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.Type1.Type = Element.Types.Grass Or op.Type2.Type = Element.Types.Grass Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.Type1.Type = Element.Types.Bug Or op.Type2.Type = Element.Types.Bug Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.Type1.Type = Element.Types.Rock Or op.Type2.Type = Element.Types.Rock Then
|
||||
effectiveness /= 2
|
||||
End If
|
||||
If op.Type1.Type = Element.Types.Steel Or op.Type2.Type = Element.Types.Steel Then
|
||||
effectiveness /= 2
|
||||
End If
|
||||
If op.Type1.Type = Element.Types.Electric Or op.Type2.Type = Element.Types.Electric Then
|
||||
effectiveness /= 2
|
||||
End If
|
||||
End If
|
||||
|
||||
If op.Ability.Name.ToLower() = "levitate" And move.GetAttackType(own, BattleScreen).Type = Element.Types.Ground And BattleScreen.FieldEffects.Gravity = 0 And _targetHasIronBall = False Then
|
||||
If BattleScreen.FieldEffects.CanUseAbility(Not own, BattleScreen) = True Then
|
||||
'Sheer Cold
|
||||
If move.ID = 329 Then
|
||||
If op.IsType(Element.Types.Ice) Then
|
||||
effectiveness = 0.0F
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim ingrain As Integer = BattleScreen.FieldEffects.OppIngrain
|
||||
If own = False Then
|
||||
ingrain = BattleScreen.FieldEffects.OwnIngrain
|
||||
Dim digHit As Boolean = False
|
||||
Dim airHit As Boolean = False
|
||||
Dim regHit As Boolean = False
|
||||
|
||||
'Grounded condition
|
||||
If move.GetAttackType(own, BattleScreen).Type = Element.Types.Ground And BattleScreen.FieldEffects.IsGrounded(Not own, BattleScreen) = False Then
|
||||
Dim targetDig As Boolean = False
|
||||
Dim targetAir As Boolean = False
|
||||
|
||||
With BattleScreen.FieldEffects
|
||||
If own = True Then
|
||||
If .OppDigCounter > 0 Then
|
||||
targetDig = True
|
||||
End If
|
||||
If .OppFlyCounter > 0 Or .OppBounceCounter > 0 Or .OppSkyDropCounter > 0 Then
|
||||
targetAir = True
|
||||
End If
|
||||
Else
|
||||
If .OwnDigCounter > 0 Then
|
||||
targetDig = True
|
||||
End If
|
||||
If .OwnFlyCounter > 0 Or .OwnBounceCounter > 0 Or .OwnSkyDropCounter > 0 Then
|
||||
targetAir = True
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
|
||||
Select Case move.ID
|
||||
Case 89, 90, 222 'Earthquake, Fissure, Magnitude
|
||||
effectiveness = 0.0F
|
||||
If targetDig = True Then
|
||||
digHit = True
|
||||
End If
|
||||
Case 614 'Thousand Arrows
|
||||
airHit = True
|
||||
If targetAir = True Then
|
||||
If own = True Then
|
||||
BattleScreen.FieldEffects.OppFlyCounter = 0
|
||||
BattleScreen.FieldEffects.OppBounceCounter = 0
|
||||
Else
|
||||
BattleScreen.FieldEffects.OwnFlyCounter = 0
|
||||
BattleScreen.FieldEffects.OwnBounceCounter = 0
|
||||
End If
|
||||
End If
|
||||
Case Else
|
||||
effectiveness = 0.0F
|
||||
End Select
|
||||
ElseIf move.GetAttackType(own, BattleScreen).Type = Element.Types.Ground And BattleScreen.FieldEffects.IsGrounded(Not own, BattleScreen) = True Then
|
||||
regHit = True
|
||||
End If
|
||||
|
||||
If move.GetAttackType(own, BattleScreen).Type = Element.Types.Ground Then
|
||||
If BattleScreen.FieldEffects.Gravity = 0 And ingrain = 0 And _targetHasIronBall = False Then
|
||||
Dim magnetRise As Integer = BattleScreen.FieldEffects.OppMagnetRise
|
||||
If own = False Then
|
||||
magnetRise = BattleScreen.FieldEffects.OwnMagnetRise
|
||||
End If
|
||||
If magnetRise > 0 Then
|
||||
effectiveness = 0.0F
|
||||
End If
|
||||
'Grounded hit effectiveness
|
||||
If digHit = True Or airHit = True Or regHit = True Then
|
||||
effectiveness = 1.0F
|
||||
If op.IsType(Element.Types.Electric) Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Fire) Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Poison) Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Rock) Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Steel) Then
|
||||
effectiveness *= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Bug) Then
|
||||
effectiveness /= 2
|
||||
End If
|
||||
If op.IsType(Element.Types.Grass) Then
|
||||
effectiveness /= 2
|
||||
End If
|
||||
End If
|
||||
|
||||
|
@ -719,7 +901,6 @@
|
|||
End If
|
||||
End If
|
||||
|
||||
|
||||
If op.IsType(Element.Types.Ghost) = True Then
|
||||
Dim CanHitGhost = False
|
||||
Dim Foresight As Integer = 0
|
||||
|
@ -905,28 +1086,37 @@
|
|||
Return True
|
||||
End If
|
||||
|
||||
If BattleScreen.OwnPokemon.Type1.Type = Element.Types.Ghost Or BattleScreen.OwnPokemon.Type2.Type = Element.Types.Ghost Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
With BattleScreen
|
||||
If Not .OwnPokemon.Item Is Nothing Then
|
||||
If .OwnPokemon.Item.Name.ToLower() = "shed shell" And .FieldEffects.CanUseItem(True) = True And .FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
|
||||
If BattleScreen.IsRemoteBattle AndAlso BattleScreen.IsPVPBattle AndAlso Not BattleScreen.IsHost Then
|
||||
If BattleScreen.FieldEffects.ClientCanSwitch = False Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "shadow tag" And BattleScreen.OwnPokemon.Ability.Name.ToLower() <> "shadow tag" Then
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "shadow tag" And BattleScreen.OwnPokemon.Ability.Name.ToLower() <> "shadow tag" And BattleScreen.OppPokemon.HP > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.FieldEffects.OwnTrappedCounter > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "arena trap" Then
|
||||
Dim magnetRise As Integer = BattleScreen.FieldEffects.OwnMagnetRise
|
||||
|
||||
If BattleScreen.OwnPokemon.IsType(Element.Types.Flying) = False And BattleScreen.OwnPokemon.Ability.Name.ToLower() <> "levitate" And magnetRise = 0 Then
|
||||
Return False
|
||||
End If
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "arena trap" And BattleScreen.OppPokemon.HP > 0 And BattleScreen.FieldEffects.IsGrounded(True, BattleScreen) = True Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "magnet pull" And BattleScreen.OwnPokemon.IsType(Element.Types.Ghost) = False And BattleScreen.OwnPokemon.IsType(Element.Types.Steel) = True Then
|
||||
If BattleScreen.OppPokemon.Ability.Name.ToLower() = "magnet pull" And BattleScreen.OwnPokemon.IsType(Element.Types.Steel) = True And BattleScreen.OppPokemon.HP > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
@ -943,22 +1133,32 @@
|
|||
If BattleScreen.OppPokemon.Status = Pokemon.StatusProblems.Fainted Or BattleScreen.OppPokemon.HP <= 0 Then
|
||||
Return True
|
||||
End If
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "shadow tag" And BattleScreen.OppPokemon.Ability.Name.ToLower() <> "shadow tag" Then
|
||||
|
||||
If BattleScreen.OppPokemon.Type1.Type = Element.Types.Ghost Or BattleScreen.OppPokemon.Type2.Type = Element.Types.Ghost Then
|
||||
Return True
|
||||
End If
|
||||
|
||||
With BattleScreen
|
||||
If Not .OppPokemon.Item Is Nothing Then
|
||||
If .OppPokemon.Item.Name.ToLower() = "shed shell" And .FieldEffects.CanUseItem(False) = True And .FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
|
||||
Return True
|
||||
End If
|
||||
End If
|
||||
End With
|
||||
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "shadow tag" And BattleScreen.OppPokemon.Ability.Name.ToLower() <> "shadow tag" And BattleScreen.OwnPokemon.HP > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.FieldEffects.OppTrappedCounter > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "arena trap" Then
|
||||
Dim magnetRise As Integer = BattleScreen.FieldEffects.OppMagnetRise
|
||||
|
||||
If BattleScreen.OppPokemon.IsType(Element.Types.Flying) = False And BattleScreen.OppPokemon.Ability.Name.ToLower() <> "levitate" And magnetRise = 0 Then
|
||||
Return False
|
||||
End If
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "arena trap" And BattleScreen.OwnPokemon.HP > 0 And BattleScreen.FieldEffects.IsGrounded(False, BattleScreen) = True Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "magnet pull" And BattleScreen.OppPokemon.IsType(Element.Types.Ghost) = False And BattleScreen.OppPokemon.IsType(Element.Types.Steel) = True Then
|
||||
If BattleScreen.OwnPokemon.Ability.Name.ToLower() = "magnet pull" And BattleScreen.OppPokemon.IsType(Element.Types.Steel) = True And BattleScreen.OwnPokemon.HP > 0 Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
|
@ -1035,6 +1235,12 @@
|
|||
IT = 1.2F
|
||||
End If
|
||||
End If
|
||||
Case "soul dew"
|
||||
If p.Number = 380 OrElse p.Number = 381 Then
|
||||
If Attack.Type.Type = Element.Types.Dragon Or Attack.Type.Type = Element.Types.Psychic Then
|
||||
IT = 1.2F
|
||||
End If
|
||||
End If
|
||||
Case Else
|
||||
IT = 1.0F
|
||||
End Select
|
||||
|
@ -1091,7 +1297,7 @@
|
|||
If Attack.Type.Type = Element.Types.Flying Then
|
||||
IT = 1.2F
|
||||
End If
|
||||
Case 88, 273 'Silver powder, Insect Plate
|
||||
Case 88, 273 'Silver Powder, Insect Plate
|
||||
If Attack.Type.Type = Element.Types.Bug Then
|
||||
IT = 1.2F
|
||||
End If
|
||||
|
@ -1107,6 +1313,138 @@
|
|||
If Attack.Type.Type = Element.Types.Psychic Then
|
||||
IT = 1.2F
|
||||
End If
|
||||
Case 90 'Silk Scarf
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
IT = 1.2F
|
||||
End If
|
||||
End Select
|
||||
Select Case p.Item.ID
|
||||
Case 635 'Fighting Gem
|
||||
If Attack.Type.Type = Element.Types.Fighting Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fighting gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Fighting Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 644 'Dark Gem
|
||||
If Attack.Type.Type = Element.Types.Dark Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:dark gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Dark Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 630 'Fire Gem
|
||||
If Attack.Type.Type = Element.Types.Fire Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fire gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Fire Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 643 'Dragon Gem
|
||||
If Attack.Type.Type = Element.Types.Dragon Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:dragon gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Dragon Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 641 'Rock Gem
|
||||
If Attack.Type.Type = Element.Types.Rock Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:rock gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Rock Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 632 'Electric Gem
|
||||
If Attack.Type.Type = Element.Types.Electric Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:electric gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Electric Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 645 'Steel Gem
|
||||
If Attack.Type.Type = Element.Types.Steel Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:steel gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Steel Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 633 'Grass Gem
|
||||
If Attack.Type.Type = Element.Types.Grass Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:grass gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Grass Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 631 'Water Gem
|
||||
If Attack.Type.Type = Element.Types.Water Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:water gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Water Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 634 'Ice Gem
|
||||
If Attack.Type.Type = Element.Types.Ice Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ice gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Ice Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 647 'Fairy Gem
|
||||
If Attack.Type.Type = Element.Types.Fairy Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:fairy gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Fairy Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 636 'Poison Gem
|
||||
If Attack.Type.Type = Element.Types.Poison Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:poison gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Poison Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 638 'Flying Gem
|
||||
If Attack.Type.Type = Element.Types.Flying Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:flying gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Flying Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 640 'Bug Gem
|
||||
If Attack.Type.Type = Element.Types.Bug Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:bug gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Bug Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 637 'Ground Gem
|
||||
If Attack.Type.Type = Element.Types.Ground Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ground gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Ground Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 642 'Ghost Gem
|
||||
If Attack.Type.Type = Element.Types.Ghost Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:ghost gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Ghost Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 639 'Psychic Gem
|
||||
If Attack.Type.Type = Element.Types.Psychic Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:psychic gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Psychic Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
Case 646 'Normal Gem
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Own, Own, BattleScreen, "-1", "item:normal gem") = True Then
|
||||
BattleScreen.BattleQuery.Add(New TextQueryObject("The Normal Gem boosted " & p.GetDisplayName() & "'s " & Attack.Name & "!"))
|
||||
IT = 1.3F
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
'CHG (If used Charge)
|
||||
|
@ -1189,21 +1527,25 @@
|
|||
If Attack.IsJawMove = True Then
|
||||
UA = 1.5F
|
||||
End If
|
||||
Case "fur coat"
|
||||
If Attack.Category = Attack.Categories.Physical Then
|
||||
UA = 0.5F
|
||||
End If
|
||||
Case "refrigerate"
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
UA = 1.3F
|
||||
UA = 1.2F
|
||||
End If
|
||||
Case "pixilate"
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
UA = 1.3F
|
||||
UA = 1.2F
|
||||
End If
|
||||
Case "normalize"
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
UA = 1.2F
|
||||
End If
|
||||
Case "galvanize"
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
UA = 1.2F
|
||||
End If
|
||||
Case "aerilate"
|
||||
If Attack.Type.Type = Element.Types.Normal Then
|
||||
UA = 1.3F
|
||||
UA = 1.2F
|
||||
End If
|
||||
Case "mega launcher"
|
||||
If Attack.IsPulseMove = True Then
|
||||
|
@ -1309,11 +1651,11 @@
|
|||
AM = 1.5F
|
||||
Case "slow start"
|
||||
If Own = True Then
|
||||
If BattleScreen.FieldEffects.OwnTurnCounts < 5 Then
|
||||
If BattleScreen.FieldEffects.OwnPokemonTurns < 5 Then
|
||||
AM = 0.5F
|
||||
End If
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OppTurnCounts < 5 Then
|
||||
If BattleScreen.FieldEffects.OppPokemonTurns < 5 Then
|
||||
AM = 0.5F
|
||||
End If
|
||||
End If
|
||||
|
@ -1382,10 +1724,6 @@
|
|||
If p.Number = 25 Then
|
||||
IM = 2.0F
|
||||
End If
|
||||
Case "soul dew"
|
||||
If p.Number = 380 Or p.Number = 381 Then
|
||||
IM = 1.5F
|
||||
End If
|
||||
Case "deepseatooth"
|
||||
If p.Number = 366 Then
|
||||
IM = 2.0F
|
||||
|
@ -1449,7 +1787,7 @@
|
|||
Dim SX As Single = 1.0F
|
||||
Dim DMod As Single = 1.0F
|
||||
|
||||
If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 548 Then 'Psyshock and Secret Sword.
|
||||
If Attack.Category = Attack.Categories.Physical OrElse Attack.ID = 473 OrElse Attack.ID = 540 OrElse Attack.ID = 548 Then 'Psyshock, Psystrike and Secret Sword.
|
||||
DStat = Attack.GetUseDefenseStat(Op)
|
||||
DSM = GetMultiplierFromStat(Op.StatDefense)
|
||||
|
||||
|
@ -1457,7 +1795,7 @@
|
|||
DSM = 1.0F
|
||||
End If
|
||||
|
||||
If Attack.Name.ToLower() = "selfdestruct" Or Attack.Name.ToLower() = "explosion" Then
|
||||
If Attack.Name.ToLower() = "self-destruct" Or Attack.Name.ToLower() = "explosion" Then
|
||||
SX = 1.0F
|
||||
End If
|
||||
|
||||
|
@ -1467,6 +1805,10 @@
|
|||
If Op.Number = 132 Then
|
||||
DMod = 1.5F
|
||||
End If
|
||||
Case "eviolite"
|
||||
If Op.IsFullyEvolved = False Then
|
||||
DMod = 1.5F
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
|
||||
|
@ -1477,6 +1819,15 @@
|
|||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If Op.Ability.Name.ToLower() = "fur coat" And BattleScreen.FieldEffects.CanUseAbility(Not Own, BattleScreen) = True Then
|
||||
DMod = 2.0F
|
||||
End If
|
||||
|
||||
If BattleScreen.FieldEffects.GrassyTerrain > 0 And Op.Ability.Name.ToLower() = "grass pelt" And BattleScreen.FieldEffects.CanUseAbility(Not Own, BattleScreen) = True Then
|
||||
DMod = 1.5F
|
||||
End If
|
||||
|
||||
ElseIf Attack.Category = Attack.Categories.Special Then
|
||||
DStat = Attack.GetUseDefenseStat(Op)
|
||||
DSM = GetMultiplierFromStat(Op.StatSpDefense)
|
||||
|
@ -1493,10 +1844,6 @@
|
|||
|
||||
If Not Op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then
|
||||
Select Case Op.Item.Name.ToLower()
|
||||
Case "soul dew"
|
||||
If Op.Number = 380 Or p.Number = 381 Then
|
||||
DMod = 1.5F
|
||||
End If
|
||||
Case "metal powder"
|
||||
If Op.Number = 132 Then
|
||||
DMod = 1.5F
|
||||
|
@ -1600,22 +1947,46 @@
|
|||
If BattleScreen.FieldEffects.Weather = BattleWeather.WeatherTypes.Snow Then
|
||||
SR = 1.5F
|
||||
End If
|
||||
Case Element.Types.Electric
|
||||
If BattleScreen.FieldEffects.ElectricTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
|
||||
SR = 1.5F
|
||||
End If
|
||||
Case Element.Types.Grass
|
||||
If BattleScreen.FieldEffects.GrassyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
|
||||
SR = 1.5F
|
||||
End If
|
||||
Case Element.Types.Psychic
|
||||
If BattleScreen.FieldEffects.PsychicTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
|
||||
SR = 1.5F
|
||||
End If
|
||||
End Select
|
||||
|
||||
If p.Ability.Name.ToLower() = "flash fire" Then
|
||||
If BattleScreen.FieldEffects.CanUseAbility(Own, BattleScreen) = True Then
|
||||
If Own = True Then
|
||||
If Not BattleScreen.FieldEffects.OppLastMove Is Nothing Then
|
||||
If BattleScreen.FieldEffects.OppLastMove.Type.Type = Element.Types.Fire And Attack.Type.Type = Element.Types.Fire Then
|
||||
FF = 1.5F
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
If Not BattleScreen.FieldEffects.OwnLastMove Is Nothing Then
|
||||
If BattleScreen.FieldEffects.OwnLastMove.Type.Type = Element.Types.Fire And Attack.Type.Type = Element.Types.Fire Then
|
||||
FF = 1.5F
|
||||
End If
|
||||
End If
|
||||
'If p.Ability.Name.ToLower() = "flash fire" Then
|
||||
' If BattleScreen.FieldEffects.CanUseAbility(Own, BattleScreen) = True Then
|
||||
' If Own = True Then
|
||||
' If Not BattleScreen.FieldEffects.OppLastMove Is Nothing Then
|
||||
' If BattleScreen.FieldEffects.OppLastMove.Type.Type = Element.Types.Fire And Attack.Type.Type = Element.Types.Fire Then
|
||||
' FF = 1.5F
|
||||
' End If
|
||||
' End If
|
||||
' Else
|
||||
' If Not BattleScreen.FieldEffects.OwnLastMove Is Nothing Then
|
||||
' If BattleScreen.FieldEffects.OwnLastMove.Type.Type = Element.Types.Fire And Attack.Type.Type = Element.Types.Fire Then
|
||||
' FF = 1.5F
|
||||
' End If
|
||||
' End If
|
||||
' End If
|
||||
' End If
|
||||
'End If
|
||||
|
||||
If Attack.Type.Type = Element.Types.Fire Then
|
||||
If Own = True Then
|
||||
If BattleScreen.FieldEffects.OwnFlashFire = 1 Then
|
||||
FF = 1.5F
|
||||
End If
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OppFlashFire = 1 Then
|
||||
FF = 1.5F
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
@ -1785,6 +2156,12 @@
|
|||
TRB = 0.5F
|
||||
End If
|
||||
End If
|
||||
Case "roseli"
|
||||
If Attack.Type.Type = Element.Types.Fairy Then
|
||||
If BattleScreen.Battle.RemoveHeldItem(Not Own, Not Own, BattleScreen, "The Roseli Berry weakened the effect of " & Attack.Name & " on " & Op.GetDisplayName() & "!", "berry:roseli") = True Then
|
||||
TRB = 0.5F
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
End If
|
||||
|
@ -1816,6 +2193,19 @@
|
|||
damage = CInt(damage / 2)
|
||||
End If
|
||||
|
||||
If BattleScreen.FieldEffects.MistyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
|
||||
If Attack.Type.Type = Element.Types.Dragon Then
|
||||
damage = CInt(damage / 2)
|
||||
End If
|
||||
End If
|
||||
|
||||
If BattleScreen.FieldEffects.GrassyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
|
||||
'Earthquake, Bulldoze, Magnitude
|
||||
If Attack.ID = 89 Or Attack.ID = 523 Or Attack.ID = 222 Then
|
||||
damage = CInt(damage / 2)
|
||||
End If
|
||||
End If
|
||||
|
||||
If Attack.IsOneHitKOMove = True Then
|
||||
damage = Op.HP
|
||||
End If
|
||||
|
|
|
@ -50,7 +50,41 @@
|
|||
|
||||
If y > -1 Then
|
||||
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\WeatherIcons"), New Rectangle(22, Core.windowSize.Height - 90, 176, 68), New Rectangle(x, y, 88, 34), Color.White)
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, t, New Vector2(110 - FontManager.MiniFont.MeasureString(t).X / 2, Core.windowSize.Height - 42), Color.Black)
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, t, New Vector2(110 - FontManager.MiniFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DrawTerrain(ByVal BattleScreen As BattleScreen)
|
||||
Dim y As Integer = -1
|
||||
Dim x As Integer = 0
|
||||
Dim t As String = ""
|
||||
|
||||
With BattleScreen.FieldEffects
|
||||
If .ElectricTerrain > 0 Then
|
||||
x = 352
|
||||
y = 0
|
||||
t = "Electric Terrain"
|
||||
End If
|
||||
If .GrassyTerrain > 0 Then
|
||||
x = 352
|
||||
y = 34
|
||||
t = "Grassy Terrain"
|
||||
End If
|
||||
If .MistyTerrain > 0 Then
|
||||
x = 352
|
||||
y = 68
|
||||
t = "Misty Terrain"
|
||||
End If
|
||||
If .PsychicTerrain > 0 Then
|
||||
x = 352
|
||||
y = 102
|
||||
t = "Psychic Terrain"
|
||||
End If
|
||||
End With
|
||||
|
||||
If y > -1 Then
|
||||
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\WeatherIcons"), New Rectangle(222, Core.windowSize.Height - 90, 176, 68), New Rectangle(x, y, 88, 34), Color.White)
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, t, New Vector2(310 - FontManager.MiniFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
@ -83,8 +117,8 @@
|
|||
End If
|
||||
|
||||
'HP indicator:
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 102, pos.Y + 37), New Color(0, 0, 0, _moveMenuAlpha))
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 100, pos.Y + 35), shinyHue)
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 102, pos.Y + 37 + 3), New Color(0, 0, 0, _moveMenuAlpha))
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 100, pos.Y + 35 + 3), shinyHue)
|
||||
|
||||
'EXP Bar:
|
||||
If BattleScreen.CanReceiveEXP = True Then
|
||||
|
@ -174,7 +208,7 @@
|
|||
Dim caughtX As Integer = 0
|
||||
Dim StatusTexture As Texture2D = BattleStats.GetStatImage(p.Status)
|
||||
If Not StatusTexture Is Nothing Then
|
||||
Core.SpriteBatch.Draw(StatusTexture, New Rectangle(CInt(pos.X) + 10, CInt(pos.Y) + 26, 38, 12), New Color(255, 255, 255, _moveMenuAlpha))
|
||||
Core.SpriteBatch.Draw(StatusTexture, New Rectangle(CInt(pos.X) + 12, CInt(pos.Y) + 26, 38, 12), New Color(255, 255, 255, _moveMenuAlpha))
|
||||
caughtX = -16
|
||||
End If
|
||||
|
||||
|
@ -268,6 +302,7 @@
|
|||
End Select
|
||||
|
||||
DrawWeather(BattleScreen)
|
||||
DrawTerrain(BattleScreen)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
@ -383,11 +418,13 @@
|
|||
Public Sub Activate(ByVal BattleScreen As BattleScreen, ByVal AllExtended As Integer, ByVal isSelected As Boolean)
|
||||
If BattleScreen.BattleMenu._isExtracting = False And BattleScreen.BattleMenu._isRetracting = False Then
|
||||
If Controls.Accept(False, True, True) = True And isSelected = True Then
|
||||
SoundManager.PlaySound("select")
|
||||
Me.ClickAction(BattleScreen)
|
||||
End If
|
||||
If Controls.Accept(True, False, False) = True Then
|
||||
If MouseHandler.IsInRectangle(New Rectangle(Core.ScreenSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
|
||||
If isSelected = True Then
|
||||
SoundManager.PlaySound("select")
|
||||
Me.ClickAction(BattleScreen)
|
||||
Else
|
||||
BattleScreen.BattleMenu._mainMenuNextIndex = Me.Index
|
||||
|
@ -462,11 +499,13 @@
|
|||
If BattleScreen.BattleMenu._isExtracting = False And BattleScreen.BattleMenu._isRetracting = False Then
|
||||
If Me.Move.CurrentPP > 0 Or isSelected = False Then
|
||||
If Controls.Accept(False, True, True) = True And isSelected = True Then
|
||||
SoundManager.PlaySound("select")
|
||||
Me.ClickAction(BattleScreen)
|
||||
End If
|
||||
If Controls.Accept(True, False, False) = True Then
|
||||
If MouseHandler.IsInRectangle(New Rectangle(Core.ScreenSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
|
||||
If isSelected = True Then
|
||||
SoundManager.PlaySound("select")
|
||||
Me.ClickAction(BattleScreen)
|
||||
Else
|
||||
BattleScreen.BattleMenu._moveMenuNextIndex = Me.Index
|
||||
|
@ -497,10 +536,10 @@
|
|||
|
||||
l_canSelect = False
|
||||
ElseIf _isExtracting = True Then
|
||||
If _selectedItemExtended < 175 Then
|
||||
If _selectedItemExtended < 200 Then
|
||||
_selectedItemExtended += 40
|
||||
If _selectedItemExtended >= 175 Then
|
||||
_selectedItemExtended = 175
|
||||
If _selectedItemExtended >= 200 Then
|
||||
_selectedItemExtended = 200
|
||||
_isExtracting = False
|
||||
End If
|
||||
End If
|
||||
|
@ -851,6 +890,7 @@
|
|||
UpdateMenuOptions(_moveMenuIndex, _moveMenuNextIndex, _moveMenuItemList.Count)
|
||||
|
||||
If Controls.Dismiss(True, True, True) = True And _retractMenu = False And _isExtracting = False And _isRetracting = False Then
|
||||
SoundManager.PlaySound("select")
|
||||
_retractMenu = True
|
||||
_nextMenuState = MenuStates.Main
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
Public OwnFaint As Boolean = False
|
||||
Public OppFaint As Boolean = False
|
||||
|
||||
'Used for moves like U-turn (self-switch)
|
||||
Public OwnSelfSwitch As Boolean = False
|
||||
Public OppSelfSwitch As Boolean = False
|
||||
|
||||
'Used for lead picking in PvP Battles
|
||||
Public Shared OwnLeadIndex As Integer = 0
|
||||
Public Shared OppLeadIndex As Integer = 0
|
||||
|
@ -118,6 +122,8 @@
|
|||
Me.IsTrainerBattle = False
|
||||
Me.MouseVisible = False
|
||||
Me.PVPGameJoltID = ""
|
||||
'Reset variable when new battle starts
|
||||
BattleSystem.Battle.Caught = False
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal Trainer As Trainer, ByVal OverworldScreen As Screen, ByVal defaultMapType As Integer)
|
||||
|
@ -284,7 +290,7 @@
|
|||
q3.PassThis = True
|
||||
|
||||
Dim q31 As New PlaySoundQueryObject(OwnPokemon.Number.ToString(), True, 3.0F)
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("GO, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("Go, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
|
||||
Dim q5 As ToggleMenuQueryObject = New ToggleMenuQueryObject(Me.BattleMenu.Visible)
|
||||
|
||||
|
@ -428,7 +434,7 @@
|
|||
q3.PassThis = True
|
||||
|
||||
Dim q31 As New PlaySoundQueryObject(OwnPokemon.Number.ToString(), True, 3.0F)
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("GO, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("Go, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
|
||||
Dim q5 As ToggleMenuQueryObject = New ToggleMenuQueryObject(Me.BattleMenu.Visible)
|
||||
|
||||
|
@ -680,7 +686,7 @@
|
|||
q3.PassThis = True
|
||||
|
||||
Dim q31 As New PlaySoundQueryObject(OwnPokemon.Number.ToString(), True, 3.0F)
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("GO, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
Dim q4 As TextQueryObject = New TextQueryObject("Go, " & Me.OwnPokemon.GetDisplayName() & "!")
|
||||
|
||||
Dim q5 As ToggleMenuQueryObject = New ToggleMenuQueryObject(Me.BattleMenu.Visible)
|
||||
|
||||
|
@ -827,7 +833,7 @@ nextIndex:
|
|||
Next
|
||||
End If
|
||||
|
||||
Core.SpriteBatch.DrawString(FontManager.MiniFont, "Battle system not final!", New Vector2(0, Core.windowSize.Height - 20), Color.White)
|
||||
'Core.SpriteBatch.DrawString(FontManager.MiniFont, "Battle system not final!", New Vector2(0, Core.windowSize.Height - 20), Color.White)
|
||||
|
||||
TextBox.Draw()
|
||||
|
||||
|
|
|
@ -10,13 +10,21 @@
|
|||
Public OwnTruantRound As Integer = 0 'Truant move counter
|
||||
Public OwnImprison As Integer = 0 'Imprison move counter
|
||||
Public OwnTaunt As Integer = 0 'Taunt move counter
|
||||
Public OwnTelekinesis As Integer = 0 'Telekinesis move counter
|
||||
Public OwnRageCounter As Integer = 0 'Rage move counter
|
||||
Public OwnUproar As Integer = 0 'Uproar move counter
|
||||
Public OwnFocusEnergy As Integer = 0 'Focus energy move counter
|
||||
Public OwnFlashFire As Integer = 0 'Flash Fire move counter
|
||||
Public OwnEndure As Integer = 0 'Endure move counter
|
||||
Public OwnProtectCounter As Integer = 0 'Protect move counter
|
||||
Public OwnKingsShieldCounter As Integer = 0 'Kings Shield move counter
|
||||
Public OwnSpikyShieldCounter As Integer = 0 'Spiky Shield move counter
|
||||
Public OwnDetectCounter As Integer = 0 'Detect move counter
|
||||
Public OwnBanefulBunkerCounter As Integer = 0 'Baneful Bunker move counter
|
||||
Public OwnCraftyShieldCounter As Integer = 0 'Crafty Shield move counter
|
||||
Public OwnMatBlockCounter As Integer = 0 'Mat Block move counter
|
||||
Public OwnWideGuardCounter As Integer = 0 'Wide Guard move counter
|
||||
Public OwnQuickGuardCounter As Integer = 0 'Quick Guard move counter
|
||||
Public OwnIngrain As Integer = 0 'Ingrain move counter
|
||||
Public OwnSubstitute As Integer = 0 'Substitute HP left
|
||||
Public OwnLuckyChant As Integer = 0 'Lucky chant move counter
|
||||
|
@ -51,6 +59,7 @@
|
|||
Public OwnLastDamage As Integer = 0 'Last Damage the own Pokémon has done by moves.
|
||||
Public OwnLeechSeed As Integer = 0 'The opponent used leech seed
|
||||
Public OwnSolarBeam As Integer = 0 'Charge counter for solar beam
|
||||
Public OwnSolarBlade As Integer = 0 'Charge counter for solar blade
|
||||
Public OwnLockOn As Integer = 0 'Counter for the moves lock-on and mind reader
|
||||
Public OwnBideCounter As Integer = 0 'Counter for the Bide move
|
||||
Public OwnBideDamage As Integer = 0 'Half of the damage dealt by bide
|
||||
|
@ -62,6 +71,7 @@
|
|||
Public OwnMiracleEye As Integer = 0 'Own Dark type Pokémon can be hit by Psychic type attacks
|
||||
Public OwnProtectMovesCount As Integer = 0 'Counts uses of protect moves
|
||||
Public OwnFuryCutter As Integer = 0 'Counter for the move fury cutter
|
||||
Public OwnEchoedVoice As Integer = 0 'Counter for the move echoed voice
|
||||
Public OwnPokemonTurns As Integer = 0 'Turns for how long the own pokemon has been in battle
|
||||
Public OwnStockpileCount As Integer = 0 'A counter for the stockpile moves used for Swallow and Spit Up
|
||||
Public OwnIceBurnCounter As Integer = 0 'Counter for the Ice Burn move.
|
||||
|
@ -76,7 +86,9 @@
|
|||
Public OwnBounceCounter As Integer = 0
|
||||
Public OwnDiveCounter As Integer = 0
|
||||
Public OwnShadowForceCounter As Integer = 0
|
||||
Public OwnPhantomForceCounter As Integer = 0
|
||||
Public OwnSkyDropCounter As Integer = 0
|
||||
Public OwnGeomancyCounter As Integer = 0
|
||||
Public OwnWrap As Integer = 0
|
||||
Public OwnWhirlpool As Integer = 0
|
||||
Public OwnBind As Integer = 0
|
||||
|
@ -88,6 +100,7 @@
|
|||
Public OwnUsedMoves As New List(Of Integer)
|
||||
Public OwnMagicCoat As Integer = 0
|
||||
Public OwnConsumedItem As Item = Nothing
|
||||
Public OwnSmacked As Integer = 0 'Smack Down effect condition
|
||||
Public OwnPursuit As Boolean = False
|
||||
Public OwnMegaEvolved As Boolean = False
|
||||
Public OwnRoostUsed As Boolean = False 'If roost got used, this is true and will get set false and revert types at the end of a turn.
|
||||
|
@ -130,13 +143,21 @@
|
|||
Public OppImprison As Integer = 0
|
||||
Public OppHealBlock As Integer = 0
|
||||
Public OppTaunt As Integer = 0
|
||||
Public OppTelekinesis As Integer = 0
|
||||
Public OppRageCounter As Integer = 0
|
||||
Public OppUproar As Integer = 0
|
||||
Public OppFocusEnergy As Integer = 0
|
||||
Public OppFlashFire As Integer = 0
|
||||
Public OppEndure As Integer = 0
|
||||
Public OppProtectCounter As Integer = 0
|
||||
Public OppKingsShieldCounter As Integer = 0
|
||||
Public OppSpikyShieldCounter As Integer = 0
|
||||
Public OppDetectCounter As Integer = 0
|
||||
Public OppBanefulBunkerCounter As Integer = 0
|
||||
Public OppCraftyShieldCounter As Integer = 0
|
||||
Public OppMatBlockCounter As Integer = 0
|
||||
Public OppWideGuardCounter As Integer = 0
|
||||
Public OppQuickGuardCounter As Integer = 0
|
||||
Public OppIngrain As Integer = 0
|
||||
Public OppSubstitute As Integer = 0
|
||||
Public OppSafeguard As Integer = 0
|
||||
|
@ -176,6 +197,7 @@
|
|||
Public OppLastDamage As Integer = 0
|
||||
Public OppLeechSeed As Integer = 0
|
||||
Public OppSolarBeam As Integer = 0
|
||||
Public OppSolarBlade As Integer = 0
|
||||
Public OppLockOn As Integer = 0
|
||||
Public OppBideCounter As Integer = 0
|
||||
Public OppBideDamage As Integer = 0
|
||||
|
@ -187,6 +209,7 @@
|
|||
Public OppMiracleEye As Integer = 0
|
||||
Public OppProtectMovesCount As Integer = 0
|
||||
Public OppFuryCutter As Integer = 0
|
||||
Public OppEchoedVoice As Integer = 0
|
||||
Public OppPokemonTurns As Integer = 0
|
||||
Public OppStockpileCount As Integer = 0
|
||||
Public OppIceBurnCounter As Integer = 0
|
||||
|
@ -198,6 +221,7 @@
|
|||
Public OppPokemonDamagedLastTurn As Boolean = False
|
||||
Public OppMagicCoat As Integer = 0
|
||||
Public OppConsumedItem As Item = Nothing
|
||||
Public OppSmacked As Integer = 0
|
||||
Public OppPursuit As Boolean = False
|
||||
Public OppMegaEvolved As Boolean = False
|
||||
Public OppRoostUsed As Boolean = False
|
||||
|
@ -210,7 +234,9 @@
|
|||
Public OppBounceCounter As Integer = 0
|
||||
Public OppDiveCounter As Integer = 0
|
||||
Public OppShadowForceCounter As Integer = 0
|
||||
Public OppPhantomForceCounter As Integer = 0
|
||||
Public OppSkyDropCounter As Integer = 0
|
||||
Public OppGeomancyCounter As Integer = 0
|
||||
|
||||
Public OppWrap As Integer = 0
|
||||
Public OppWhirlpool As Integer = 0
|
||||
|
@ -245,6 +271,11 @@
|
|||
Public Rounds As Integer = 0
|
||||
Public AmuletCoin As Integer = 0
|
||||
|
||||
Public ElectricTerrain As Integer = 0
|
||||
Public GrassyTerrain As Integer = 0
|
||||
Public MistyTerrain As Integer = 0
|
||||
Public PsychicTerrain As Integer = 0
|
||||
|
||||
'Special stuff
|
||||
Public RunTries As Integer = 0
|
||||
Public UsedPokemon As New List(Of Integer)
|
||||
|
@ -317,6 +348,63 @@
|
|||
Return True
|
||||
End Function
|
||||
|
||||
Public Function IsGrounded(ByVal own As Boolean, ByVal BattleScreen As BattleScreen) As Boolean
|
||||
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||
Dim grounded As Boolean = True
|
||||
If own = True Then
|
||||
If p.Type1.Type = Element.Types.Flying Or p.Type2.Type = Element.Types.Flying Or p.Ability.Name.ToLower() = "levitate" And BattleScreen.FieldEffects.CanUseAbility(True, BattleScreen) = True Then
|
||||
grounded = False
|
||||
End If
|
||||
If BattleScreen.FieldEffects.Gravity > 0 Or BattleScreen.FieldEffects.OwnSmacked > 0 Or BattleScreen.FieldEffects.OwnIngrain > 0 Then
|
||||
grounded = True
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OwnTelekinesis > 0 Or BattleScreen.FieldEffects.OwnMagnetRise > 0 Then
|
||||
grounded = False
|
||||
End If
|
||||
If Not p.Item Is Nothing Then
|
||||
If p.Item.Name.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
|
||||
grounded = False
|
||||
End If
|
||||
If p.Item.Name.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
|
||||
grounded = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If OwnBounceCounter > 0 Or OwnDigCounter > 0 Or OwnDiveCounter > 0 Or OwnFlyCounter > 0 Or OwnPhantomForceCounter > 0 Or OwnShadowForceCounter > 0 Or OwnSkyDropCounter > 0 Then
|
||||
grounded = False
|
||||
End If
|
||||
Else
|
||||
p = BattleScreen.OppPokemon
|
||||
If p.Type1.Type = Element.Types.Flying Or p.Type2.Type = Element.Types.Flying Or p.Ability.Name.ToLower() = "levitate" And BattleScreen.FieldEffects.CanUseAbility(True, BattleScreen) = True Then
|
||||
grounded = False
|
||||
End If
|
||||
If BattleScreen.FieldEffects.Gravity > 0 Or BattleScreen.FieldEffects.OppSmacked > 0 Or BattleScreen.FieldEffects.OppIngrain > 0 Then
|
||||
grounded = True
|
||||
Else
|
||||
If BattleScreen.FieldEffects.OppTelekinesis > 0 Or BattleScreen.FieldEffects.OppMagnetRise > 0 Then
|
||||
grounded = False
|
||||
End If
|
||||
If Not p.Item Is Nothing Then
|
||||
If p.Item.Name.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
|
||||
grounded = False
|
||||
End If
|
||||
If p.Item.Name.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
|
||||
grounded = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If OppBounceCounter > 0 Or OppDigCounter > 0 Or OppDiveCounter > 0 Or OppFlyCounter > 0 Or OppPhantomForceCounter > 0 Or OppShadowForceCounter > 0 Or OppSkyDropCounter > 0 Then
|
||||
grounded = False
|
||||
End If
|
||||
End If
|
||||
|
||||
If grounded = True Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetPokemonWeight(ByVal own As Boolean, ByVal BattleScreen As BattleScreen) As Single
|
||||
Dim p As Pokemon = BattleScreen.OwnPokemon
|
||||
Dim op As Pokemon = BattleScreen.OppPokemon
|
||||
|
|
|
@ -117,6 +117,10 @@
|
|||
''' </summary>
|
||||
Public Taunted As Integer = 0
|
||||
''' <summary>
|
||||
''' Telekinesis move counter, if true, Pokémon will always be hit.
|
||||
''' </summary>
|
||||
Public Telekinesis As Integer = 0
|
||||
''' <summary>
|
||||
''' If the Pokémon is affected by Embargo.
|
||||
''' </summary>
|
||||
Public Embargo As Integer = 0
|
||||
|
@ -219,6 +223,10 @@
|
|||
''' </summary>
|
||||
Public SolarBeam As Integer = 0
|
||||
''' <summary>
|
||||
''' Solar blade move counter.
|
||||
''' </summary>
|
||||
Public SolarBlade As Integer = 0
|
||||
''' <summary>
|
||||
''' Ice Burn move counter.
|
||||
''' </summary>
|
||||
Public IceBurn As Integer = 0
|
||||
|
@ -247,9 +255,17 @@
|
|||
''' </summary>
|
||||
Public ShadowForce As Integer = 0
|
||||
''' <summary>
|
||||
''' Phantom Force move counter.
|
||||
''' </summary>
|
||||
Public PhantomForce As Integer = 0
|
||||
''' <summary>
|
||||
''' Sky Drop move counter.
|
||||
''' </summary>
|
||||
Public SkyDrop As Integer = 0
|
||||
''' <summary>
|
||||
''' Geomancy move counter.
|
||||
''' </summary>
|
||||
Public Geomancy As Integer = 0
|
||||
|
||||
''' <summary>
|
||||
''' Turns this Pokémon is trapped in Wrap.
|
||||
|
@ -297,6 +313,10 @@
|
|||
''' </summary>
|
||||
Public FuryCutter As Integer = 0
|
||||
''' <summary>
|
||||
''' Counter for the Echoed Voice move.
|
||||
''' </summary>
|
||||
Public EchoedVoice As Integer = 0
|
||||
''' <summary>
|
||||
''' Counter for the Stockpile move.
|
||||
''' </summary>
|
||||
Public StockPile As Integer = 0
|
||||
|
@ -337,6 +357,30 @@
|
|||
''' King's Shield move counter.
|
||||
''' </summary>
|
||||
Public KingsShield As Integer = 0
|
||||
''' <summary>
|
||||
''' Spiky Shield move counter.
|
||||
''' </summary>
|
||||
Public SpikyShield As Integer = 0
|
||||
''' <summary>
|
||||
''' Baneful Bunker move counter.
|
||||
''' </summary>
|
||||
Public BanefulBunker As Integer = 0
|
||||
''' <summary>
|
||||
''' Crafty Shield move counter.
|
||||
''' </summary>
|
||||
Public CraftyShield As Integer = 0
|
||||
''' <summary>
|
||||
''' Mat Block move counter.
|
||||
''' </summary>
|
||||
Public MatBlock As Integer = 0
|
||||
''' <summary>
|
||||
''' Wide Guard move counter.
|
||||
''' </summary>
|
||||
Public WideGuard As Integer = 0
|
||||
''' <summary>
|
||||
''' Quick Guard move counter.
|
||||
''' </summary>
|
||||
Public QuickGuard As Integer = 0
|
||||
|
||||
''' <summary>
|
||||
''' Ingrain move counter.
|
||||
|
@ -359,6 +403,10 @@
|
|||
''' </summary>
|
||||
Public Cursed As Integer = 0
|
||||
''' <summary>
|
||||
''' If the Pokémon is affected by Grounding.
|
||||
''' </summary>
|
||||
Public Smacked As Integer = 0
|
||||
''' <summary>
|
||||
''' Turns until Perish Song faints Pokémon.
|
||||
''' </summary>
|
||||
Public PerishSong As Integer = 0
|
||||
|
@ -420,12 +468,19 @@
|
|||
Me.SleepTurns = 0
|
||||
Me.TruantRound = 0
|
||||
Me.Taunted = 0
|
||||
Me.Telekinesis = 0
|
||||
Me.Rage = 0
|
||||
Me.Uproar = 0
|
||||
Me.Endure = 0
|
||||
Me.Protect = 0
|
||||
Me.Detect = 0
|
||||
Me.KingsShield = 0
|
||||
Me.SpikyShield = 0
|
||||
Me.BanefulBunker = 0
|
||||
Me.CraftyShield = 0
|
||||
Me.MatBlock = 0
|
||||
Me.WideGuard = 0
|
||||
Me.QuickGuard = 0
|
||||
Me.ProtectMoveCounter = 0
|
||||
Me.ToxicRound = 0
|
||||
Me.Nightmare = 0
|
||||
|
@ -445,10 +500,12 @@
|
|||
Me.DefenseCurl = 0
|
||||
Me.Charge = 0
|
||||
Me.SolarBeam = 0
|
||||
Me.SolarBlade = 0
|
||||
Me.LansatBerry = 0
|
||||
Me.CustapBerry = 0
|
||||
Me.Trapped = 0
|
||||
Me.FuryCutter = 0
|
||||
Me.EchoedVoice = 0
|
||||
Me.TurnsInBattle = 0
|
||||
Me.StockPile = 0
|
||||
Me.DestinyBond = 0
|
||||
|
@ -461,7 +518,9 @@
|
|||
Me.Bounce = 0
|
||||
Me.Dive = 0
|
||||
Me.ShadowForce = 0
|
||||
Me.PhantomForce = 0
|
||||
Me.SkyDrop = 0
|
||||
Me.Geomancy = 0
|
||||
Me.SkyAttack = 0
|
||||
Me.RazorWind = 0
|
||||
Me.SkullBash = 0
|
||||
|
@ -475,6 +534,7 @@
|
|||
Me.Bide = 0
|
||||
Me.BideDamage = 0
|
||||
Me.Roost = 0
|
||||
Me.Smacked = 0
|
||||
|
||||
'If Baton Pass is not used to switch, also reset these variables:
|
||||
If BatonPassed = False Then
|
||||
|
|
|
@ -111,9 +111,10 @@
|
|||
If _chooseIndex = 0 Then
|
||||
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ChoosePokemon, "Choose Pokémon to battle!", False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
|
||||
AddHandler selScreen.SelectedObject, AddressOf ChoosePokemonHandler
|
||||
|
||||
SoundManager.PlaySound("select")
|
||||
Core.SetScreen(selScreen)
|
||||
Else
|
||||
SoundManager.PlaySound("select")
|
||||
_ready = True
|
||||
End If
|
||||
End If
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
End If
|
||||
Else
|
||||
If Controls.Accept(True, True) = True Then
|
||||
SoundManager.PlaySound("select")
|
||||
Me._ready = True
|
||||
End If
|
||||
End If
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,272 @@
|
|||
version=2
|
||||
:if:<register.registered(First_time_champion)>=false
|
||||
@player.move(0)
|
||||
@player.turnto(1)
|
||||
@text.show(I'm sorry this club~is for members only.*Please leave.)
|
||||
@player.turnto(2)
|
||||
@player.move(1)
|
||||
@player.warp(goldenrod.dat,15,0.1,21,0)
|
||||
@level.update
|
||||
@player.move(1)
|
||||
:end
|
||||
:endif
|
||||
|
||||
:if:<register.registered(clubintro)>=false
|
||||
@Register.register(clubregisters,int,0)
|
||||
@player.move(0)
|
||||
@player.turnto(1)
|
||||
:if:<player.gender>=0
|
||||
@text.show(I'm sorry this club is for mem-*Wait.~Are you perhaps~Miss <player.name>?*I am so sorry~for my rudeness.*Any trainer who is good~enough to be champion is~welcome at this club.*This club is intended~to be a place for powerful~trainers to hangout,~relax, and engage in~friendly battles.*Currently all of the~Gym Leaders of Kanto~and Johto are members,~but they rarely come by.*I am sure if a trainer~as strong as you told~them about this club and~asked them to join you~here they would do so.*They might even come~here willing to battle!)
|
||||
:else
|
||||
@text.show(I'm sorry this club is for mem-*Wait.~Are you perhaps~Mister <player.name>?*I am so sorry~for my rudeness.*Any trainer who is good~enough to be champion is~welcome at this club.*This club is intended~to be a place for powerful~trainers to hangout,~relax, and engage in~friendly battles.*Currently all of the~Gym Leaders of Kanto~and Johto are members,~but they rarely come by.*I am sure if a trainer~as strong as you told~them about this club and~asked them to join you~here they would do so.*They might even come~here willing to battle!)
|
||||
:endif
|
||||
@register.register(clubintro)
|
||||
:endif
|
||||
|
||||
:if:<Register.registered(EusineHere)>=false <and> <Register.registered(EusineNotHere)>=false <and> <register.registered(EusineRematchTalk)>=true
|
||||
:if:<system.random(7)>=5
|
||||
@register.registertime(EusineHere,20,hour)
|
||||
:else
|
||||
@register.registertime(EusineNotHere,20,hour)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Register.registered(LiHere)>=false <and> <Register.registered(LiNotHere)>=false <and> <register.registered(LiRematchTalk)>=true
|
||||
:if:<system.random(10)>=5
|
||||
@register.registertime(LiHere,4,hour)
|
||||
@register.registertime(LiNotHere,3,day)
|
||||
:else
|
||||
@register.registertime(LiNotHere,1,day)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Register.registered(LiHere)>=true
|
||||
@npc.warp(19,~,0.2,~)
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Sunday
|
||||
:if:<Environment.hour><4 <and> <Environment.hour>>0
|
||||
:if:<register.registered(TRTPrematchTalk)>=true
|
||||
@npc.warp(20,~,3.2,~)
|
||||
@npc.warp(21,~,3.2,~)
|
||||
@npc.warp(22,~,3.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><12 <and> <Environment.hour>>5
|
||||
:if:<register.registered(BugsyRematchTalk)>=true
|
||||
@npc.warp(10,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>6
|
||||
:if:<register.registered(ErikaRematchTalk)>=true
|
||||
@npc.warp(4,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(BrockRematchTalk)>=true
|
||||
@npc.warp(1,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>14
|
||||
:if:<register.registered(MistyRematchTalk)>=true
|
||||
@npc.warp(2,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Monday
|
||||
:if:<Environment.hour><9 <and> <Environment.hour>>2
|
||||
:if:<register.registered(ChuckRematchTalk)>=true
|
||||
@npc.warp(13,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><12 <and> <Environment.hour>>4
|
||||
:if:<register.registered(BugsyRematchTalk)>=true
|
||||
@npc.warp(10,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(BrockRematchTalk)>=true
|
||||
@npc.warp(1,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><19 <and> <Environment.hour>>12
|
||||
:if:<register.registered(JasmineRematchTalk)>=true
|
||||
@npc.warp(14,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Tuesday
|
||||
:if:<Environment.hour><11 <and> <Environment.hour>>2
|
||||
:if:<register.registered(BlaineRematchTalk)>=true
|
||||
@npc.warp(7,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><12 <and> <Environment.hour>>4
|
||||
:if:<register.registered(BugsyRematchTalk)>=true
|
||||
@npc.warp(10,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(BrockRematchTalk)>=true
|
||||
@npc.warp(1,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>14
|
||||
:if:<register.registered(PryceRematchTalk)>=true
|
||||
@npc.warp(15,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Wednesday
|
||||
:if:<Environment.hour><9 <and> <Environment.hour>>2
|
||||
:if:<register.registered(ChuckRematchTalk)>=true
|
||||
@npc.warp(13,~,0.2,~)
|
||||
:endif
|
||||
:if:<register.registered(KiyoRematchTalk)>=true
|
||||
@npc.warp(18,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><22 <and> <Environment.hour>>6
|
||||
:if:<register.registered(BlueRematchTalk)>=true
|
||||
@npc.warp(8,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><19 <and> <Environment.hour>>12
|
||||
:if:<register.registered(JasmineRematchTalk)>=true
|
||||
@npc.warp(14,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Thursday
|
||||
:if:<Environment.hour><11 <and> <Environment.hour>>2
|
||||
:if:<register.registered(BlaineRematchTalk)>=true
|
||||
@npc.warp(7,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(SurgeRematchTalk)>=true
|
||||
@npc.warp(3,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>9
|
||||
:if:<register.registered(OakPrematchTalk)>=true
|
||||
@npc.warp(30,~,3.2,~)
|
||||
@npc.warp(31,~,3.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>14
|
||||
:if:<register.registered(PryceRematchTalk)>=true
|
||||
@npc.warp(15,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>16
|
||||
:if:<register.registered(ClairRematchTalk)>=true
|
||||
@npc.warp(16,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Friday
|
||||
:if:<Environment.hour><9 <and> <Environment.hour>>2
|
||||
:if:<register.registered(ChuckRematchTalk)>=true
|
||||
@npc.warp(13,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(SurgeRematchTalk)>=true
|
||||
@npc.warp(3,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><19 <and> <Environment.hour>>12
|
||||
:if:<register.registered(JasmineRematchTalk)>=true
|
||||
@npc.warp(14,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>16
|
||||
:if:<register.registered(ClairRematchTalk)>=true
|
||||
@npc.warp(16,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.day>=Saturday
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>6
|
||||
:if:<register.registered(ErikaRematchTalk)>=true
|
||||
@npc.warp(4,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><15 <and> <Environment.hour>>8
|
||||
:if:<register.registered(SurgeRematchTalk)>=true
|
||||
@npc.warp(3,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>14
|
||||
:if:<register.registered(MistyRematchTalk)>=true
|
||||
@npc.warp(2,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:if:<Environment.hour><23 <and> <Environment.hour>>16
|
||||
:if:<register.registered(ClairRematchTalk)>=true
|
||||
@npc.warp(16,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
:endif
|
||||
|
||||
#Everyday
|
||||
:if:<Environment.hour><4 <and> <Environment.hour>>0
|
||||
:if:<register.registered(JanineRematchTalk)>=true
|
||||
@npc.warp(5,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.hour><7 <and> <Environment.hour>>3
|
||||
:if:<register.registered(FalknerRematchTalk)>=true
|
||||
@npc.warp(9,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.hour><17 <and> <Environment.hour>>13
|
||||
:if:<register.registered(SabrinaRematchTalk)>=true
|
||||
@npc.warp(6,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.hour><22 <and> <Environment.hour>>18
|
||||
:if:<register.registered(WhitneyRematchTalk)>=true
|
||||
@npc.warp(11,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<Environment.hour>=0 <or> <Environment.hour>=22 <or> <Environment.hour>=23
|
||||
:if:<register.registered(MortyRematchTalk)>=true
|
||||
@npc.warp(12,~,0.2,~)
|
||||
:endif
|
||||
:if:<register.registered(EusineHere)>=true
|
||||
@npc.warp(17,~,0.2,~)
|
||||
:endif
|
||||
:endif
|
||||
|
||||
:if:<register.registered(GreenAtClub)>=true
|
||||
@npc.warp(99,~,3.2,~)
|
||||
:endif
|
||||
|
||||
:if:<register.value(clubregisters)>>15 <and> <register.registered(clubextendinvite)>=false
|
||||
@player.move(0)
|
||||
@player.turnto(1)
|
||||
:if:<player.gender>=0
|
||||
@text.show(Oh, Miss <player.name>.*It is so good to see you!*I am not sure what you~told them, but all of the~Gym Leaders from both Johto~and Kanto have been~frequenting the club!*The battles we have~witnessed here have been~spectacular!*I suspect our reputation~for hosting the strongest~trainers has begun to spread.*If you meet a worthy trainer~feel free to invite them~to visit us!)
|
||||
:else
|
||||
@text.show(Oh, Mister <player.name>.*It is so good to see you!*I am not sure what you~told them, but all of the~Gym Leaders from both Johto~and Kanto have been~frequenting the club!*The battles we have~witnessed here have been~spectacular!*I suspect our reputation~for hosting the strongest~trainers has begun to spread.*If you meet a worthy trainer~feel free to invite them~to visit us!)
|
||||
:endif
|
||||
@register.register(clubextendinvite)
|
||||
:if:<register.registered(shrinecelebi)>=true
|
||||
@npc.register(tohjofalls\hideout.dat|3|position|3,0,0)
|
||||
@npc.register(tohjofalls\hideout.dat|4|position|4,0,1)
|
||||
@npc.register(tohjofalls\hideout.dat|5|position|5,0,0)
|
||||
:endif
|
||||
:endif
|
||||
:end
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,80 @@
|
|||
version=2
|
||||
@camera.set(0,1.3,2,6.28,-0.8)
|
||||
@entity.showmessagebulb(1|10|1|25)
|
||||
@pokemon.cry(172)
|
||||
@music.play(show_me_around)
|
||||
@level.wait(30)
|
||||
@player.turnto(3)
|
||||
@npc.warp(25,11,0,24)
|
||||
@npc.move(25,1)
|
||||
@npc.turn(25,1)
|
||||
@text.show(It's a Pichu...!*One of its ears is spiky!)
|
||||
@pokemon.cry(172)
|
||||
@level.wait(20)
|
||||
@npc.warp(26,4,0,26)
|
||||
@npc.move(26,2)
|
||||
@player.turnto(2)
|
||||
@player.move(1)
|
||||
@npc.move(25,1)
|
||||
@npc.turn(25,2)
|
||||
@player.turnto(1)
|
||||
@npc.move(26,3)
|
||||
@text.show(Hey, hey!*Be careful around~that shrine!*People are said to go~missing after messing~around here.*Some suspect a Pokémon is~behind all of this.)
|
||||
@entity.showmessagebulb(1|9|1|26)
|
||||
@npc.turn(26,0)
|
||||
@npc.move(26,1)
|
||||
@camera.set(0.8,1.5,3,1.15,-0.5)
|
||||
@player.turnto(0)
|
||||
@npc.turn(26,3)
|
||||
@npc.turn(25,1)
|
||||
@text.show(Ah, this must be the~Spiky-Eared Pichu that~wanders through the forest.*But it seems so unusually~full of energy...)
|
||||
@npc.turn(25,2)
|
||||
@entity.showmessagebulb(5|10|1|25)
|
||||
@pokemon.cry(172)
|
||||
@level.wait(30)
|
||||
@text.show(Oh, it seems like it~was friends with your~Pokémon in days gone by.*It must be very happy to~finally reunite with him.)
|
||||
@pokemon.cry(172)
|
||||
@text.show(Now it wants to join your~party, give it a chance!)
|
||||
@pokemon.cry(172)
|
||||
@level.wait(15)
|
||||
@npc.turn(26,2)
|
||||
@camera.set(0,1.3,2,6.28,-0.8)
|
||||
@npc.move(26,1)
|
||||
@player.turnto(1)
|
||||
@npc.turn(26,3)
|
||||
@text.show(Here it is, young~trainer, I'll give you~this Pokéball from~my olden days.*Don't worry, it's~still in good condition.)
|
||||
@player.turnto(0)
|
||||
|
||||
@register.register(spiky)
|
||||
@pokemon.cry(172)
|
||||
@pokemon.add(172,50,Obtained at,161,Ilex Forest)
|
||||
@pokemon.setadditionalvalue(<pokemon.count>-1,spiky-eared)
|
||||
|
||||
@pokemon.setshiny(<pokemon.count>-1,0)
|
||||
@pokemon.setgender(<pokemon.count>-1,1)
|
||||
@pokemon.clearattacks(<pokemon.count>-1)
|
||||
@pokemon.addattack(<pokemon.count>-1,231)
|
||||
@pokemon.addattack(<pokemon.count>-1,207)
|
||||
@pokemon.addattack(<pokemon.count>-1,344)
|
||||
@pokemon.addattack(<pokemon.count>-1,220)
|
||||
@pokemon.reloadall
|
||||
@sound.play(success_small,1)
|
||||
@text.show(Spiky-Eared Pichu has~joined your party!)
|
||||
@pokemon.rename(last)
|
||||
@npc.warp(25,11,-2,24)
|
||||
@level.update
|
||||
@level.wait(15)
|
||||
|
||||
@player.turnto(1)
|
||||
@text.show(Being friends with it~should make it happy,~take good care of it!)
|
||||
@npc.turn(26,1)
|
||||
@npc.move(26,7)
|
||||
@npc.turn(26,0)
|
||||
@npc.move(26,2)
|
||||
@level.wait(15)
|
||||
@npc.warp(26,4,-2,26)
|
||||
@level.update
|
||||
@music.play(ilex_forest)
|
||||
@level.wait(15)
|
||||
@camera.reset
|
||||
:end
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue