P3D-Legacy/P3D/Battle/BattleSystemV2/QueryObjects/PlaySoundQueryObject.vb

67 lines
2.2 KiB
VB.net

Namespace BattleSystem
Public Class PlaySoundQueryObject
Inherits QueryObject
Dim _sound As String = ""
Dim _isPokemonSound As Boolean = False
Dim _crySuffix As String = ""
Dim _delay As Single = 0.0F
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean, Optional ByVal CrySuffix As String = "")
Me.New(sound, isPokemonSound, 0.0F, CrySuffix)
End Sub
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean, ByVal delay As Single, Optional ByVal CrySuffix As String = "")
MyBase.New(QueryTypes.PlaySound)
Me._sound = sound
Me._isPokemonSound = isPokemonSound
Me._crySuffix = CrySuffix
Me._delay = delay
Me.PassThis = True
End Sub
Public Overrides Sub Update(BV2Screen As BattleScreen)
If Me._delay > 0.0F Then
Me._delay -= 0.1F
If Me._delay <= 0.0F Then
Me.InternalPlaySound()
End If
Else
Me.InternalPlaySound()
End If
End Sub
Private Sub InternalPlaySound()
If _isPokemonSound = True Then
SoundManager.PlayPokemonCry(CInt(_sound), _crySuffix)
Else
SoundManager.PlaySound(Me._sound, False)
End If
End Sub
Public Overrides ReadOnly Property IsReady As Boolean
Get
Return Me._delay <= 0.0F
End Get
End Property
Public Overrides Function NeedForPVPData() As Boolean
Return True
End Function
Public Shared Shadows Function FromString(ByVal input As String) As QueryObject
Dim d() As String = input.Split(CChar("|"))
Return New PlaySoundQueryObject(d(0), CBool(d(1)), CSng(d(2).Replace(".", GameController.DecSeparator)))
End Function
Public Overrides Function ToString() As String
Return "{SOUND|" & Me._sound & "|" & Me._isPokemonSound.ToNumberString() & "|" & Me._delay.ToString().Replace(GameController.DecSeparator, ".") & "}"
End Function
End Class
End Namespace