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