diff --git a/Assets/Models/Nova.meta b/Assets/Models/Nova.meta new file mode 100644 index 00000000..fbf6afdd --- /dev/null +++ b/Assets/Models/Nova.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ccc5768761403d4b9ad727402a68240 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Nova/Nova.fbx b/Assets/Models/Nova/Nova.fbx new file mode 100644 index 00000000..5ae6667d Binary files /dev/null and b/Assets/Models/Nova/Nova.fbx differ diff --git a/Assets/Models/Nova/Nova.fbx.meta b/Assets/Models/Nova/Nova.fbx.meta new file mode 100644 index 00000000..39837e89 --- /dev/null +++ b/Assets/Models/Nova/Nova.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 9d64fa8f79430c840bb7bd153b0d26aa +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Nova/Nova_Base_color.png b/Assets/Models/Nova/Nova_Base_color.png new file mode 100644 index 00000000..b3164b70 Binary files /dev/null and b/Assets/Models/Nova/Nova_Base_color.png differ diff --git a/Assets/Models/Nova/Nova_Base_color.png.meta b/Assets/Models/Nova/Nova_Base_color.png.meta new file mode 100644 index 00000000..c8314a24 --- /dev/null +++ b/Assets/Models/Nova/Nova_Base_color.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 34214aaf92e789643a6da2601b442125 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Nova/Nova_Metallic.png b/Assets/Models/Nova/Nova_Metallic.png new file mode 100644 index 00000000..27641544 Binary files /dev/null and b/Assets/Models/Nova/Nova_Metallic.png differ diff --git a/Assets/Models/Nova/Nova_Metallic.png.meta b/Assets/Models/Nova/Nova_Metallic.png.meta new file mode 100644 index 00000000..6388067e --- /dev/null +++ b/Assets/Models/Nova/Nova_Metallic.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 78fb7ffc159ec244aad1b9686c7cff52 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Nova/Nova_Normal.png b/Assets/Models/Nova/Nova_Normal.png new file mode 100644 index 00000000..1f5da337 Binary files /dev/null and b/Assets/Models/Nova/Nova_Normal.png differ diff --git a/Assets/Models/Nova/Nova_Normal.png.meta b/Assets/Models/Nova/Nova_Normal.png.meta new file mode 100644 index 00000000..0dbaff55 --- /dev/null +++ b/Assets/Models/Nova/Nova_Normal.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 0a492b9c8cbe713468bccef66078e17d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ConnectionManagement/ConnectionManager.cs b/Assets/Scripts/ConnectionManagement/ConnectionManager.cs index b941c8e5..420034fe 100644 --- a/Assets/Scripts/ConnectionManagement/ConnectionManager.cs +++ b/Assets/Scripts/ConnectionManagement/ConnectionManager.cs @@ -24,6 +24,7 @@ namespace Unity.BossRoom.ConnectionManagement StartHostFailed, // server failed to bind StartClientFailed // failed to connect to server and/or invalid network endpoint } + public struct ReconnectMessage { @@ -57,8 +58,14 @@ namespace Unity.BossRoom.ConnectionManagement /// public class ConnectionManager : MonoBehaviour { + public enum ServerGameState + { + Lobby, + Gameplay, + EndGame + } ConnectionState m_CurrentState; - + public ServerGameState CurrentGameState { get; private set; } [Inject] NetworkManager m_NetworkManager; public NetworkManager NetworkManager => m_NetworkManager; @@ -132,6 +139,12 @@ namespace Unity.BossRoom.ConnectionManagement m_CurrentState.Enter(); } + public void SetGameState(ServerGameState newState) + { + Debug.Log($"Game state changed from {CurrentGameState} to {newState}"); + CurrentGameState = newState; + } + void OnClientDisconnectCallback(ulong clientId) { m_CurrentState.OnClientDisconnect(clientId); diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs index b0645e21..095ff4df 100644 --- a/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs +++ b/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs @@ -120,6 +120,14 @@ namespace Unity.BossRoom.ConnectionManagement return; } + if (m_ConnectionManager.CurrentGameState == ConnectionManager.ServerGameState.Gameplay) + { + Debug.Log($"Connection denied for client {clientId}: Game is already in progress."); + response.Approved = false; + response.Reason = JsonUtility.ToJson(ConnectStatus.ServerFull); + return; + } + var payload = System.Text.Encoding.UTF8.GetString(connectionData); var connectionPayload = JsonUtility.FromJson(payload); // https://docs.unity3d.com/2020.2/Documentation/Manual/JSONSerialization.html var gameReturnStatus = GetConnectStatus(connectionPayload); @@ -134,6 +142,7 @@ namespace Unity.BossRoom.ConnectionManagement response.CreatePlayerObject = true; response.Position = Vector3.zero; response.Rotation = Quaternion.identity; + return; } diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/ServerListeningState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/ServerListeningState.cs index 281a13a0..2922f118 100644 --- a/Assets/Scripts/ConnectionManagement/ConnectionState/ServerListeningState.cs +++ b/Assets/Scripts/ConnectionManagement/ConnectionState/ServerListeningState.cs @@ -84,6 +84,13 @@ namespace Unity.BossRoom.ConnectionManagement response.Approved = false; return; } + if (m_ConnectionManager.CurrentGameState == ConnectionManager.ServerGameState.Gameplay) + { + Debug.Log($"Connection denied for client {clientId}: Game is already in progress."); + response.Approved = false; + response.Reason = JsonUtility.ToJson(ConnectStatus.ServerFull); + return; + } // Decode and parse the connection payload var payload = System.Text.Encoding.UTF8.GetString(connectionData); diff --git a/Assets/Scripts/Gameplay/GameState/DSLobbyManagementState.cs b/Assets/Scripts/Gameplay/GameState/DSLobbyManagementState.cs index 86cf0152..a3976517 100644 --- a/Assets/Scripts/Gameplay/GameState/DSLobbyManagementState.cs +++ b/Assets/Scripts/Gameplay/GameState/DSLobbyManagementState.cs @@ -55,6 +55,7 @@ namespace Unity.Multiplayer.Samples.BossRoom.Server // TODO change scene to char select here and do other init. why is it handled by connection manager right now? SceneLoaderWrapper.Instance.AddOnSceneEventCallback(); + m_ConnectionManager.SetGameState(ConnectionManager.ServerGameState.Lobby); SceneLoaderWrapper.Instance.LoadScene("CharSelect", useNetworkSceneManager: true); } StartCoroutine(StartServerCoroutine()); diff --git a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs index e8d3b2af..c2339c75 100644 --- a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs +++ b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs @@ -148,6 +148,7 @@ namespace Unity.BossRoom.Gameplay.GameState if (NetworkManager.Singleton.ConnectedClients.Count == 1) // Only server remains { Debug.Log("[Server] All players disconnected. Resetting game."); + m_ConnectionManager.SetGameState(ConnectionManager.ServerGameState.Lobby); // PersistentGameState.Instance.ResetGameState(); NetworkManager.Singleton.SceneManager.LoadScene("CharSelect", UnityEngine.SceneManagement.LoadSceneMode.Single); } diff --git a/Assets/Scripts/Gameplay/GameState/ServerCharSelectState.cs b/Assets/Scripts/Gameplay/GameState/ServerCharSelectState.cs index c37fb35f..026fbeae 100644 --- a/Assets/Scripts/Gameplay/GameState/ServerCharSelectState.cs +++ b/Assets/Scripts/Gameplay/GameState/ServerCharSelectState.cs @@ -103,6 +103,7 @@ namespace Unity.BossRoom.Gameplay.GameState networkCharSelection.IsLobbyClosed.Value = true; Debug.Log("Testing"); SaveLobbyResults(); + m_ConnectionManager.SetGameState(ConnectionManager.ServerGameState.Gameplay); m_WaitToEndLobbyCoroutine = StartCoroutine(WaitToEndLobby()); } diff --git a/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs b/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs index 9986a398..d303b2cd 100644 --- a/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs +++ b/Assets/Scripts/Gameplay/GameState/ServerPostGameState.cs @@ -21,7 +21,7 @@ namespace Unity.BossRoom.Gameplay.GameState NetworkPostGame networkPostGame; public NetworkPostGame NetworkPostGame => networkPostGame; public override GameState ActiveState { get { return GameState.PostGame; } } - [SerializeField] private float resetDelay = 5f; + [SerializeField] private float resetDelay = 2f; [Inject] ConnectionManager m_ConnectionManager; @@ -38,6 +38,7 @@ namespace Unity.BossRoom.Gameplay.GameState protected override void Start() { base.Start(); + // m_ConnectionManager.SetGameState(ConnectionManager.ServerGameState.EndGame); Debug.Log("[ServerPostGameState] Game Over! Transitioning back to Character Selection after delay..."); Invoke(nameof(ReturnToLobby), resetDelay); } @@ -47,6 +48,7 @@ namespace Unity.BossRoom.Gameplay.GameState if (NetworkManager.Singleton.IsServer) { Debug.Log("[ServerPostGameState] Resetting game and returning to character selection..."); + // m_ConnectionManager.SetGameState(ConnectionManager.ServerGameState.Lobby); NetworkManager.Singleton.SceneManager.LoadScene("CharSelect", UnityEngine.SceneManagement.LoadSceneMode.Single); } } diff --git a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs index 9b33afa4..0c0ab9ce 100644 --- a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs +++ b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs @@ -582,7 +582,7 @@ namespace Unity.BossRoom.Gameplay.UserInput { ActivateAbilityIfAllowed(GameDataSource.Instance.FreezeThrowAbilityKey); } - if (CnInputManager.GetButtonDown("VectorWall") || Input.GetKeyDown(KeyCode.F)) // Vector Wall + if (CnInputManager.GetButtonDown(GameDataSource.Instance.VectorWallAbilityKey) || Input.GetKeyDown(KeyCode.F)) // Vector Wall { ActivateAbilityIfAllowed(GameDataSource.Instance.VectorWallAbilityKey); }