Added additional Warp SFX, fixed HoleBlock + sfx

This commit is contained in:
JappaWakka 2024-07-05 11:11:33 +02:00
parent 7de8cb3973
commit 15ee853001
12 changed files with 159 additions and 24 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -64,13 +64,21 @@
Dim WarpTurns As Integer = CInt(Me.AdditionalValue.GetSplit(5))
Dim FallSpeed As String = "2.25"
If Me.AdditionalValue.Split(",").Count >= 7 Then
FallSpeed = Me.AdditionalValue.GetSplit(6)
If Me.AdditionalValue.GetSplit(6) <> "" Then
FallSpeed = Me.AdditionalValue.GetSplit(6)
End If
End If
Dim CameraFollows As Boolean = False
If Me.AdditionalValue.Split(",").Count >= 8 Then
If Me.AdditionalValue.GetSplit(7) <> "" Then
CameraFollows = CBool(Me.AdditionalValue.GetSplit(7))
End If
End If
If Me.AdditionalValue.Split(",").Count >= 8 Then
If Me.AdditionalValue.Split(",").Count >= 9 Then
Dim validRotations As New List(Of Integer)
Dim rotationData() As String = Me.AdditionalValue.GetSplit(7, ",").Split(CChar("|"))
Dim rotationData() As String = Me.AdditionalValue.GetSplit(8, ",").Split(CChar("|"))
For Each Element As String In rotationData
validRotations.Add(CInt(Element))
Next
@ -98,26 +106,37 @@
s &= "@Player.SetMovement(0,-1,0)" & Environment.NewLine &
"@Player.DoWalkAnimation(0)" & Environment.NewLine &
"@Sound.Play(Drop_Fall)" & Environment.NewLine &
"@Player.SetSpeed(" & FallSpeed & ")" & Environment.NewLine &
"@Player.Move(2)" & Environment.NewLine &
"@Player.SetOpacity(0)" & Environment.NewLine &
"@Player.ResetMovement" & Environment.NewLine &
"@Level.Wait(30)" & Environment.NewLine &
"@Screen.FadeOut(35)" & Environment.NewLine &
"@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ")" & Environment.NewLine &
"@Screen.FadeOut(35)" & Environment.NewLine
If CameraFollows = False Then
s &= "@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ",3)" & Environment.NewLine &
"@Level.Update" & Environment.NewLine &
"@Camera.Defix" & Environment.NewLine &
"@Camera.Reset" & Environment.NewLine &
"@Camera.SetYaw(0)" & Environment.NewLine &
"@Camera.Update" & Environment.NewLine &
"@Camera.Fix" & Environment.NewLine &
"@Player.Warp(" & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & ")" & Environment.NewLine &
"@Player.SetOpacity(1)" & Environment.NewLine &
"@Player.Warp(" & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & ")" & Environment.NewLine
Else
s &= "@Player.Warp(" & Destination & "," & CStr(WarpPosition.X).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Y + DropDistance).Replace(GameController.DecSeparator, ".") & "," & CStr(WarpPosition.Z).Replace(GameController.DecSeparator, ".") & "," & WarpTurns & ",3)" & Environment.NewLine &
"@Level.Update" & Environment.NewLine &
"@Camera.Defix" & Environment.NewLine &
"@Camera.Reset" & Environment.NewLine &
"@Camera.SetYaw(0)" & Environment.NewLine &
"@Camera.Update" & Environment.NewLine
End If
s &= "@Player.SetOpacity(1)" & Environment.NewLine &
"@Level.Update" & Environment.NewLine &
"@Player.SetMovement(0,-1,0)" & Environment.NewLine &
"@Player.SetSpeed(" & FallSpeed & ")" & Environment.NewLine &
"@Screen.FadeIn(35)" & Environment.NewLine &
"@Player.Move(" & DropDistance & ")" & Environment.NewLine &
"@Sound.Play(Drop_Land)" & Environment.NewLine &
"@Level.Update" & Environment.NewLine &
"@Camera.Update" & Environment.NewLine &
"@Camera.Defix" & Environment.NewLine &

View File

@ -37,7 +37,22 @@
Return True
End If
End If
Dim WarpSoundName As String = "Warp_Exit"
If c >= 6 Then
Dim WarpSoundData As Integer = CInt(link.GetSplit(6))
Select Case WarpSoundData
Case 0
WarpSoundName = "Warp_Exit"
Case 1
WarpSoundName = "Warp_RegularDoor"
Case 2
WarpSoundName = "Warp_Ladder"
Case 3
WarpSoundName = ""
Case Else
WarpSoundName = "Warp_Exit"
End Select
End If
If System.IO.File.Exists(GameController.GamePath & "\" & GameModeManager.ActiveGameMode.MapPath & destination) = True Or System.IO.File.Exists(GameController.GamePath & "\Content\Data\maps\" & destination) = True Then
If MapViewMode = False Then
Screen.Level.WarpData.WarpDestination = Me.AdditionalValue.GetSplit(0)
@ -46,6 +61,13 @@
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
Screen.Level.WarpData.IsWarpBlock = True
If GameModeManager.ContentFileExists("Sounds\" & WarpSoundName & ".wav") = True Or GameModeManager.ContentFileExists("Sounds\" & WarpSoundName & ".xnb") = True Then
Screen.Level.WarpData.WarpSound = WarpSoundName
ElseIf WarpSoundName = "" Then
Screen.Level.WarpData.WarpSound = Nothing
Else
Screen.Level.WarpData.WarpSound = "Warp_Exit"
End If
Logger.Debug("Lock Camera")
CType(Screen.Camera, OverworldCamera).YawLocked = True
Else

View File

@ -18407,12 +18407,27 @@
<Content Include="Content\Sounds\Cries\901.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Drop_Fall.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Drop_Land.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Emote_Exclamation.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\OverworldPoison.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Warp_Door.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Warp_Exit.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Sounds\Warp_Ladder.wav">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Content\Textures\battlecastle.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

View File

@ -453,7 +453,7 @@
Public RunMode As Boolean = True
Public RunToggled As Boolean = False
Public DoWalkAnimation As Boolean = False
Public DoWalkAnimation As Boolean = True
Public Structure Temp
Public Shared PokemonScreenIndex As Integer = 0

View File

@ -319,6 +319,7 @@
TextureManager.TextureRectList.Clear()
Whirlpool.LoadedWaterTemp = False
Core.Player.RunToggled = False
Core.Player.DoWalkAnimation = True
Core.SetScreen(New PressStartScreen())
Core.Player.loadedSave = False
End Sub

View File

@ -189,22 +189,92 @@
Dim cPosition As Vector3 = Screen.Camera.Position
Select Case commas
Case 4
Case 5
Screen.Level.WarpData.WarpDestination = argument.GetSplit(0)
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(4))
Dim WarpSoundData As Integer = CInt(argument.GetSplit(5))
Select Case WarpSoundData
Case 0
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Case 1
Screen.Level.WarpData.WarpSound = "Warp_Door"
Case 2
Screen.Level.WarpData.WarpSound = "Warp_Ladder"
Case 3
Screen.Level.WarpData.WarpSound = ""
Case Else
Screen.Level.WarpData.WarpSound = "Warp_Exit"
End Select
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
Case 4
If argument.GetSplit(0).Contains(".dat") = False Then
Screen.Level.WarpData.WarpDestination = Screen.Level.LevelFile
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(3))
Dim WarpSoundData As Integer = CInt(argument.GetSplit(4))
Select Case WarpSoundData
Case 0
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Case 1
Screen.Level.WarpData.WarpSound = "Warp_Door"
Case 2
Screen.Level.WarpData.WarpSound = "Warp_Ladder"
Case 3
Screen.Level.WarpData.WarpSound = ""
Case Else
Screen.Level.WarpData.WarpSound = "Warp_Exit"
End Select
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
Else
Screen.Level.WarpData.WarpDestination = argument.GetSplit(0)
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = int(argument.GetSplit(4))
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
End If
Case 3
Screen.Level.WarpData.WarpDestination = argument.GetSplit(0)
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = 0
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
If argument.GetSplit(0).Contains(".dat") = False Then
Screen.Level.WarpData.WarpDestination = Screen.Level.LevelFile
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = 0
Dim WarpSoundData As Integer = CInt(argument.GetSplit(3))
Select Case WarpSoundData
Case 0
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Case 1
Screen.Level.WarpData.WarpSound = "Warp_Door"
Case 2
Screen.Level.WarpData.WarpSound = "Warp_Ladder"
Case 3
Screen.Level.WarpData.WarpSound = ""
Case Else
Screen.Level.WarpData.WarpSound = "Warp_Exit"
End Select
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
Else
Screen.Level.WarpData.WarpDestination = argument.GetSplit(0)
Screen.Level.WarpData.WarpPosition = New Vector3(sng(argument.GetSplit(1).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(2).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(3).Replace("~", CStr(cPosition.Z)).Replace(".", GameController.DecSeparator)))
Screen.Level.WarpData.WarpRotations = 0
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
End If
Case 2
Screen.Camera.Position = New Vector3(sng(argument.GetSplit(0).Replace("~", CStr(cPosition.X)).Replace(".", GameController.DecSeparator)),
sng(argument.GetSplit(1).Replace("~", CStr(cPosition.Y)).Replace(".", GameController.DecSeparator)),
@ -213,6 +283,7 @@
Screen.Level.WarpData.WarpDestination = argument
Screen.Level.WarpData.WarpPosition = Screen.Camera.Position
Screen.Level.WarpData.WarpRotations = 0
Screen.Level.WarpData.WarpSound = "Warp_Exit"
Screen.Level.WarpData.DoWarpInNextTick = True
Screen.Level.WarpData.CorrectCameraYaw = Screen.Camera.Yaw
End Select

View File

@ -712,6 +712,11 @@ Public Class Level
''' If the warp action got triggered by a warp block.
''' </summary>
Public IsWarpBlock As Boolean
''' <summary>
''' What sound effect to trigger when warping
''' </summary>
Public WarpSound As String
End Structure
''' <summary>
@ -1159,13 +1164,15 @@ Public Class Level
' Because of the map change, Roaming Pokémon are moving to their next location on the world map:
RoamingPokemon.ShiftRoamingPokemon(-1)
' Check if the enter sound should be played by checking if CanDig or CanFly properties are different from the last map:
If tempProperties <> Me.CanDig.ToString() & "," & Me.CanFly.ToString() Then
SoundManager.PlaySound("enter", False)
ElseIf tempProperties = "True,False" And Me.CanDig = True And Me.CanFly = False Then
SoundManager.PlaySound("enter", False)
ElseIf tempProperties = "False,False" And Me.CanDig = False And Me.CanFly = False Then
SoundManager.PlaySound("enter", False)
' Check if the "warp" sound should be played by checking if CanDig or CanFly properties are different from the last map:
If Not Me.WarpData.WarpSound = Nothing And Not Me.WarpData.WarpSound = "" Then
If tempProperties <> Me.CanDig.ToString() & "," & Me.CanFly.ToString() Then
SoundManager.PlaySound(Me.WarpData.WarpSound, False)
ElseIf tempProperties = "True,False" And Me.CanDig = True And Me.CanFly = False Then
SoundManager.PlaySound(Me.WarpData.WarpSound, False)
ElseIf tempProperties = "False,False" And Me.CanDig = False And Me.CanFly = False Then
SoundManager.PlaySound(Me.WarpData.WarpSound, False)
End If
End If
' Unlock the yaw on the camera: