feat: score audio added
This commit is contained in:
		
							
								
								
									
										2
									
								
								Engine
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								Engine
									
									
									
									
									
								
							 Submodule Engine updated: 37aca44e45...03232f72e8
									
								
							@@ -11,6 +11,7 @@ using Syntriax.Engine.Network;
 | 
				
			|||||||
namespace Pong.Behaviours;
 | 
					namespace Pong.Behaviours;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadContent,
 | 
					public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadContent,
 | 
				
			||||||
 | 
					    IPacketListenerClient<PongManager.StartPacket>,
 | 
				
			||||||
    IPacketListenerClient<PongManager.ScorePacket>
 | 
					    IPacketListenerClient<PongManager.ScorePacket>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public Action<PongManager>? OnReset { get; set; } = null;
 | 
					    public Action<PongManager>? OnReset { get; set; } = null;
 | 
				
			||||||
@@ -21,6 +22,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private INetworkCommunicatorServer? networkServer = null;
 | 
					    private INetworkCommunicatorServer? networkServer = null;
 | 
				
			||||||
    private ILogger? logger = null;
 | 
					    private ILogger? logger = null;
 | 
				
			||||||
 | 
					    private SoundEffectInstance? scoreSoundEffect = null;
 | 
				
			||||||
    private SoundEffectInstance? gameEndSoundEffect = null;
 | 
					    private SoundEffectInstance? gameEndSoundEffect = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public int ScoreLeft { get; private set; } = 0;
 | 
					    public int ScoreLeft { get; private set; } = 0;
 | 
				
			||||||
@@ -44,21 +46,18 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
    public void LoadContent(ContentManager content)
 | 
					    public void LoadContent(ContentManager content)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        gameEndSoundEffect = content.Load<SoundEffect>("Audio/Win").CreateInstance();
 | 
					        gameEndSoundEffect = content.Load<SoundEffect>("Audio/Win").CreateInstance();
 | 
				
			||||||
 | 
					        scoreSoundEffect = content.Load<SoundEffect>("Audio/Score").CreateInstance();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void ScoreToLeft()
 | 
					    public void ScoreToLeft()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        ScoreLeft++;
 | 
					        ScoreLeft++;
 | 
				
			||||||
        OnScoreUpdated?.Invoke(this);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        PostScoreUpdate();
 | 
					        PostScoreUpdate();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void ScoreToRight()
 | 
					    public void ScoreToRight()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        ScoreRight++;
 | 
					        ScoreRight++;
 | 
				
			||||||
        OnScoreUpdated?.Invoke(this);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        PostScoreUpdate();
 | 
					        PostScoreUpdate();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -73,6 +72,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
        Reset();
 | 
					        Reset();
 | 
				
			||||||
        IsGameInProgress = true;
 | 
					        IsGameInProgress = true;
 | 
				
			||||||
        PostScoreUpdate();
 | 
					        PostScoreUpdate();
 | 
				
			||||||
 | 
					        networkServer.SendToAll(new StartPacket());
 | 
				
			||||||
        logger?.Log(this, $"Game started");
 | 
					        logger?.Log(this, $"Game started");
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -89,6 +89,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private void PostScoreUpdate()
 | 
					    private void PostScoreUpdate()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        OnScoreUpdated?.Invoke(this);
 | 
				
			||||||
        Ball.ResetBall();
 | 
					        Ball.ResetBall();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (networkServer is not null)
 | 
					        if (networkServer is not null)
 | 
				
			||||||
@@ -103,7 +104,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
            IsGameInProgress = false;
 | 
					            IsGameInProgress = false;
 | 
				
			||||||
            gameEndSoundEffect?.Play();
 | 
					            gameEndSoundEffect?.Play();
 | 
				
			||||||
            OnFinished?.Invoke(this);
 | 
					            OnFinished?.Invoke(this);
 | 
				
			||||||
            logger?.Log(this, $"Game finished");
 | 
					            logger?.Log(this, $"Game finished: {ScoreLeft} - {ScoreRight}");
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -123,10 +124,21 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
 | 
				
			|||||||
        ScoreLeft = packet.Left;
 | 
					        ScoreLeft = packet.Left;
 | 
				
			||||||
        ScoreRight = packet.Right;
 | 
					        ScoreRight = packet.Right;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        OnScoreUpdated?.Invoke(this);
 | 
					        PostScoreUpdate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (IsGameInProgress && (ScoreLeft != 0 || ScoreRight != 0))
 | 
				
			||||||
 | 
					            scoreSoundEffect?.Play();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        logger?.Log(this, $"Client score update packet arrived: {packet.Left} - {packet.Right}");
 | 
					        logger?.Log(this, $"Client score update packet arrived: {packet.Left} - {packet.Right}");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void IPacketListenerClient<StartPacket>.OnClientPacketArrived(IConnection sender, StartPacket packet)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        IsGameInProgress = true;
 | 
				
			||||||
 | 
					        logger?.Log(this, $"Game started");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private class StartPacket : INetworkPacket;
 | 
				
			||||||
    private class ScorePacket : INetworkPacket
 | 
					    private class ScorePacket : INetworkPacket
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public int Left { get; set; }
 | 
					        public int Left { get; set; }
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								Shared/Content/Audio/Score.wav
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Shared/Content/Audio/Score.wav
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -19,6 +19,12 @@
 | 
				
			|||||||
/processorParam:Quality=Best
 | 
					/processorParam:Quality=Best
 | 
				
			||||||
/build:Audio/Bounce.wav
 | 
					/build:Audio/Bounce.wav
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#begin Audio/Score.wav
 | 
				
			||||||
 | 
					/importer:WavImporter
 | 
				
			||||||
 | 
					/processor:SoundEffectProcessor
 | 
				
			||||||
 | 
					/processorParam:Quality=Best
 | 
				
			||||||
 | 
					/build:Audio/Score.wav
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#begin Audio/Win.wav
 | 
					#begin Audio/Win.wav
 | 
				
			||||||
/importer:WavImporter
 | 
					/importer:WavImporter
 | 
				
			||||||
/processor:SoundEffectProcessor
 | 
					/processor:SoundEffectProcessor
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user