diff --git a/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Hit.wav b/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Hit.wav
new file mode 100644
index 000000000..31939f228
Binary files /dev/null and b/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Hit.wav differ
diff --git a/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Start.wav b/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Start.wav
new file mode 100644
index 000000000..71c2e2ec8
Binary files /dev/null and b/P3D/Content/Sounds/Battle/Attacks/Grass/VineWhip_Start.wav differ
diff --git a/P3D/Content/Textures/Battle/Grass/VineWhip.png b/P3D/Content/Textures/Battle/Grass/VineWhip.png
new file mode 100644
index 000000000..22a450abe
Binary files /dev/null and b/P3D/Content/Textures/Battle/Grass/VineWhip.png differ
diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj
index b14834b21..3e4cc334b 100644
--- a/P3D/P3D.vbproj
+++ b/P3D/P3D.vbproj
@@ -14729,6 +14729,12 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
@@ -14795,6 +14801,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/P3D/Pokemon/Attacks/Grass/VineWhip.vb b/P3D/Pokemon/Attacks/Grass/VineWhip.vb
index 6d405ba82..74cdd7d97 100644
--- a/P3D/Pokemon/Attacks/Grass/VineWhip.vb
+++ b/P3D/Pokemon/Attacks/Grass/VineWhip.vb
@@ -51,7 +51,27 @@
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 ModelEntity)
+ Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel)
+ 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 ModelEntity)
+ Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\VineWhip_Hit", 0, 2.5)
+ Dim TextureXOffset As Integer = 0
+ If BattleFlip = True Then
+ TextureXOffset = 32
+ End If
+ Dim VineWhipEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Grass\VineWhip", New Rectangle(TextureXOffset, 0, 32, 32), ""), New Vector3(0.5F), 1, 0, 0.5)
+ MoveAnimation.AnimationChangeTexture(VineWhipEntity, False, TextureManager.GetTexture("Textures\Battle\Grass\VineWhip", New Rectangle(TextureXOffset, 32, 32, 32), ""), 0.5, 0.5)
+ MoveAnimation.AnimationChangeTexture(VineWhipEntity, False, TextureManager.GetTexture("Textures\Battle\Grass\VineWhip", New Rectangle(TextureXOffset, 64, 32, 32), ""), 1, 0.5)
+ MoveAnimation.AnimationChangeTexture(VineWhipEntity, True, TextureManager.GetTexture("Textures\Battle\Grass\VineWhip", New Rectangle(TextureXOffset, 96, 32, 32), ""), 1.5, 0.5)
+ BattleScreen.BattleQuery.Add(MoveAnimation)
+ End Sub
End Class
End Namespace
\ No newline at end of file
diff --git a/P3D/Pokemon/Attacks/Normal/Scratch.vb b/P3D/Pokemon/Attacks/Normal/Scratch.vb
index 23c4eb4b5..4cc5328ea 100644
--- a/P3D/Pokemon/Attacks/Normal/Scratch.vb
+++ b/P3D/Pokemon/Attacks/Normal/Scratch.vb
@@ -59,9 +59,9 @@
If BattleFlip = True Then
TextureXOffset = 32
End If
- Dim ScratchEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 0, 32, 32), ""), New Vector3(0.5F), 1, 0, 1)
- MoveAnimation.AnimationChangeTexture(ScratchEntity, False, TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 32, 32, 32), ""), 1, 1)
- MoveAnimation.AnimationChangeTexture(ScratchEntity, True, TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 64, 32, 32), ""), 1, 1)
+ Dim ScratchEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 0, 32, 32), ""), New Vector3(0.5F), 1, 0, 0.5)
+ MoveAnimation.AnimationChangeTexture(ScratchEntity, False, TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 32, 32, 32), ""), 0.5, 0.5)
+ MoveAnimation.AnimationChangeTexture(ScratchEntity, True, TextureManager.GetTexture("Textures\Battle\Normal\Scratch", New Rectangle(TextureXOffset, 64, 32, 32), ""), 1, 0.5)
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
diff --git a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
index 50517801e..bc2c39043 100644
--- a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
+++ b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
@@ -87,22 +87,30 @@
If BattleFlip = True Then
TextureYOffset = 16
End If
+
+ Dim Bubble1Position As Vector3 = New Vector3(-0.25, -0.25, -0.25)
+ Dim Bubble2Position As Vector3 = New Vector3(0, -0.25, 0)
+ Dim Bubble3Position As Vector3 = New Vector3(0.25, -0.25, 0.25)
+ If BattleFlip = True Then
+ Bubble1Position = New Vector3(-0.25, -0.25, 0.25)
+ Bubble3Position = New Vector3(0.25, -0.25, -0.25)
+ End If
Dim StingerEntity As Entity = MoveAnimation.SpawnEntity(New Vector3(-2.0, 0, 0.0), TextureManager.GetTexture("Textures\Battle\Poison\Stinger", New Rectangle(0, TextureYOffset, 16, 16), ""), New Vector3(0.2F), 1)
MoveAnimation.AnimationMove(StingerEntity, True, 0.0, 0.0, 0.0, 0.08, False, False, 0.0, 0.0)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Poison\PoisonSting_Hit", 1, 0)
- Dim BubbleEntity1 As Entity = MoveAnimation.SpawnEntity(New Vector3(-0.25, -0.25, -0.25), TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 2, 1)
+ Dim BubbleEntity1 As Entity = MoveAnimation.SpawnEntity(Bubble1Position, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 2, 1)
MoveAnimation.AnimationChangeTexture(BubbleEntity1, False, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 32, 32, 32), ""), 3, 1)
- Dim BubbleEntity2 As Entity = MoveAnimation.SpawnEntity(New Vector3(0, -0.25, 0), TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 3, 1)
+ Dim BubbleEntity2 As Entity = MoveAnimation.SpawnEntity(Bubble2Position, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 3, 1)
MoveAnimation.AnimationChangeTexture(BubbleEntity1, True, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 64, 32, 32), ""), 4, 1)
MoveAnimation.AnimationChangeTexture(BubbleEntity2, False, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 32, 32, 32), ""), 4, 1)
- Dim BubbleEntity3 As Entity = MoveAnimation.SpawnEntity(New Vector3(0.25, -0.25, 0.25), TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 4, 1)
+ Dim BubbleEntity3 As Entity = MoveAnimation.SpawnEntity(Bubble3Position, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 0, 32, 32), ""), New Vector3(0.5F), 1, 4, 1)
MoveAnimation.AnimationChangeTexture(BubbleEntity2, True, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 64, 32, 32), ""), 5, 1)
MoveAnimation.AnimationChangeTexture(BubbleEntity3, False, TextureManager.GetTexture("Textures\Battle\Poison\Bubble", New Rectangle(0, 32, 32, 32), ""), 5, 1)