diff --git a/P3D/Battle/BattleSystemV2/Battle.vb b/P3D/Battle/BattleSystemV2/Battle.vb
index 2b69ba9cc..6247835f1 100644
--- a/P3D/Battle/BattleSystemV2/Battle.vb
+++ b/P3D/Battle/BattleSystemV2/Battle.vb
@@ -3978,8 +3978,10 @@
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
If own = False Then
p = BattleScreen.OppPokemon
+ pNPC = BattleScreen.OppPokemonNPC
End If
If p.HP > 0 And p.Status <> Pokemon.StatusProblems.Fainted Then
@@ -3996,6 +3998,13 @@
BattleScreen.BattleQuery.Add(New PlaySoundQueryObject(sound, False, 0.0F))
End If
+ Dim HitAnimation As AnimationQueryObject = New AnimationQueryObject(CType(pNPC, NPC), own)
+ HitAnimation.AnimationFadePokemonEntity(1, False, 0, 0, 0)
+ HitAnimation.AnimationFadePokemonEntity(1, True, 1, 1, 0)
+ HitAnimation.AnimationFadePokemonEntity(1, False, 0, 2, 0)
+ HitAnimation.AnimationFadePokemonEntity(1, True, 1, 3, 0)
+ BattleScreen.BattleQuery.Add(HitAnimation)
+
If own = True Then
BattleScreen.BattleQuery.Add(New MathHPQueryObject(p.HP, p.MaxHP, HPAmount, New Vector2(200, 256)))
Else
diff --git a/P3D/Content/Sounds/Battle/Attacks/Thunderbolt.wav b/P3D/Content/Sounds/Battle/Attacks/Electric/Thunderbolt.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Thunderbolt.wav
rename to P3D/Content/Sounds/Battle/Attacks/Electric/Thunderbolt.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Ember_Hit.wav b/P3D/Content/Sounds/Battle/Attacks/Fire/Ember_Hit.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Ember_Hit.wav
rename to P3D/Content/Sounds/Battle/Attacks/Fire/Ember_Hit.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Ember_Start.wav b/P3D/Content/Sounds/Battle/Attacks/Fire/Ember_Start.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Ember_Start.wav
rename to P3D/Content/Sounds/Battle/Attacks/Fire/Ember_Start.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Fly_Hit.wav b/P3D/Content/Sounds/Battle/Attacks/Flying/Fly_Hit.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Fly_Hit.wav
rename to P3D/Content/Sounds/Battle/Attacks/Flying/Fly_Hit.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Fly_Start.wav b/P3D/Content/Sounds/Battle/Attacks/Flying/Fly_Start.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Fly_Start.wav
rename to P3D/Content/Sounds/Battle/Attacks/Flying/Fly_Start.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Grass/Absorb.wav b/P3D/Content/Sounds/Battle/Attacks/Grass/Absorb.wav
new file mode 100644
index 000000000..84c0f3f60
Binary files /dev/null and b/P3D/Content/Sounds/Battle/Attacks/Grass/Absorb.wav differ
diff --git a/P3D/Content/Sounds/Battle/Attacks/Pound.wav b/P3D/Content/Sounds/Battle/Attacks/Normal/Pound.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Pound.wav
rename to P3D/Content/Sounds/Battle/Attacks/Normal/Pound.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/Tackle.wav b/P3D/Content/Sounds/Battle/Attacks/Normal/Tackle.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/Tackle.wav
rename to P3D/Content/Sounds/Battle/Attacks/Normal/Tackle.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/PoisonSting_Hit.wav b/P3D/Content/Sounds/Battle/Attacks/Poison/PoisonSting_Hit.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/PoisonSting_Hit.wav
rename to P3D/Content/Sounds/Battle/Attacks/Poison/PoisonSting_Hit.wav
diff --git a/P3D/Content/Sounds/Battle/Attacks/PoisonSting_Start.wav b/P3D/Content/Sounds/Battle/Attacks/Poison/PoisonSting_Start.wav
similarity index 100%
rename from P3D/Content/Sounds/Battle/Attacks/PoisonSting_Start.wav
rename to P3D/Content/Sounds/Battle/Attacks/Poison/PoisonSting_Start.wav
diff --git a/P3D/Content/Textures/Battle/Grass/Absorb.png b/P3D/Content/Textures/Battle/Grass/Absorb.png
new file mode 100644
index 000000000..1d4a6efbc
Binary files /dev/null and b/P3D/Content/Textures/Battle/Grass/Absorb.png differ
diff --git a/P3D/P3D.vbproj b/P3D/P3D.vbproj
index f1927c233..7b6910788 100644
--- a/P3D/P3D.vbproj
+++ b/P3D/P3D.vbproj
@@ -14665,31 +14665,34 @@
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
-
+
+ PreserveNewest
+
+
PreserveNewest
@@ -15379,6 +15382,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/P3D/Pokemon/Attacks/Fire/Ember.vb b/P3D/Pokemon/Attacks/Fire/Ember.vb
index bb5fae6fe..6719f780d 100644
--- a/P3D/Pokemon/Attacks/Fire/Ember.vb
+++ b/P3D/Pokemon/Attacks/Fire/Ember.vb
@@ -66,7 +66,7 @@
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, own)
MoveAnimation.AnimationSpawnMovingEntity(0.0, 0, 0.0, "Textures\Battle\Fire\FireBall", 0.5, 0.5, 0.5, 2.0, 0.0, 0.0, 0.05, False, True, 0.0, 0.0,, -0.5, 0)
- MoveAnimation.AnimationPlaySound("Battle\Attacks\Ember_Start", 0, 0)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Fire\Ember_Start", 0, 0)
For i = 0 To 12
MoveAnimation.AnimationSpawnFadingEntity(CSng(i * 0.2), 0.0, 0.0, "Textures\Battle\Fire\Smoke", 0.2, 0.2, 0.2, 0.02, False, 0.0, CSng(i * 0.2), 0.0)
i += 1
@@ -82,7 +82,7 @@
MoveAnimation.AnimationSpawnFadingEntity(CSng(3.0 - i * 0.2), 0.0, 0.0, "Textures\Battle\Fire\Smoke", 0.2, 0.2, 0.2, 0.02, False, 0.0, CSng(i * 0.2), 0.0)
i += 1
Next
- MoveAnimation.AnimationPlaySound("Battle\Attacks\Ember_Hit", 2, 0)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Fire\Ember_Hit", 2, 0)
MoveAnimation.AnimationSpawnFadingEntity(-0.25, -0.25, -0.25, "Textures\Battle\Fire\Ember,0,0,32,32", 0.5, 0.5, 0.5, 0.02, False, 1.0, 1, 1)
MoveAnimation.AnimationSpawnFadingEntity(0.25, -0.25, 0.25, "Textures\Battle\Fire\Ember,0,0,32,32", 0.5, 0.5, 0.5, 0.02, False, 1.0, 1, 1)
MoveAnimation.AnimationSpawnFadingEntity(0.25, -0.25, -0.25, "Textures\Battle\Fire\Ember,0,0,32,32", 0.5, 0.5, 0.5, 0.02, False, 1.0, 1, 1)
diff --git a/P3D/Pokemon/Attacks/Grass/Absorb.vb b/P3D/Pokemon/Attacks/Grass/Absorb.vb
index 4c0c2f7b7..a63495b58 100644
--- a/P3D/Pokemon/Attacks/Grass/Absorb.vb
+++ b/P3D/Pokemon/Attacks/Grass/Absorb.vb
@@ -92,6 +92,22 @@
End If
End Sub
+ Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
+ Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, own)
+ Dim maxAmount As Integer = 8
+ Dim currentAmount As Integer = 0
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\Absorb", 0, 0)
+ While currentAmount <= maxAmount
+ Dim yPos As Single = CSng(Random.NextDouble() * 0.5)
+ Dim zPos As Single = CSng(Random.Next(-5, 5) * 0.15)
+ MoveAnimation.AnimationSpawnMovingEntity(0.0, 0, 0.0, "Textures\Battle\Grass\Absorb", 0.35, 0.35, 0.35, 1.5, yPos, zPos, 0.03, False, True, CSng(currentAmount), 0.0, 0.1, 0.5)
+ Threading.Interlocked.Increment(currentAmount)
+ End While
+
+ BattleScreen.BattleQuery.Add(MoveAnimation)
+ End Sub
End Class
+
+
End Namespace
diff --git a/P3D/Pokemon/Attacks/Normal/Pound.vb b/P3D/Pokemon/Attacks/Normal/Pound.vb
index 467c5891d..25785556e 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 InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
+ Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, own)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Pound", 0.5, 2.5)
MoveAnimation.AnimationSpawnFadingEntity(0, -0.25, 0, "Textures\Battle\Normal\Pound", 0.5, 0.5, 0.5, 0.02, False, 1.0, 0, 3)
diff --git a/P3D/Pokemon/Attacks/Normal/Tackle.vb b/P3D/Pokemon/Attacks/Normal/Tackle.vb
index 6d8954700..c3a075d95 100644
--- a/P3D/Pokemon/Attacks/Normal/Tackle.vb
+++ b/P3D/Pokemon/Attacks/Normal/Tackle.vb
@@ -61,7 +61,7 @@
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, own)
- MoveAnimation.AnimationPlaySound("Battle\Attacks\Tackle", 0, 2)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Tackle", 0, 2)
MoveAnimation.AnimationSpawnFadingEntity(0, -0.25, 0, "Textures\Battle\Normal\Tackle", 0.5, 0.5, 0.5, 0.02, False, 1.0, 0, 2)
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
diff --git a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
index 36622416b..9684f8379 100644
--- a/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
+++ b/P3D/Pokemon/Attacks/Poison/PoisonSting.vb
@@ -68,7 +68,7 @@
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal own As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, own)
MoveAnimation.AnimationSpawnMovingEntity(0.0, 0, 0.0, "Textures\Battle\Poison\Stinger", 0.5, 0.5, 0.5, 2.0, 0.0, 0.0, 0.05, False, False, 0.0, 0.0,,, 0)
- MoveAnimation.AnimationPlaySound("Battle\Attacks\PoisonSting_Start", 0, 0)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Poison\PoisonSting_Start", 0, 0)
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
@@ -77,7 +77,7 @@
MoveAnimation.AnimationSpawnMovingEntity(2.0, 0, 0.0, "Textures\Battle\Poison\Stinger", 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.05, False, False, 0.0, 0.0,,, 0)
- MoveAnimation.AnimationPlaySound("Battle\Attacks\PoisonSting_Hit", 1, 0)
+ MoveAnimation.AnimationPlaySound("Battle\Attacks\Poison\PoisonSting_Hit", 1, 0)
MoveAnimation.AnimationSpawnFadingEntity(-0.25, -0.25, -0.25, "Textures\Battle\Poison\Bubble,0,0,32,32", 0.5, 0.5, 0.5, 0.02, False, 1.0, 1, 1)
MoveAnimation.AnimationSpawnFadingEntity(-0.25, -0.25, -0.25, "Textures\Battle\Poison\Bubble,0,32,32,32", 0.5, 0.5, 0.5, 0.02, False, 1.0, 2, 1)
diff --git a/P3D/Screens/Pokemon/HatchEggScreen.vb b/P3D/Screens/Pokemon/HatchEggScreen.vb
index e4f2c31f1..7e1aa39c7 100644
--- a/P3D/Screens/Pokemon/HatchEggScreen.vb
+++ b/P3D/Screens/Pokemon/HatchEggScreen.vb
@@ -72,7 +72,7 @@
If Stage = 6 Then
SoundManager.PlaySound("egg_hatch")
Else
- SoundManager.PlaySound("Battle\Attacks\Pound")
+ SoundManager.PlaySound("Battle\Attacks\Normal\Pound")
End If
Egg = GetEggTexture()
diff --git a/P3D/World/World.vb b/P3D/World/World.vb
index a53cc8e06..39a864436 100644
--- a/P3D/World/World.vb
+++ b/P3D/World/World.vb
@@ -717,7 +717,7 @@ endsub:
If Core.Random.Next(0, 250) = 0 Then
Dim pitch As Single = -(Core.Random.Next(8, 11) / 10.0F)
Debug.Print(pitch.ToString())
- SoundManager.PlaySound("Battle\Attacks\Thunderbolt", pitch, 0F, SoundManager.Volume, False)
+ SoundManager.PlaySound("Battle\Attacks\Electric\Thunderbolt", pitch, 0F, SoundManager.Volume, False)
End If
End If