diff --git a/P3D/Battle/BattleAnimations/BAEntityFaceRotate.vb b/P3D/Battle/BattleAnimations/BAEntityFaceRotate.vb index 16e3281e4..d9625e756 100644 --- a/P3D/Battle/BattleAnimations/BAEntityFaceRotate.vb +++ b/P3D/Battle/BattleAnimations/BAEntityFaceRotate.vb @@ -3,21 +3,19 @@ Inherits BattleAnimation3D Dim TargetEntity As NPC - Dim TargetModel As Entity = Nothing Dim EndFaceRotation As Integer Dim TurnSteps As Integer = 0 Dim TurnSpeed As Integer = 1 Dim TurnTime As Single = 0.0F Dim TurnDelay As Single = 0.0F - Public Sub New(ByVal TargetEntity As NPC, ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F, Optional TargetModel As Entity = Nothing) + Public Sub New(ByVal TargetEntity As NPC, ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F) MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay) If EndFaceRotation = -1 Then Me.EndFaceRotation = TargetEntity.faceRotation Else Me.EndFaceRotation = EndFaceRotation End If - Me.TargetModel = TargetModel Me.TurnSteps = TurnSteps Me.TargetEntity = TargetEntity Me.TurnSpeed = TurnSpeed @@ -34,9 +32,6 @@ If Me.TargetEntity.faceRotation < 0 Then Me.TargetEntity.faceRotation += 4 End If - If Me.TargetModel IsNot Nothing Then - Me.TargetModel.Rotation = Entity.GetRotationFromInteger(Me.TargetEntity.faceRotation) - End If Me.TurnSteps -= TurnSpeed.ToPositive() Me.TurnTime = TurnDelay Else @@ -45,9 +40,6 @@ Else If Me.TargetEntity.faceRotation <> Me.EndFaceRotation Then Me.TargetEntity.faceRotation = Me.EndFaceRotation - If Me.TargetModel IsNot Nothing Then - Me.TargetModel.Rotation = Entity.GetRotationFromInteger(Me.EndFaceRotation) - End If End If Me.Ready = True End If diff --git a/P3D/Battle/BattleAnimations/BAEntityMove.vb b/P3D/Battle/BattleAnimations/BAEntityMove.vb index b480bf1ac..ec7aef0d5 100644 --- a/P3D/Battle/BattleAnimations/BAEntityMove.vb +++ b/P3D/Battle/BattleAnimations/BAEntityMove.vb @@ -75,6 +75,12 @@ End Sub Private Sub Move() + + Dim DestinationOffset As Vector3 = New Vector3(0) + If TargetEntity.Model IsNot Nothing Then + DestinationOffset = New Vector3(0, -0.5, 0) + End If + Select Case MovementCurve Case Curves.EaseIn If EasedIn = False Then @@ -128,17 +134,17 @@ TargetEntity.Position.X = Me.Destination.X End If End If - If TargetEntity.Position.Y < Me.Destination.Y Then + If TargetEntity.Position.Y < Me.Destination.Y + DestinationOffset.Y Then TargetEntity.Position.Y += Me.MoveYSpeed - If TargetEntity.Position.Y >= Me.Destination.Y - 0.05 Then - TargetEntity.Position.Y = Me.Destination.Y + If TargetEntity.Position.Y >= Me.Destination.Y + DestinationOffset.Y - 0.05 Then + TargetEntity.Position.Y = Me.Destination.Y + DestinationOffset.Y End If - ElseIf TargetEntity.Position.Y > Me.Destination.Y Then + ElseIf TargetEntity.Position.Y > Me.Destination.Y + DestinationOffset.Y Then TargetEntity.Position.Y -= Me.MoveYSpeed - If TargetEntity.Position.Y <= Me.Destination.Y + 0.05 Then - TargetEntity.Position.Y = Me.Destination.Y + If TargetEntity.Position.Y <= Me.Destination.Y + DestinationOffset.Y + 0.05 Then + TargetEntity.Position.Y = Me.Destination.Y + DestinationOffset.Y End If End If If TargetEntity.Position.Z < Me.Destination.Z Then @@ -166,15 +172,15 @@ TargetEntity.Position.X = Me.Destination.X End If End If - If TargetEntity.Position.Y < Me.Destination.Y Then - TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y, Me.InterpolationSpeed) - If TargetEntity.Position.Y > Me.Destination.Y - 0.05 Then - TargetEntity.Position.Y = Me.Destination.Y + If TargetEntity.Position.Y < Me.Destination.Y + DestinationOffset.Y Then + TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y + DestinationOffset.Y, Me.InterpolationSpeed) + If TargetEntity.Position.Y > Me.Destination.Y + DestinationOffset.Y - 0.05 Then + TargetEntity.Position.Y = Me.Destination.Y + DestinationOffset.Y End If - ElseIf TargetEntity.Position.Y > Me.Destination.Y Then - TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y, Me.InterpolationSpeed) - If TargetEntity.Position.Y < Me.Destination.Y + 0.05 Then - TargetEntity.Position.Y = Me.Destination.Y + ElseIf TargetEntity.Position.Y > Me.Destination.Y + DestinationOffset.Y Then + TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y + DestinationOffset.Y, Me.InterpolationSpeed) + If TargetEntity.Position.Y < Me.Destination.Y + DestinationOffset.Y + 0.05 Then + TargetEntity.Position.Y = Me.Destination.Y + DestinationOffset.Y End If End If If TargetEntity.Position.Z < Me.Destination.Z Then @@ -189,7 +195,7 @@ End If End If End If - If TargetEntity.Position = Destination Then + If TargetEntity.Position = Destination + DestinationOffset Then Me.Ready = True End If End Sub diff --git a/P3D/Battle/BattleAnimations/BAEntityOpacity.vb b/P3D/Battle/BattleAnimations/BAEntityOpacity.vb index 9697090f5..0ab014d35 100644 --- a/P3D/Battle/BattleAnimations/BAEntityOpacity.vb +++ b/P3D/Battle/BattleAnimations/BAEntityOpacity.vb @@ -15,7 +15,6 @@ Me.FadeIn = FadeIn Me.TransitionSpeed = TransitionSpeed Me.TargetEntity = entity - Me.TargetEntity.NormalOpacity = StartState Me.Visible = False diff --git a/P3D/Battle/BattleAnimations/BAEntitySetPosition.vb b/P3D/Battle/BattleAnimations/BAEntitySetPosition.vb new file mode 100644 index 000000000..1e14f5d1a --- /dev/null +++ b/P3D/Battle/BattleAnimations/BAEntitySetPosition.vb @@ -0,0 +1,36 @@ +Public Class BAEntitySetPosition + + Inherits BattleAnimation3D + + Public TargetEntity As Entity + Public SetPosition As Vector3 + Public RemoveEntityAfter As Boolean + + Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal SetPosition As Vector3, ByVal startDelay As Single, ByVal endDelay As Single) + MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay) + + Me.RemoveEntityAfter = RemoveEntityAfter + Me.SetPosition = SetPosition + + Me.Visible = False + Me.TargetEntity = Entity + + Me.AnimationType = AnimationTypes.Move + End Sub + + Public Overrides Sub DoActionActive() + Dim SetPositionOffset As Vector3 = New Vector3(0) + If TargetEntity.Model IsNot Nothing Then + SetPositionOffset = New Vector3(0, -0.5, 0) + End If + TargetEntity.Position = Me.SetPosition + SetPositionOffset + Me.Ready = True + End Sub + + Public Overrides Sub DoRemoveEntity() + If Me.RemoveEntityAfter = True Then + TargetEntity.CanBeRemoved = True + End If + End Sub + +End Class \ No newline at end of file diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb index add047afa..2228d951d 100644 --- a/P3D/Battle/BattleSystemV2/Battle.vb +++ b/P3D/Battle/BattleSystemV2/Battle.vb @@ -1434,8 +1434,8 @@ ConfusedAnimation.AnimationPlaySound("Battle\Effects\Confused", 0, 0) Dim DuckEntity1 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(-0.25, 0.25, -0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) - Dim DuckEntity2 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, 0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) - Dim DuckEntity3 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, -0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) + Dim DuckEntity2 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0, 0.25, 0), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) + Dim DuckEntity3 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, 0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) ConfusedAnimation.AnimationChangeTexture(DuckEntity1, False, TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 16, 16, 16), ""), 0.75F, 0) ConfusedAnimation.AnimationChangeTexture(DuckEntity2, False, TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 16, 16, 16), ""), 0.75F, 0) @@ -2716,7 +2716,7 @@ If BattleScreen.IsTrainerBattle = False AndAlso Core.Player.ShowBattleAnimations <> 0 Then If own = False Then - Dim FaintAnimation As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True, BattleScreen.OppPokemonModel) + Dim FaintAnimation As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True) FaintAnimation.AnimationPlaySound(CStr(BattleScreen.OppPokemon.Number), 0, 2, False, True) FaintAnimation.AnimationMove(Nothing, False, 0, -1, 0, 0.05, False, False, 2, 2) BattleScreen.BattleQuery.Add(FaintAnimation) @@ -3570,12 +3570,12 @@ Me.ChangeCameraAngle(1, own, BattleScreen) 'Confused Animation If Core.Player.ShowBattleAnimations <> 0 Then - Dim ConfusedAnimation As New AnimationQueryObject(pNPC, Not own) + Dim ConfusedAnimation As New AnimationQueryObject(pNPC, own) ConfusedAnimation.AnimationPlaySound("Battle\Effects\Confused", 0, 0) Dim DuckEntity1 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(-0.25, 0.25, -0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) - Dim DuckEntity2 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, 0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) - Dim DuckEntity3 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, -0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) + Dim DuckEntity2 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0, 0.25, 0), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) + Dim DuckEntity3 As Entity = ConfusedAnimation.SpawnEntity(New Vector3(0.25, 0.25, 0.25), TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.25F), 1, 0, 0) ConfusedAnimation.AnimationChangeTexture(DuckEntity1, False, TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 16, 16, 16), ""), 0.75F, 0) ConfusedAnimation.AnimationChangeTexture(DuckEntity2, False, TextureManager.GetTexture("Textures\Battle\StatusEffect\Confused", New Rectangle(0, 16, 16, 16), ""), 0.75F, 0) @@ -4049,6 +4049,7 @@ val = 6 + statC End If End If + Me.ChangeCameraAngle(1, own, BattleScreen) '***STAT DECREASE ANIMATION*** If Core.Player.ShowBattleAnimations <> 0 Then Dim StatAnimation As AnimationQueryObject = New AnimationQueryObject(Nothing, False) @@ -4084,13 +4085,10 @@ printMessage &= " slightly fell." End Select - - Select Case statString Case "attack" p.StatAttack -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4107,7 +4105,6 @@ Case "defense" p.StatDefense -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4124,7 +4121,6 @@ Case "special attack" p.StatSpAttack -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4141,7 +4137,6 @@ Case "special defense" p.StatSpDefense -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4158,7 +4153,6 @@ Case "speed" p.StatSpeed -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4175,7 +4169,6 @@ Case "evasion" p.Evasion -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4192,7 +4185,6 @@ Case "accuracy" p.Accuracy -= val - Me.ChangeCameraAngle(1, own, BattleScreen) Select Case message Case "" 'Print default message only BattleScreen.BattleQuery.Add(New TextQueryObject(printMessage)) @@ -4377,11 +4369,9 @@ Public Sub ReduceHP(ByVal HPAmount As Integer, ByVal own As Boolean, ByVal from As Boolean, ByVal BattleScreen As BattleScreen, ByVal message As String, ByVal cause As String, ByVal sound As String) Dim p As Pokemon = BattleScreen.OwnPokemon Dim pNPC As Entity = BattleScreen.OwnPokemonNPC - Dim pModel As Entity = BattleScreen.OwnPokemonModel If own = False Then p = BattleScreen.OppPokemon pNPC = BattleScreen.OppPokemonNPC - pModel = BattleScreen.OppPokemonModel End If If p.HP > 0 And p.Status <> Pokemon.StatusProblems.Fainted Then @@ -4398,7 +4388,7 @@ BattleScreen.BattleQuery.Add(New PlaySoundQueryObject(sound, False, 0.0F)) End If If Core.Player.ShowBattleAnimations <> 0 Then - Dim HitAnimation As AnimationQueryObject = New AnimationQueryObject(pNPC, own, pModel) + Dim HitAnimation As AnimationQueryObject = New AnimationQueryObject(pNPC, own) HitAnimation.AnimationFade(Nothing, False, 1, False, 0, 0, 0) HitAnimation.AnimationFade(Nothing, False, 1, True, 1, 1, 0) HitAnimation.AnimationFade(Nothing, False, 1, False, 0, 2, 0) @@ -5929,7 +5919,7 @@ 'Whirlpool Animation If Core.Player.ShowBattleAnimations <> 0 Then - Dim WhirlpoolAnimation As AnimationQueryObject = New AnimationQueryObject(.OwnPokemonNPC, False,, True) + Dim WhirlpoolAnimation As AnimationQueryObject = New AnimationQueryObject(.OwnPokemonNPC, False, True) WhirlpoolAnimation.AnimationPlaySound("Battle\Attacks\Water\Whirlpool", 0.0F, 0) Dim WhirlpoolEntity As Entity = WhirlpoolAnimation.SpawnEntity(New Vector3(0, -0.3, 0), TextureManager.GetTexture("Textures\Battle\Water\Whirlpool"), New Vector3(0.0F), 1.0F, 0.0F, 0.0F) WhirlpoolAnimation.AnimationRotate(WhirlpoolEntity, False, CSng(MathHelper.Pi * 1.5), 0, 0, CSng(MathHelper.Pi * 1.5), 0, 0, 0, 0, True, False, False, False) @@ -6806,7 +6796,7 @@ ChangeCameraAngle(1, False, BattleScreen) 'Whirlpool Animation If Core.Player.ShowBattleAnimations <> 0 Then - Dim WhirlpoolAnimation As AnimationQueryObject = New AnimationQueryObject(.OppPokemonNPC, True,, True) + Dim WhirlpoolAnimation As AnimationQueryObject = New AnimationQueryObject(.OppPokemonNPC, True, True) WhirlpoolAnimation.AnimationPlaySound("Battle\Attacks\Water\Whirlpool", 0.0F, 0) Dim WhirlpoolEntity As Entity = WhirlpoolAnimation.SpawnEntity(New Vector3(0, -0.3, 0), TextureManager.GetTexture("Textures\Battle\Water\Whirlpool"), New Vector3(0.0F), 1.0F, 0.0F, 0.0F) WhirlpoolAnimation.AnimationRotate(WhirlpoolEntity, False, CSng(MathHelper.Pi * 1.5), 0, 0, CSng(MathHelper.Pi * 1.5), 0, 0, 0, 0, True, False, False, False) @@ -7352,14 +7342,20 @@ BattleScreen.AddToQuery(InsertIndex, New TextQueryObject(insertMessage)) - Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OwnPokemonNPC, False, BattleScreen.OwnPokemonModel) + Dim PositionOffsetY As Single = 0.0F + If BattleScreen.OwnPokemonNPC.Model IsNot Nothing Then + PositionOffsetY = 0.5F + End If + + Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OwnPokemonNPC, False) + If Core.Player.ShowBattleAnimations <> 0 Then ' Ball Closes BallReturn.AnimationPlaySound("Battle\Pokeball\Open", 0, 0) Dim SmokeReturned As Integer = 0 Do - Dim SmokePosition = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10)) - Dim SmokeDestination As Vector3 = New Vector3(0, 0, 0) + Dim SmokePosition = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10) + PositionOffsetY, CSng(Random.Next(-10, 10) / 10)) + Dim SmokeDestination As Vector3 = New Vector3(0, PositionOffsetY, 0) Dim SmokeTexture As Texture2D = TextureManager.GetTexture("Textures\Battle\Smoke") @@ -7376,12 +7372,11 @@ ' Pokemon disappears BallReturn.AnimationFade(Nothing, False, 1, False, 0, 1, 0) If Core.Player.ShowBattleAnimations <> 0 Then - BallReturn.AnimationMove(Nothing, False, 0, 0.5, 0, 0.5, False, False, 2, 0,,, 3) ' Ball returns BallReturn.AnimationPlaySound("Battle\Pokeball\Throw", 1, 0) - Dim BallReturnEntity As Entity = BallReturn.SpawnEntity(Nothing, BattleScreen.OwnPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) - BallReturn.AnimationMove(BallReturnEntity, True, -2, 0, 0, 0.1, False, True, 1, 0,, 0.3) + Dim BallReturnEntity As Entity = BallReturn.SpawnEntity(New Vector3(0, 0 + PositionOffsetY, 0), BattleScreen.OwnPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) + BallReturn.AnimationMove(BallReturnEntity, True, -2, 0 + PositionOffsetY, 0, 0.1, False, True, 1, 0,, 0.3) End If BattleScreen.AddToQuery(InsertIndex, BallReturn) @@ -7408,6 +7403,7 @@ ownShiny = "S" End If + Dim FallOffset = 0.0F Dim ownModel As String = BattleScreen.GetModelName(True) If ownModel = "" Then BattleScreen.AddToQuery(InsertIndex, New ToggleEntityQueryObject(True, ToggleEntityQueryObject.BattleEntities.OwnPokemon, PokemonForms.GetOverworldSpriteName(BattleScreen.OwnPokemon), 0, 1, -1, -1)) @@ -7418,27 +7414,27 @@ BattleScreen.AddToQuery(InsertIndex, New TextQueryObject("Go, " & BattleScreen.OwnPokemon.GetDisplayName() & "!")) ' Ball is thrown - Dim BallThrow As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OwnPokemonNPC, False, BattleScreen.OwnPokemonModel) + Dim BallThrow As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OwnPokemonNPC, False) If Core.Player.ShowBattleAnimations <> 0 Then BallThrow.AnimationPlaySound("Battle\Pokeball\Throw", 0, 0) - Dim BallThrowEntity As Entity = BallThrow.SpawnEntity(New Vector3(-2, -0.15, 0), BattleScreen.OwnPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) - BallThrow.AnimationMove(BallThrowEntity, True, 0, 0.35, 0, 0.1, False, True, 0F, 0.5F,, -0.3,, 0.025F) + Dim BallThrowEntity As Entity = BallThrow.SpawnEntity(New Vector3(-2, CSng(-0.15 + PositionOffsetY), 0), BattleScreen.OwnPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) + BallThrow.AnimationMove(BallThrowEntity, True, 0, CSng(0.35 + PositionOffsetY), 0, 0.1, False, True, 0F, 0.5F,, -0.3,, 0.025F) ' Ball Opens BallThrow.AnimationPlaySound("Battle\Pokeball\Open", 3, 0) Dim SmokeSpawned As Integer = 0 Do - Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10)) + Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10) + PositionOffsetY, CSng(Random.Next(-10, 10) / 10)) Dim SmokeTexture As Texture2D = TextureManager.GetTexture("Textures\Battle\Smoke") Dim SmokeScale = New Vector3(CSng(Random.Next(2, 6) / 10)) Dim SmokeSpeed = CSng(Random.Next(1, 3) / 20.0F) - Dim SmokeEntity As Entity = BallThrow.SpawnEntity(Nothing, SmokeTexture, SmokeScale, 1.0F, 3) + Dim SmokeEntity As Entity = BallThrow.SpawnEntity(New Vector3(0, PositionOffsetY, 0), SmokeTexture, SmokeScale, 1.0F, 3) BallThrow.AnimationMove(SmokeEntity, True, SmokeDestination.X, SmokeDestination.Y, SmokeDestination.Z, SmokeSpeed, False, False, 3.0F, 0.0F) Threading.Interlocked.Increment(SmokeSpawned) @@ -7447,10 +7443,11 @@ If Core.Player.ShowBattleAnimations <> 0 Then ' Pokemon appears + BallThrow.AnimationSetPosition(Nothing, False, 12, CSng(0.5), 13, 0, 0) BallThrow.AnimationFade(Nothing, False, 1, True, 1, 3, 0) BallThrow.AnimationPlaySound(CStr(BattleScreen.OwnPokemon.Number), 4, 0,, True) ' Pokémon falls down - BallThrow.AnimationMove(Nothing, False, 0, 0, 0, 0.05F, False, False, 5, 0,,, 3) + BallThrow.AnimationMove(Nothing, False, 0, 0 + PositionOffsetY, 0, 0.05F, False, False, 5, 0,,, 3) Else ' Pokemon appears BallThrow.AnimationFade(Nothing, False, 1, True, 1, 0, 0) @@ -7728,7 +7725,7 @@ BattleScreen.BattleQuery.Add(New TextQueryObject(message)) If Core.Player.ShowBattleAnimations <> 0 Then - Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True, BattleScreen.OppPokemonModel) + Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True) ' Ball Closes BallReturn.AnimationPlaySound("Battle\Pokeball\Open", 0, 0) Dim SmokeReturned As Integer = 0 @@ -7794,7 +7791,7 @@ BattleScreen.BattleQuery.Add(New TextQueryObject(BattleScreen.Trainer.Name & ": ""Come back, " & BattleScreen.OppPokemon.GetDisplayName() & "!""")) If Core.Player.ShowBattleAnimations <> 0 Then - Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True, BattleScreen.OppPokemonModel) + Dim BallReturn As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, True) ' Ball Closes BallReturn.AnimationPlaySound("Battle\Pokeball\Open", 0, 0) @@ -7852,7 +7849,7 @@ BattleScreen.BattleQuery.Add(New ToggleEntityQueryObject(True, ToggleEntityQueryObject.BattleEntities.OppPokemon, 1, -1, -1, -1, -1)) BattleScreen.BattleQuery.Add(New TextQueryObject(BattleScreen.Trainer.Name & ": ""Go, " & BattleScreen.OppPokemon.GetDisplayName() & "!""")) - Dim BallThrow As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, False, BattleScreen.OppPokemonModel) + Dim BallThrow As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, False) If Core.Player.ShowBattleAnimations <> 0 Then ' Ball is thrown diff --git a/P3D/Battle/BattleSystemV2/BattleScreen.vb b/P3D/Battle/BattleSystemV2/BattleScreen.vb index a3398e874..e07b1db91 100644 --- a/P3D/Battle/BattleSystemV2/BattleScreen.vb +++ b/P3D/Battle/BattleSystemV2/BattleScreen.vb @@ -60,9 +60,6 @@ Public OwnTrainerNPC As NPC Public OppTrainerNPC As NPC - Public OwnPokemonModel As Entity - Public OppPokemonModel As Entity - Public OwnPokemonIndex As Integer = 0 Public OppPokemonIndex As Integer = 0 @@ -85,7 +82,7 @@ Public DrawColoredScreen As Boolean = True Public ColorOverlay As Color = Color.Black - Public BattleMapOffset As New Vector3(0) + Public Shared BattleMapOffset As New Vector3(0) Public Overrides Function GetScreenStatus() As String Dim pokemonString As String = "OwnPokemon=OWNEMPTY" & Environment.NewLine & @@ -223,29 +220,29 @@ End If Dim ownModel As String = GetModelName(True) + Dim OwnEntityOffsetY As Single = 0.0F + Dim oppModel As String = GetModelName(False) + Dim OppEntityOffsetY As Single = 0.0F - If ownModel = "" Then - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Pokemon\Bulbasaur\Normal"), WallBlock) - Else - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1,,, ownModel), WallBlock) + If ownModel <> "" Then + OwnEntityOffsetY = -0.5F End If + If oppModel <> "" Then + OppEntityOffsetY = -0.5F + End If + + OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, OwnEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1,,, ownModel), NPC) + OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, OppEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)},,,, oppModel), NPC) + If ownModel <> "" Then + OwnPokemonNPC.Scale = New Vector3(OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If + If oppModel <> "" Then + OppPokemonNPC.Scale = New Vector3(OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If Screen.Level.Entities.Add(OwnPokemonNPC) - Screen.Level.Entities.Add(OwnPokemonModel) - - If oppModel = "" Then - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Pokemon\Bulbasaur\Normal"), WallBlock) - Else - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock) - End If - Screen.Level.Entities.Add(OppPokemonNPC) - Screen.Level.Entities.Add(OppPokemonModel) Dim ownSkin As String = Core.Player.Skin If SavedOverworld.Level.Surfing = True Then @@ -356,40 +353,42 @@ oppShiny = "S" End If - Dim ownModel As String = GetModelName(True) - Dim oppModel As String = GetModelName(False) - Dim InitiallyVisibleOwn As Integer = 1 If IsPVPBattle = True AndAlso Core.Player.ShowBattleAnimations <> 0 Then InitiallyVisibleOwn = 0 End If - If ownModel = "" Then - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOwn), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Pokemon\Models\Bulbasaur\Normal"), WallBlock) - Else - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOwn,,, ownModel), WallBlock) - End If - - Screen.Level.Entities.Add(OwnPokemonNPC) - Screen.Level.Entities.Add(OwnPokemonModel) - Dim InitiallyVisibleOpp As Integer = 1 If Core.Player.ShowBattleAnimations <> 0 Then InitiallyVisibleOpp = 0 End If - If oppModel = "" Then - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OppPokemon), 1, OppPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOpp), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock) - Else - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OppPokemon), 1, OppPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOpp,,, oppModel), WallBlock) + Dim ownModel As String = GetModelName(True) + Dim oppModel As String = GetModelName(False) + + Dim OwnEntityOffsetY As Single = 0.0F + Dim OppEntityOffsetY As Single = 0.0F + + If ownModel <> "" Then + OwnEntityOffsetY = -0.5F End If + If oppModel <> "" Then + OppEntityOffsetY = -0.5F + End If + + OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, OwnEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOwn,,, ownModel), NPC) + OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, OppEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOpp,,, oppModel), NPC) + + If ownModel <> "" Then + OwnPokemonNPC.Scale = New Vector3(OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If + If oppModel <> "" Then + OppPokemonNPC.Scale = New Vector3(OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If + + Screen.Level.Entities.Add(OwnPokemonNPC) Screen.Level.Entities.Add(OppPokemonNPC) - Screen.Level.Entities.Add(OppPokemonModel) Dim ownSkin As String = Core.Player.Skin If SavedOverworld.Level.Surfing = True Then @@ -414,27 +413,38 @@ Dim q1 As TextQueryObject = New TextQueryObject(Trainer.Name & " " & "wants to battle!") Dim q11 As TextQueryObject = New TextQueryObject(Trainer.Name & ": """ & "Go," & " " & OppPokemon.GetDisplayName() & "!""") + Dim OppAnimationOffsetY As Single = 0.0F + If OppPokemonNPC.Model IsNot Nothing Then + OppAnimationOffsetY = 0.5F + End If + + Dim OwnAnimationOffsetY As Single = 0.0F + If OwnPokemonNPC.Model IsNot Nothing Then + OwnAnimationOffsetY = 0.5F + End If + + ' Ball is thrown - Dim BallThrowOpp As AnimationQueryObject = New AnimationQueryObject(OppPokemonNPC, False, OppPokemonModel) + Dim BallThrowOpp As AnimationQueryObject = New AnimationQueryObject(OppPokemonNPC, False) If Core.Player.ShowBattleAnimations <> 0 Then BallThrowOpp.AnimationPlaySound("Battle\Pokeball\Throw", 0, 0) - BallThrowOpp.AnimationMove(Nothing, False, 0, 0.5, 0, 0.5, False, False, 2, 0,,, 3) + BallThrowOpp.AnimationSetPosition(Nothing, False, 15, CSng(0.5 + OppEntityOffsetY), 13, 0, 0) Dim BallThrowEntity As Entity = BallThrowOpp.SpawnEntity(New Vector3(2, -0.15, 0), Me.OppPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) - BallThrowOpp.AnimationMove(BallThrowEntity, True, 0, 0.35, 0, 0.1, False, True, 0F, 0.5F,, 0.3,, 0.025F) + BallThrowOpp.AnimationMove(BallThrowEntity, True, 0, CSng(0.35 + OppAnimationOffsetY), 0, 0.1, False, True, 0F, 0.5F,, 0.3,, 0.025F) ' Ball Opens BallThrowOpp.AnimationPlaySound("Battle\Pokeball\Open", 3, 0) Dim SmokeSpawnedOpp As Integer = 0 Do - Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10)) + Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10) + OppAnimationOffsetY, CSng(Random.Next(-10, 10) / 10)) Dim SmokeTexture As Texture2D = TextureManager.GetTexture("Textures\Battle\Smoke") Dim SmokeScale = New Vector3(CSng(Random.Next(2, 6) / 10)) Dim SmokeSpeed = CSng(Random.Next(1, 3) / 20.0F) - Dim SmokeEntity As Entity = BallThrowOpp.SpawnEntity(Nothing, SmokeTexture, SmokeScale, 1.0F, 3) + Dim SmokeEntity As Entity = BallThrowOpp.SpawnEntity(New Vector3(0, OppAnimationOffsetY, 0), SmokeTexture, SmokeScale, 1.0F, 3) BallThrowOpp.AnimationMove(SmokeEntity, True, SmokeDestination.X, SmokeDestination.Y, SmokeDestination.Z, SmokeSpeed, False, False, 3.0F, 0.0F) Threading.Interlocked.Increment(SmokeSpawnedOpp) @@ -466,27 +476,27 @@ If IsPVPBattle = True AndAlso Core.Player.ShowBattleAnimations <> 0 Then ' Ball is thrown - Dim BallThrowOwn As AnimationQueryObject = New AnimationQueryObject(Me.OwnPokemonNPC, False, Me.OwnPokemonModel) + Dim BallThrowOwn As AnimationQueryObject = New AnimationQueryObject(Me.OwnPokemonNPC, False) BallThrowOwn.AnimationPlaySound("Battle\Pokeball\Throw", 0, 0) BallThrowOwn.AnimationMove(Nothing, False, 0, 0.5, 0, 0.5, False, False, 2, 0,,, 3) Dim BallThrowEntity As Entity = BallThrowOwn.SpawnEntity(New Vector3(-2, -0.15, 0), Me.OwnPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F) - BallThrowOwn.AnimationMove(BallThrowEntity, True, 0, 0.35, 0, 0.1, False, True, 0F, 0.5F,, 0.3,, 0.025F) + BallThrowOwn.AnimationMove(BallThrowEntity, True, 0, CSng(0.35 + OwnAnimationOffsetY), 0, 0.1, False, True, 0F, 0.5F,, 0.3,, 0.025F) ' Ball Opens BallThrowOwn.AnimationPlaySound("Battle\Pokeball\Open", 3, 0) Dim SmokeSpawned As Integer = 0 Do - Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10)) + Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10) + OwnAnimationOffsetY, CSng(Random.Next(-10, 10) / 10)) Dim SmokeTexture As Texture2D = TextureManager.GetTexture("Textures\Battle\Smoke") Dim SmokeScale = New Vector3(CSng(Random.Next(2, 6) / 10)) Dim SmokeSpeed = CSng(Random.Next(1, 3) / 20.0F) - Dim SmokeEntity As Entity = BallThrowOwn.SpawnEntity(Nothing, SmokeTexture, SmokeScale, 1.0F, 3) + Dim SmokeEntity As Entity = BallThrowOwn.SpawnEntity(New Vector3(0, OwnAnimationOffsetY, 0), SmokeTexture, SmokeScale, 1.0F, 3) BallThrowOwn.AnimationMove(SmokeEntity, True, SmokeDestination.X, SmokeDestination.Y, SmokeDestination.Z, SmokeSpeed, False, False, 3.0F, 0.0F) Threading.Interlocked.Increment(SmokeSpawned) @@ -576,29 +586,31 @@ End If Dim ownModel As String = GetModelName(True) - Dim oppModel As String = GetModelName(False) + Dim OwnEntityOffsetY As Single = 0.0F - If ownModel = "" Then - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock) - Else - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, ownModel), WallBlock) + Dim oppModel As String = GetModelName(False) + Dim OppEntityOffsetY As Single = 0.0F + + If ownModel <> "" Then + OwnEntityOffsetY = -0.5F + End If + + If oppModel <> "" Then + OppEntityOffsetY = -0.5F + End If + + OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0 + OwnEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1,,, ownModel), NPC) + OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0 + OppEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)},,,, oppModel), NPC) + + If ownModel <> "" Then + OwnPokemonNPC.Scale = New Vector3(OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If + If oppModel <> "" Then + OppPokemonNPC.Scale = New Vector3(OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE End If Screen.Level.Entities.Add(OwnPokemonNPC) - Screen.Level.Entities.Add(OwnPokemonModel) - - If oppModel = "" Then - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock) - Else - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock) - End If - Screen.Level.Entities.Add(OppPokemonNPC) - Screen.Level.Entities.Add(OppPokemonModel) Dim ownSkin As String = Core.Player.Skin If SavedOverworld.Level.Surfing = True Then @@ -688,29 +700,31 @@ End If Dim ownModel As String = GetModelName(True) - Dim oppModel As String = GetModelName(False) + Dim OwnEntityOffsetY As Single = 0.0F - If ownModel = "" Then - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Pokemon\Models\Bulbasaur\Normal"), WallBlock) - Else - OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC) - OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1,,, ownModel), WallBlock) + Dim oppModel As String = GetModelName(False) + Dim OppEntityOffsetY As Single = 0.0F + + If ownModel <> "" Then + OwnEntityOffsetY = -0.5F + End If + + If oppModel <> "" Then + OppEntityOffsetY = -0.5F + End If + + OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0 + OwnEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1,,, ownModel), NPC) + OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0 + OppEntityOffsetY, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)},,,, oppModel), NPC) + + If ownModel <> "" Then + OwnPokemonNPC.Scale = New Vector3(OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + End If + If oppModel <> "" Then + OppPokemonNPC.Scale = New Vector3(OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE End If Screen.Level.Entities.Add(OwnPokemonNPC) - Screen.Level.Entities.Add(OwnPokemonModel) - - If oppModel = "" Then - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Pokemon\Models\Bulbasaur\Normal"), WallBlock) - Else - OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC) - OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock) - End If - Screen.Level.Entities.Add(OppPokemonNPC) - Screen.Level.Entities.Add(OppPokemonModel) Dim ownSkin As String = Core.Player.Skin If SavedOverworld.Level.Surfing = True Then @@ -866,12 +880,6 @@ If e Is OppTrainerNPC Then ForegroundEntities.Add(e) End If - If e Is OwnPokemonModel Then - ForegroundEntities.Add(e) - End If - If e Is OppPokemonModel Then - ForegroundEntities.Add(e) - End If Next If ForegroundEntities.Count > 0 Then ForegroundEntities = (From f In ForegroundEntities Order By f.CameraDistance Descending).ToList() @@ -1097,12 +1105,20 @@ nextIndex: End Sub Public Function FocusOwnPokemon() As QueryObject - Dim q As New CameraQueryObject(New Vector3(Me.OwnPokemonNPC.Position.X + 1.0F, Me.OwnPokemonNPC.Position.Y + 0.5F, Me.OwnPokemonNPC.Position.Z + 1.0F) - BattleMapOffset, Screen.Camera.Position, 0.06F, 0.06F, CSng(MathHelper.PiOver4) + 0.05F, Screen.Camera.Yaw, -0.3F, Screen.Camera.Pitch, 0.04F, 0.04F) + Dim PositionOffsetY As Single = 0.0F + If Me.OwnPokemonNPC.Model IsNot Nothing Then + PositionOffsetY = 0.5 + End If + Dim q As New CameraQueryObject(New Vector3(Me.OwnPokemonNPC.Position.X + 1.0F, Me.OwnPokemonNPC.Position.Y + 0.5F + PositionOffsetY, Me.OwnPokemonNPC.Position.Z + 1.0F) - BattleMapOffset, Screen.Camera.Position, 0.06F, 0.06F, CSng(MathHelper.PiOver4) + 0.05F, Screen.Camera.Yaw, -0.3F, Screen.Camera.Pitch, 0.04F, 0.04F) Return q End Function Public Function FocusOppPokemon() As QueryObject - Dim q As New CameraQueryObject(New Vector3(Me.OppPokemonNPC.Position.X - 1.0F, Me.OppPokemonNPC.Position.Y + 0.5F, Me.OppPokemonNPC.Position.Z + 1.0F) - BattleMapOffset, Screen.Camera.Position, 0.06F, 0.06F, -CSng(MathHelper.PiOver4) - 0.05F, Screen.Camera.Yaw, -0.3F, Screen.Camera.Pitch, 0.04F, 0.04F) + Dim PositionOffsetY As Single = 0.0F + If Me.OppPokemonNPC.Model IsNot Nothing Then + PositionOffsetY = 0.5 + End If + Dim q As New CameraQueryObject(New Vector3(Me.OppPokemonNPC.Position.X - 1.0F, Me.OppPokemonNPC.Position.Y + 0.5F + PositionOffsetY, Me.OppPokemonNPC.Position.Z + 1.0F) - BattleMapOffset, Screen.Camera.Position, 0.06F, 0.06F, -CSng(MathHelper.PiOver4) - 0.05F, Screen.Camera.Yaw, -0.3F, Screen.Camera.Pitch, 0.04F, 0.04F) Return q End Function diff --git a/P3D/Battle/BattleSystemV2/QueryObjects/AnimationQueryObject.vb b/P3D/Battle/BattleSystemV2/QueryObjects/AnimationQueryObject.vb index cbed1e6a3..61d8dd53d 100644 --- a/P3D/Battle/BattleSystemV2/QueryObjects/AnimationQueryObject.vb +++ b/P3D/Battle/BattleSystemV2/QueryObjects/AnimationQueryObject.vb @@ -9,7 +9,6 @@ Public AnimationSequence As List(Of BattleAnimation3D) Public SpawnedEntities As List(Of Entity) Public CurrentEntity As Entity - Public CurrentModel As Entity Public DrawBeforeEntities As Boolean Public Overrides ReadOnly Property IsReady As Boolean @@ -18,7 +17,7 @@ End Get End Property - Public Sub New(ByVal entity As Entity, ByVal BattleFlipped As Boolean, Optional ByVal model As Entity = Nothing, Optional DrawBeforeEntities As Boolean = False) + Public Sub New(ByVal entity As Entity, ByVal BattleFlipped As Boolean, Optional DrawBeforeEntities As Boolean = False) MyBase.New(QueryTypes.MoveAnimation) Me.AnimationSequence = New List(Of BattleAnimation3D) Me.SpawnedEntities = New List(Of Entity) @@ -27,9 +26,6 @@ If entity IsNot Nothing Then Me.CurrentEntity = entity End If - If model IsNot Nothing Then - Me.CurrentModel = model - End If AnimationSequenceBegin() End Sub Public Overrides Sub Draw(ByVal BV2Screen As BattleScreen) @@ -101,7 +97,7 @@ AnimationEnded = True End Sub - Public Function SpawnEntity(ByVal Position As Vector3, ByVal Texture As Texture2D, ByVal Scale As Vector3, ByVal Opacity As Single, Optional ByVal startDelay As Single = 0.0F, Optional ByVal endDelay As Single = 0.0F) As Entity + Public Function SpawnEntity(ByVal Position As Vector3, ByVal Texture As Texture2D, ByVal Scale As Vector3, ByVal Opacity As Single, Optional ByVal startDelay As Single = 0.0F, Optional ByVal endDelay As Single = 0.0F, Optional ModelPath As String = "") As Entity Dim NewPosition As Vector3 If Not Position = Nothing Then If BattleFlipped = True Then @@ -123,6 +119,19 @@ SpawnedEntity.Opacity = Opacity SpawnedEntity.Visible = False + If ModelPath <> "" Then + SpawnedEntity.ModelPath = ModelPath + SpawnedEntity.Model = ModelManager.GetModel(SpawnedEntity.ModelPath) + SpawnedEntity.Scale *= ModelManager.MODELSCALE + If BattleFlipped = True Then + Dim FlipRotation As Integer = Entity.GetRotationFromVector(SpawnedEntity.Rotation) + FlipRotation += 2 + If FlipRotation > 3 Then + FlipRotation -= 4 + End If + SpawnedEntity.Rotation.Y = Entity.GetRotationFromInteger(FlipRotation).Y + End If + End If SpawnedEntities.Add(SpawnedEntity) Return SpawnedEntity @@ -146,22 +155,19 @@ Public Sub AnimationMove(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal SpinXSpeed As Single = 0.1F, Optional ByVal SpinZSpeed As Single = 0.1F, Optional MovementCurve As Integer = 3, Optional MoveYSpeed As Single = 0.0F) Dim MoveEntity As Entity - Dim ModelEntity As Entity = Nothing Dim Destination As Vector3 If Entity Is Nothing Then MoveEntity = CurrentEntity - If Me.CurrentModel IsNot Nothing Then - ModelEntity = Me.CurrentModel - End If Else MoveEntity = Entity End If + If Not BattleFlipped = Nothing Then If BattleFlipped = True Then DestinationX *= -1.0F - DestinationZ *= -1.0F + If SpinZ = True Then SpinXSpeed *= -1.0F SpinZSpeed *= -1.0F @@ -177,21 +183,29 @@ Dim baEntityMove As BAEntityMove = New BAEntityMove(MoveEntity, RemoveEntityAfter, Destination, Speed, SpinX, SpinZ, startDelay, endDelay, SpinXSpeed, SpinZSpeed, MovementCurve, MoveYSpeed) AnimationSequence.Add(baEntityMove) - If ModelEntity IsNot Nothing Then - Dim baModelMove As BAEntityMove = New BAEntityMove(CType(CurrentModel, Entity), False, Destination, Speed, SpinX, SpinZ, startDelay, endDelay, SpinXSpeed, SpinZSpeed, MovementCurve, MoveYSpeed) - AnimationSequence.Add(baModelMove) + End Sub + + Public Sub AnimationSetPosition(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal startDelay As Single, ByVal endDelay As Single) + Dim SetEntity As Entity + Dim SetPosition As Vector3 + + If Entity Is Nothing Then + SetEntity = CurrentEntity + Else + SetEntity = Entity End If + SetPosition = New Vector3(PositionX, PositionY, PositionZ) + BattleScreen.BattleMapOffset + + Dim baEntitySetPosition As BAEntitySetPosition = New BAEntitySetPosition(SetEntity, RemoveEntityAfter, SetPosition, startDelay, endDelay) + AnimationSequence.Add(baEntitySetPosition) + End Sub Public Sub AnimationFade(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal startState As Single = -1.0F) Dim FadeEntity As Entity - Dim FadeModel As Entity = Nothing If Entity Is Nothing Then FadeEntity = CurrentEntity - If Me.CurrentModel IsNot Nothing Then - FadeModel = Me.CurrentModel - End If Else FadeEntity = Entity End If @@ -199,20 +213,11 @@ Dim baEntityOpacity As BAEntityOpacity = New BAEntityOpacity(FadeEntity, RemoveEntityAfter, TransitionSpeed, FadeIn, EndState, startDelay, endDelay, startState) AnimationSequence.Add(baEntityOpacity) - If FadeModel IsNot Nothing Then - Dim baModelOpacity As BAEntityOpacity = New BAEntityOpacity(CType(FadeModel, Entity), False, TransitionSpeed, FadeIn, EndState, startDelay, endDelay, startState) - AnimationSequence.Add(baModelOpacity) - End If - End Sub Public Sub AnimationRotate(Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedX As Single, ByVal RotationSpeedY As Single, ByVal RotationSpeedZ As Single, ByVal EndRotationX As Single, ByVal EndRotationY As Single, ByVal EndRotationZ As Single, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean, ByVal DoReturn As Boolean) Dim RotateEntity As Entity - Dim RotateModel As Entity = Nothing If Entity Is Nothing Then RotateEntity = CurrentEntity - If Me.CurrentModel IsNot Nothing Then - RotateModel = Me.CurrentModel - End If Else RotateEntity = Entity End If @@ -222,21 +227,13 @@ Dim baEntityRotate As BAEntityRotate = New BAEntityRotate(RotateEntity, RemoveEntityAfter, RotationSpeedVector, EndRotation, startDelay, endDelay, DoXRotation, DoYRotation, DoZRotation, DoReturn) AnimationSequence.Add(baEntityRotate) - If RotateModel IsNot Nothing Then - Dim baModelRotate As BAEntityRotate = New BAEntityRotate(CType(RotateModel, Entity), False, RotationSpeedVector, EndRotation, startDelay, endDelay, DoXRotation, DoYRotation, DoZRotation, DoReturn) - AnimationSequence.Add(baModelRotate) - End If End Sub Public Sub AnimationTurnNPC(ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F) Dim TurnNPC As NPC = Nothing - Dim TurnModel As Entity = Nothing If CurrentEntity IsNot Nothing Then TurnNPC = CType(CurrentEntity, NPC) - If Me.CurrentModel IsNot Nothing Then - TurnModel = Me.CurrentModel - End If End If If Not BattleFlipped = Nothing AndAlso BattleFlipped = True Then @@ -244,17 +241,19 @@ TurnSpeed *= -1 End If - Dim BAEntityFaceRotate As BAEntityFaceRotate = New BAEntityFaceRotate(TurnNPC, TurnSteps, startDelay, endDelay, EndFaceRotation, TurnSpeed, TurnDelay, TurnModel) + Dim BAEntityFaceRotate As BAEntityFaceRotate = New BAEntityFaceRotate(TurnNPC, TurnSteps, startDelay, endDelay, EndFaceRotation, TurnSpeed, TurnDelay) AnimationSequence.Add(BAEntityFaceRotate) End Sub Public Sub AnimationScale(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal Anchors As String = "") Dim ScaleEntity As Entity - Dim ScaleModel As Entity = Nothing If Entity Is Nothing Then ScaleEntity = CurrentEntity - If Me.CurrentModel IsNot Nothing Then - ScaleModel = Me.CurrentModel + If ScaleEntity.Model IsNot Nothing Then + EndSizeX *= ModelManager.MODELSCALE + EndSizeY *= ModelManager.MODELSCALE + EndSizeZ *= ModelManager.MODELSCALE + SizeSpeed *= ModelManager.MODELSCALE End If Else ScaleEntity = Entity @@ -264,10 +263,6 @@ Dim EndSize As Vector3 = New Vector3(EndSizeX, EndSizeY, EndSizeZ) Dim baEntityScale As BAEntityScale = New BAEntityScale(ScaleEntity, RemoveEntityAfter, Scale, Grow, EndSize, SizeSpeed, startDelay, endDelay, Anchors) AnimationSequence.Add(baEntityScale) - - If ScaleModel IsNot Nothing Then - Dim baModelScale As BAEntityScale = New BAEntityScale(CType(ScaleModel, Entity), False, Scale, Grow, EndSize, SizeSpeed, startDelay, endDelay, Anchors) - End If End Sub Public Sub AnimationPlaySound(ByVal sound As String, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal stopMusic As Boolean = False, Optional ByVal IsPokemon As Boolean = False) diff --git a/P3D/Battle/BattleSystemV2/QueryObjects/ToggleEntityQueryObject.vb b/P3D/Battle/BattleSystemV2/QueryObjects/ToggleEntityQueryObject.vb index d22a5f5d7..92428f549 100644 --- a/P3D/Battle/BattleSystemV2/QueryObjects/ToggleEntityQueryObject.vb +++ b/P3D/Battle/BattleSystemV2/QueryObjects/ToggleEntityQueryObject.vb @@ -79,16 +79,9 @@ Public Overrides Sub Update(BV2Screen As BattleScreen) If changedIDs = False Then changedIDs = True - - If Me.ownModelID > -1 Then - BV2Screen.OwnPokemonModel.ID = ownModelID - End If If Me.ownNPCID > -1 Then BV2Screen.OwnPokemonNPC.ID = ownNPCID End If - If Me.oppModelID > -1 Then - BV2Screen.OppPokemonModel.ID = oppModelID - End If If Me.oppNPCID > -1 Then BV2Screen.OppPokemonNPC.ID = oppNPCID End If @@ -98,37 +91,34 @@ Case 0 Select Case Me._entity Case BattleEntities.OwnPokemon - If BV2Screen.OwnPokemonNPC.ID = 1 Then - BV2Screen.OwnPokemonNPC.Visible = GetVisible(BV2Screen.OwnPokemonNPC.Visible) - BV2Screen.OwnPokemonModel.Visible = False - Else - BV2Screen.OwnPokemonModel.Visible = GetVisible(BV2Screen.OwnPokemonModel.Visible) - BV2Screen.OwnPokemonNPC.Visible = False - End If + BV2Screen.OwnPokemonNPC.Visible = GetVisible(BV2Screen.OwnPokemonNPC.Visible) Case BattleEntities.OppPokemon - If BV2Screen.OppPokemonNPC.ID = 1 Then - BV2Screen.OppPokemonNPC.Visible = GetVisible(BV2Screen.OppPokemonNPC.Visible) - BV2Screen.OppPokemonModel.Visible = False - Else - BV2Screen.OppPokemonModel.Visible = GetVisible(BV2Screen.OppPokemonModel.Visible) - BV2Screen.OppPokemonNPC.Visible = False - End If + BV2Screen.OppPokemonNPC.Visible = GetVisible(BV2Screen.OppPokemonNPC.Visible) End Select Case 1 Select Case Me._entity Case BattleEntities.OwnPokemon + BV2Screen.OwnPokemonNPC.ModelPath = "" + BV2Screen.OwnPokemonNPC.Model = Nothing + BV2Screen.OwnPokemonNPC.Scale = New Vector3(1) BV2Screen.OwnPokemonNPC.SetupSprite(_newTexture, "", False) + Case BattleEntities.OppPokemon + BV2Screen.OppPokemonNPC.ModelPath = "" + BV2Screen.OppPokemonNPC.Model = Nothing + BV2Screen.OppPokemonNPC.Scale = New Vector3(1) BV2Screen.OppPokemonNPC.SetupSprite(_newTexture, "", False) End Select Case 2 Select Case Me._entity Case BattleEntities.OwnPokemon - BV2Screen.OwnPokemonModel.ModelPath = _newTexture - BV2Screen.OwnPokemonModel.Model = ModelManager.GetModel(BV2Screen.OwnPokemonModel.ModelPath) + BV2Screen.OwnPokemonNPC.Scale = New Vector3(BV2Screen.OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + BV2Screen.OwnPokemonNPC.ModelPath = _newTexture + BV2Screen.OwnPokemonNPC.Model = ModelManager.GetModel(BV2Screen.OwnPokemonNPC.ModelPath) Case BattleEntities.OppPokemon - BV2Screen.OppPokemonModel.ModelPath = _newTexture - BV2Screen.OppPokemonModel.Model = ModelManager.GetModel(BV2Screen.OppPokemonModel.ModelPath) + BV2Screen.OppPokemonNPC.Scale = New Vector3(BV2Screen.OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE + BV2Screen.OppPokemonNPC.ModelPath = _newTexture + BV2Screen.OppPokemonNPC.Model = ModelManager.GetModel(BV2Screen.OppPokemonNPC.ModelPath) End Select End Select _done = True diff --git a/P3D/Entites/Entity.vb b/P3D/Entites/Entity.vb index 91a0d3a8d..5de488eae 100644 --- a/P3D/Entites/Entity.vb +++ b/P3D/Entites/Entity.vb @@ -651,7 +651,7 @@ If part.Effect.GetType().Name.ToLower() = Screen.Effect.GetType().Name.ToLower() Then With CType(part.Effect, BasicEffect) Lighting.UpdateLighting(CType(part.Effect, BasicEffect), True) - + .Alpha = Me.Opacity .DiffuseColor = Screen.Effect.DiffuseColor If Not Screen.Level.World Is Nothing Then diff --git a/P3D/Entites/Other/NPC.vb b/P3D/Entites/Other/NPC.vb index daf0998fd..27067bc18 100644 --- a/P3D/Entites/Other/NPC.vb +++ b/P3D/Entites/Other/NPC.vb @@ -481,8 +481,12 @@ Me.Rotation.Y = Screen.Camera.Yaw End If Else - If Me.Rotation.Y <> faceRotation Then - Me.Rotation.Y = GetRotationFromInteger(faceRotation).Y + Dim ChangeRotation As Integer = faceRotation + 2 + If ChangeRotation > 3 Then + ChangeRotation -= 4 + End If + If Me.Rotation.Y <> ChangeRotation Then + Me.Rotation.Y = GetRotationFromInteger(ChangeRotation).Y End If End If diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj index cbd48021e..c82d192b3 100644 --- a/P3D/P3D.vbproj +++ b/P3D/P3D.vbproj @@ -28207,6 +28207,7 @@ + diff --git a/P3D/Pokemon/Attacks/Attack.vb b/P3D/Pokemon/Attacks/Attack.vb index daf456644..bb67751c1 100644 --- a/P3D/Pokemon/Attacks/Attack.vb +++ b/P3D/Pokemon/Attacks/Attack.vb @@ -2168,18 +2168,16 @@ Dim BattleFlip As Boolean = False Dim CurrentPokemon As Pokemon = BattleScreen.OwnPokemon Dim CurrentEntity As NPC = BattleScreen.OwnPokemonNPC - Dim CurrentModel As Entity = BattleScreen.OwnPokemonModel If own = False Then BattleFlip = True CurrentPokemon = BattleScreen.OppPokemon CurrentEntity = BattleScreen.OppPokemonNPC - CurrentModel = BattleScreen.OppPokemonModel End If - Me.InternalUserPokemonMoveAnimation(BattleScreen, BattleFlip, CurrentPokemon, CurrentEntity, CurrentModel) + Me.InternalUserPokemonMoveAnimation(BattleScreen, BattleFlip, CurrentPokemon, CurrentEntity) End If End Sub - Public Overridable Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overridable Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) 'Override this method in the attack class to insert the move animation query objects into the queue. End Sub @@ -2188,18 +2186,16 @@ Dim BattleFlip As Boolean = False Dim CurrentPokemon As Pokemon = BattleScreen.OppPokemon Dim CurrentEntity As NPC = BattleScreen.OppPokemonNPC - Dim CurrentModel As Entity = BattleScreen.OppPokemonModel If own = False Then BattleFlip = True CurrentPokemon = BattleScreen.OwnPokemon CurrentEntity = BattleScreen.OwnPokemonNPC - CurrentModel = BattleScreen.OwnPokemonModel End If - Me.InternalOpponentPokemonMoveAnimation(BattleScreen, BattleFlip, CurrentPokemon, CurrentEntity, CurrentModel) + Me.InternalOpponentPokemonMoveAnimation(BattleScreen, BattleFlip, CurrentPokemon, CurrentEntity) End If End Sub - Public Overridable Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overridable Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) 'Override this method in the attack class to insert the move animation query objects into the queue. End Sub diff --git a/P3D/Pokemon/Attacks/Fire/Ember.vb b/P3D/Pokemon/Attacks/Fire/Ember.vb index 00ec877a9..ac6c3fcd4 100644 --- a/P3D/Pokemon/Attacks/Fire/Ember.vb +++ b/P3D/Pokemon/Attacks/Fire/Ember.vb @@ -63,7 +63,7 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim TextureYOffset As Integer = 0 If BattleFlip = True Then @@ -80,7 +80,7 @@ BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim TextureYOffset As Integer = 0 If BattleFlip = True Then diff --git a/P3D/Pokemon/Attacks/Grass/Absorb.vb b/P3D/Pokemon/Attacks/Grass/Absorb.vb index 2d5ee4ab3..82a1e07b7 100644 --- a/P3D/Pokemon/Attacks/Grass/Absorb.vb +++ b/P3D/Pokemon/Attacks/Grass/Absorb.vb @@ -92,7 +92,7 @@ End If End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim maxAmount As Integer = 12 Dim currentAmount As Integer = 0 diff --git a/P3D/Pokemon/Attacks/Grass/VineWhip.vb b/P3D/Pokemon/Attacks/Grass/VineWhip.vb index e81217411..eda0e7303 100644 --- a/P3D/Pokemon/Attacks/Grass/VineWhip.vb +++ b/P3D/Pokemon/Attacks/Grass/VineWhip.vb @@ -51,15 +51,15 @@ Me.IsWonderGuardAffected = True '#End End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) - Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) + Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\VineWhip_Start", 0.5, 2.5) MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 0, 0.5) MoveAnimation.AnimationMove(Nothing, False, 0, 0, 0, 0.025, False, False, 0.75, 0) BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\VineWhip_Hit", 0, 2.5) Dim TextureXOffset As Integer = 0 diff --git a/P3D/Pokemon/Attacks/Normal/Attract.vb b/P3D/Pokemon/Attacks/Normal/Attract.vb index 8aa0d4f2b..169054fa9 100644 --- a/P3D/Pokemon/Attacks/Normal/Attract.vb +++ b/P3D/Pokemon/Attacks/Normal/Attract.vb @@ -76,7 +76,7 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) For i = 0 To 6 Dim HeartEntity = MoveAnimation.SpawnEntity(Nothing, TextureManager.GetTexture("Textures\Battle\Normal\Attract"), New Vector3(0.25F), 1.0F, CSng(i * 0.2)) @@ -89,7 +89,7 @@ BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) For i = 0 To 6 diff --git a/P3D/Pokemon/Attacks/Normal/Bind.vb b/P3D/Pokemon/Attacks/Normal/Bind.vb index f890313ed..848e0441f 100644 --- a/P3D/Pokemon/Attacks/Normal/Bind.vb +++ b/P3D/Pokemon/Attacks/Normal/Bind.vb @@ -87,7 +87,7 @@ Namespace BattleSystem.Moves.Normal End If End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Bind", 5.0F, 0) Dim BindEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Bind", New Rectangle(0, 0, 80, 40), ""), New Vector3(1.0F, 0.5F, 1.0F), 1, 0, 0.75) diff --git a/P3D/Pokemon/Attacks/Normal/Growl.vb b/P3D/Pokemon/Attacks/Normal/Growl.vb index 588d838d9..cfa54b8e0 100644 --- a/P3D/Pokemon/Attacks/Normal/Growl.vb +++ b/P3D/Pokemon/Attacks/Normal/Growl.vb @@ -62,7 +62,7 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound(CStr(CurrentPokemon.Number), 0, 0,, True) diff --git a/P3D/Pokemon/Attacks/Normal/Leer.vb b/P3D/Pokemon/Attacks/Normal/Leer.vb index b26faddb2..788b5d97d 100644 --- a/P3D/Pokemon/Attacks/Normal/Leer.vb +++ b/P3D/Pokemon/Attacks/Normal/Leer.vb @@ -63,7 +63,7 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Leer", 0, 0) Dim SpawnEntity = MoveAnimation.SpawnEntity(New Vector3(0, 0.1, 0.1), TextureManager.GetTexture("Textures\Battle\Normal\Leer"), New Vector3(0.5F), 1.0F, 0, 2) @@ -74,8 +74,8 @@ MoveAnimation.AnimationFade(SpawnEntity, True, 1.0F, False, 0.0F, 2, 0) BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) - Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) + Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 0, 0.5) MoveAnimation.AnimationMove(Nothing, False, 0, 0, 0.1, 0.025, False, False, 0.75, 0.5) MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 1.75, 0.5) diff --git a/P3D/Pokemon/Attacks/Normal/Pound.vb b/P3D/Pokemon/Attacks/Normal/Pound.vb index 57048ceba..e8a75c60c 100644 --- a/P3D/Pokemon/Attacks/Normal/Pound.vb +++ b/P3D/Pokemon/Attacks/Normal/Pound.vb @@ -55,7 +55,7 @@ Me.AIField2 = AIField.Nothing End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Pound", 0.5, 2.5) Dim PoundEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Pound"), New Vector3(0.5F), 1, 0, 3) diff --git a/P3D/Pokemon/Attacks/Normal/Scratch.vb b/P3D/Pokemon/Attacks/Normal/Scratch.vb index 7f702314c..b8ee2ed9a 100644 --- a/P3D/Pokemon/Attacks/Normal/Scratch.vb +++ b/P3D/Pokemon/Attacks/Normal/Scratch.vb @@ -52,7 +52,7 @@ '#End End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Scratch", 0.5, 2.5) Dim TextureXOffset As Integer = 0 diff --git a/P3D/Pokemon/Attacks/Normal/Tackle.vb b/P3D/Pokemon/Attacks/Normal/Tackle.vb index 37993b5d5..3e144c64a 100644 --- a/P3D/Pokemon/Attacks/Normal/Tackle.vb +++ b/P3D/Pokemon/Attacks/Normal/Tackle.vb @@ -52,14 +52,14 @@ '#End End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) - Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) + Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationMove(Nothing, False, -0.5F, 0, 0, 0.3F, False, False, 0, 0,,, 2) MoveAnimation.AnimationMove(Nothing, False, 0, 0, 0, 0.3F, False, False, 1, 0,,, 2) BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Tackle", 0, 0) Dim SpawnEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Tackle"), New Vector3(0.5F), 1.0F, 0, 2) diff --git a/P3D/Pokemon/Attacks/Normal/TailWhip.vb b/P3D/Pokemon/Attacks/Normal/TailWhip.vb index f25fa923a..bfd8b53f7 100644 --- a/P3D/Pokemon/Attacks/Normal/TailWhip.vb +++ b/P3D/Pokemon/Attacks/Normal/TailWhip.vb @@ -62,8 +62,8 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) - Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) + Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationTurnNPC(2, 0, 0, 1, -1) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\TailWhip", 1, 0) MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 1, 0.5) diff --git a/P3D/Pokemon/Attacks/Normal/Wrap.vb b/P3D/Pokemon/Attacks/Normal/Wrap.vb index 1a5e0f99f..d5a2d6b38 100644 --- a/P3D/Pokemon/Attacks/Normal/Wrap.vb +++ b/P3D/Pokemon/Attacks/Normal/Wrap.vb @@ -87,7 +87,7 @@ End If End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Wrap", 5.0F, 0) Dim WrapEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Wrap", New Rectangle(0, 0, 80, 40), ""), New Vector3(1.0F, 0.5F, 1.0F), 1, 0, 0.75) diff --git a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb index 28315724f..1eb49245d 100644 --- a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb +++ b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb @@ -65,7 +65,7 @@ End If End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim TextureYOffset As Integer = 0 @@ -80,7 +80,7 @@ BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim TextureYOffset As Integer = 0 diff --git a/P3D/Pokemon/Attacks/Water/Clamp.vb b/P3D/Pokemon/Attacks/Water/Clamp.vb index 8ee63149a..cb9c32e5d 100644 --- a/P3D/Pokemon/Attacks/Water/Clamp.vb +++ b/P3D/Pokemon/Attacks/Water/Clamp.vb @@ -87,7 +87,7 @@ Namespace BattleSystem.Moves.Water End If End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim offsetLeft As Single = -0.35 Dim offsetRight As Single = 0.35 diff --git a/P3D/Pokemon/Attacks/Water/WaterGun.vb b/P3D/Pokemon/Attacks/Water/WaterGun.vb index 5fcde42a9..8720fe785 100644 --- a/P3D/Pokemon/Attacks/Water/WaterGun.vb +++ b/P3D/Pokemon/Attacks/Water/WaterGun.vb @@ -52,20 +52,20 @@ '#End End Sub - Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) Dim WaterEntity = MoveAnimation.SpawnEntity(New Vector3(0), TextureManager.GetTexture("Textures\Battle\Water\WaterGun", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.5F), 0.75F) MoveAnimation.AnimationMove(WaterEntity, True, 2, 0.5, 0, 0.075, False, False, 0, 0,,,, 0.05) MoveAnimation.AnimationPlaySound("Battle\Attacks\Water\Watergun_Start", 0, 0) BattleScreen.BattleQuery.Add(MoveAnimation) End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip) - Dim WaterEntity = MoveAnimation.SpawnEntity(New Vector3(-2, 1, 0), TextureManager.GetTexture("Textures\Battle\Water\WaterGun", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.5F), 0.75F) + Dim WaterEntity = MoveAnimation.SpawnEntity(New Vector3(-2, 1, 0), TextureManager.GetTexture("Textures\Battle\Water\WaterGun", New Rectangle(0, 0, 16, 16), ""), New Vector3(0.5F), 0.5F) MoveAnimation.AnimationMove(WaterEntity, True, 0, 0, 0, 0.075, False, False, 0, 0,,,, 0.035) MoveAnimation.AnimationPlaySound("Battle\Attacks\Water\Watergun_Hit", 3, 0) - Dim HitEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Water\WaterGun", New Rectangle(0, 16, 16, 16), ""), New Vector3(0.5F), 0.75F, 3, 1) + Dim HitEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Water\WaterGun", New Rectangle(0, 16, 16, 16), ""), New Vector3(0.5F), 0.5F, 3, 1) MoveAnimation.AnimationFade(HitEntity, True, 1.0F, False, 0.0F, 5, 0) Dim WaterDrop1Position As Vector3 = New Vector3(-0.25, 0.25, -0.25) diff --git a/P3D/Pokemon/Attacks/Water/Whirlpool.vb b/P3D/Pokemon/Attacks/Water/Whirlpool.vb index 54e6a4caf..53a215d2a 100644 --- a/P3D/Pokemon/Attacks/Water/Whirlpool.vb +++ b/P3D/Pokemon/Attacks/Water/Whirlpool.vb @@ -99,8 +99,8 @@ Namespace BattleSystem.Moves.Water End If End If End Sub - Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity) - Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip,, True) + Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC) + Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, True) MoveAnimation.AnimationPlaySound("Battle\Attacks\Water\Whirlpool", 0.0F, 0) Dim WhirlpoolEntity As Entity = MoveAnimation.SpawnEntity(New Vector3(0, -0.3F, 0), TextureManager.GetTexture("Textures\Battle\Water\Whirlpool"), New Vector3(0.0F), 1.0F, 0.0F, 0.0F) MoveAnimation.AnimationRotate(WhirlpoolEntity, False, CSng(MathHelper.Pi * 1.5), 0, 0, CSng(MathHelper.Pi * 1.5), 0, 0, 0, 0, True, False, False, False) diff --git a/P3D/Screens/Battle/BattleCatchScreen.vb b/P3D/Screens/Battle/BattleCatchScreen.vb index fd1c294ff..d4c7d4503 100644 --- a/P3D/Screens/Battle/BattleCatchScreen.vb +++ b/P3D/Screens/Battle/BattleCatchScreen.vb @@ -17,7 +17,6 @@ Dim p As Pokemon - Dim ModelVisible As Boolean = True Dim SpriteVisible As Boolean = False Dim BattleScreen As BattleSystem.BattleScreen @@ -34,7 +33,6 @@ Me.BattleScreen = BattleScreen p = BattleScreen.OppPokemon - Me.ModelVisible = BattleScreen.OppPokemonModel.Visible Me.SpriteVisible = BattleScreen.OppPokemonNPC.Visible SetCamera() @@ -47,11 +45,7 @@ Dim RenderObjects As New List(Of Entity) - If BattleScreen.OppPokemonModel IsNot Nothing Then - RenderObjects.Add(BattleScreen.OppPokemonModel) - Else - RenderObjects.Add(BattleScreen.OppPokemonNPC) - End If + RenderObjects.Add(BattleScreen.OppPokemonNPC) If RenderObjects.Count > 0 Then RenderObjects = (From r In RenderObjects Order By r.CameraDistance Descending).ToList() @@ -192,9 +186,6 @@ nextIndex: Loop While SmokeParticlesClose <= 38 ' Pokémon Shrinks CatchAnimation.AnimationScale(BattleScreen.OppPokemonNPC, False, False, 0.0F, 0.0F, 0.0F, 0.035F, 3, 0) - If BattleScreen.OppPokemonModel IsNot Nothing Then - CatchAnimation.AnimationScale(BattleScreen.OppPokemonModel, False, False, 0.0F, 0.0F, 0.0F, 0.035F, 3, 0) - End If ' Ball falls CatchAnimation.AnimationMove(BallEntity, False, 3, -0.35, 0, 0.1F, False, False, 8, 0) @@ -242,9 +233,7 @@ nextIndex: ' Pokemon appears CatchAnimation.AnimationScale(BattleScreen.OppPokemonNPC, False, True, PokemonScale.X, PokemonScale.Y, PokemonScale.Z, 0.035F, 12 + Shakes.Count * 10, 0) - If BattleScreen.OppPokemonModel IsNot Nothing Then - CatchAnimation.AnimationScale(BattleScreen.OppPokemonModel, False, True, PokemonScale.X, PokemonScale.Y, PokemonScale.Z, 0.035F, 12 + Shakes.Count * 10, 0) - End If + End If AnimationList.Add(CatchAnimation)