Compare commits
No commits in common. "main" and "BUG-1" have entirely different histories.
57 changed files with 16873 additions and 2122 deletions
BIN
.DS_Store
vendored
BIN
.DS_Store
vendored
Binary file not shown.
5
.vscode/extensions.json
vendored
5
.vscode/extensions.json
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"visualstudiotoolsforunity.vstuc"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
10
.vscode/launch.json
vendored
10
.vscode/launch.json
vendored
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Attach to Unity",
|
|
||||||
"type": "vstuc",
|
|
||||||
"request": "attach"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
60
.vscode/settings.json
vendored
60
.vscode/settings.json
vendored
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
"files.exclude": {
|
|
||||||
"**/.DS_Store": true,
|
|
||||||
"**/.git": true,
|
|
||||||
"**/.vs": true,
|
|
||||||
"**/.gitmodules": true,
|
|
||||||
"**/.vsconfig": true,
|
|
||||||
"**/*.booproj": true,
|
|
||||||
"**/*.pidb": true,
|
|
||||||
"**/*.suo": true,
|
|
||||||
"**/*.user": true,
|
|
||||||
"**/*.userprefs": true,
|
|
||||||
"**/*.unityproj": true,
|
|
||||||
"**/*.dll": true,
|
|
||||||
"**/*.exe": true,
|
|
||||||
"**/*.pdf": true,
|
|
||||||
"**/*.mid": true,
|
|
||||||
"**/*.midi": true,
|
|
||||||
"**/*.wav": true,
|
|
||||||
"**/*.gif": true,
|
|
||||||
"**/*.ico": true,
|
|
||||||
"**/*.jpg": true,
|
|
||||||
"**/*.jpeg": true,
|
|
||||||
"**/*.png": true,
|
|
||||||
"**/*.psd": true,
|
|
||||||
"**/*.tga": true,
|
|
||||||
"**/*.tif": true,
|
|
||||||
"**/*.tiff": true,
|
|
||||||
"**/*.3ds": true,
|
|
||||||
"**/*.3DS": true,
|
|
||||||
"**/*.fbx": true,
|
|
||||||
"**/*.FBX": true,
|
|
||||||
"**/*.lxo": true,
|
|
||||||
"**/*.LXO": true,
|
|
||||||
"**/*.ma": true,
|
|
||||||
"**/*.MA": true,
|
|
||||||
"**/*.obj": true,
|
|
||||||
"**/*.OBJ": true,
|
|
||||||
"**/*.asset": true,
|
|
||||||
"**/*.cubemap": true,
|
|
||||||
"**/*.flare": true,
|
|
||||||
"**/*.mat": true,
|
|
||||||
"**/*.meta": true,
|
|
||||||
"**/*.prefab": true,
|
|
||||||
"**/*.unity": true,
|
|
||||||
"build/": true,
|
|
||||||
"Build/": true,
|
|
||||||
"Library/": true,
|
|
||||||
"library/": true,
|
|
||||||
"obj/": true,
|
|
||||||
"Obj/": true,
|
|
||||||
"Logs/": true,
|
|
||||||
"logs/": true,
|
|
||||||
"ProjectSettings/": true,
|
|
||||||
"UserSettings/": true,
|
|
||||||
"temp/": true,
|
|
||||||
"Temp/": true
|
|
||||||
},
|
|
||||||
"dotnet.defaultSolution": "GuildTycoon.sln"
|
|
||||||
}
|
|
||||||
|
|
@ -53,7 +53,6 @@ MonoBehaviour:
|
||||||
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
m_ReflectionProbeBlending: 1
|
m_ReflectionProbeBlending: 1
|
||||||
m_ReflectionProbeBoxProjection: 1
|
m_ReflectionProbeBoxProjection: 1
|
||||||
m_ReflectionProbeAtlas: 1
|
|
||||||
m_ShadowDistance: 50
|
m_ShadowDistance: 50
|
||||||
m_ShadowCascadeCount: 4
|
m_ShadowCascadeCount: 4
|
||||||
m_Cascade2Split: 0.25
|
m_Cascade2Split: 0.25
|
||||||
|
|
@ -130,10 +129,6 @@ MonoBehaviour:
|
||||||
m_PrefilterScreenCoord: 1
|
m_PrefilterScreenCoord: 1
|
||||||
m_PrefilterNativeRenderPass: 1
|
m_PrefilterNativeRenderPass: 1
|
||||||
m_PrefilterUseLegacyLightmaps: 0
|
m_PrefilterUseLegacyLightmaps: 0
|
||||||
m_PrefilterBicubicLightmapSampling: 1
|
|
||||||
m_PrefilterReflectionProbeBlending: 0
|
|
||||||
m_PrefilterReflectionProbeBoxProjection: 0
|
|
||||||
m_PrefilterReflectionProbeAtlas: 0
|
|
||||||
m_ShaderVariantLogLevel: 0
|
m_ShaderVariantLogLevel: 0
|
||||||
m_ShadowCascades: 0
|
m_ShadowCascades: 0
|
||||||
m_Textures:
|
m_Textures:
|
||||||
|
|
|
||||||
|
|
@ -55,13 +55,6 @@ MonoBehaviour:
|
||||||
- rid: 8712630790384254976
|
- rid: 8712630790384254976
|
||||||
- rid: 3032807696540106752
|
- rid: 3032807696540106752
|
||||||
- rid: 3032807696540106753
|
- rid: 3032807696540106753
|
||||||
- rid: 8483784701748969479
|
|
||||||
- rid: 8483784701748969480
|
|
||||||
- rid: 8483784701748969481
|
|
||||||
- rid: 8483784701748969482
|
|
||||||
- rid: 8483784701748969483
|
|
||||||
- rid: 8483784701748969484
|
|
||||||
- rid: 8483784701748969485
|
|
||||||
m_RuntimeSettings:
|
m_RuntimeSettings:
|
||||||
m_List:
|
m_List:
|
||||||
- rid: 6852985685364965378
|
- rid: 6852985685364965378
|
||||||
|
|
@ -74,10 +67,6 @@ MonoBehaviour:
|
||||||
- rid: 6852985685364965394
|
- rid: 6852985685364965394
|
||||||
- rid: 8712630790384254976
|
- rid: 8712630790384254976
|
||||||
- rid: 3032807696540106752
|
- rid: 3032807696540106752
|
||||||
- rid: 8483784701748969480
|
|
||||||
- rid: 8483784701748969481
|
|
||||||
- rid: 8483784701748969484
|
|
||||||
- rid: 8483784701748969485
|
|
||||||
m_AssetVersion: 8
|
m_AssetVersion: 8
|
||||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||||
m_RenderingLayerNames:
|
m_RenderingLayerNames:
|
||||||
|
|
@ -131,6 +120,9 @@ MonoBehaviour:
|
||||||
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
||||||
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
|
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
|
||||||
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
|
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
|
||||||
|
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
|
||||||
|
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
|
||||||
|
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
|
||||||
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
||||||
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
||||||
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
||||||
|
|
@ -141,8 +133,6 @@ MonoBehaviour:
|
||||||
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
|
m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
|
||||||
m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3}
|
|
||||||
m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3}
|
|
||||||
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
|
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
|
||||||
- rid: 6852985685364965379
|
- rid: 6852985685364965379
|
||||||
type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||||
|
|
@ -277,129 +267,6 @@ MonoBehaviour:
|
||||||
m_version: 0
|
m_version: 0
|
||||||
m_EnableCompilationCaching: 1
|
m_EnableCompilationCaching: 1
|
||||||
m_EnableValidityChecks: 1
|
m_EnableValidityChecks: 1
|
||||||
- rid: 8483784701748969479
|
|
||||||
type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
|
||||||
data:
|
|
||||||
stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3}
|
|
||||||
subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3}
|
|
||||||
gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3}
|
|
||||||
bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3}
|
|
||||||
cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3}
|
|
||||||
paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3}
|
|
||||||
lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3}
|
|
||||||
lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3}
|
|
||||||
bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3}
|
|
||||||
temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3}
|
|
||||||
LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3}
|
|
||||||
LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3}
|
|
||||||
scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3}
|
|
||||||
easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3}
|
|
||||||
uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3}
|
|
||||||
finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3}
|
|
||||||
m_ShaderResourcesVersion: 0
|
|
||||||
- rid: 8483784701748969480
|
|
||||||
type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
|
||||||
data:
|
|
||||||
m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
|
|
||||||
m_Version: 0
|
|
||||||
- rid: 8483784701748969481
|
|
||||||
type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
|
||||||
data:
|
|
||||||
m_BlueNoise256Textures:
|
|
||||||
- {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3}
|
|
||||||
- {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3}
|
|
||||||
- {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3}
|
|
||||||
- {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3}
|
|
||||||
m_Version: 0
|
|
||||||
- rid: 8483784701748969482
|
|
||||||
type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
|
||||||
data:
|
|
||||||
blueNoise16LTex:
|
|
||||||
- {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3}
|
|
||||||
- {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3}
|
|
||||||
- {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3}
|
|
||||||
- {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3}
|
|
||||||
- {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3}
|
|
||||||
- {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3}
|
|
||||||
- {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3}
|
|
||||||
- {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3}
|
|
||||||
- {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3}
|
|
||||||
- {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3}
|
|
||||||
- {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3}
|
|
||||||
- {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3}
|
|
||||||
- {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3}
|
|
||||||
filmGrainTex:
|
|
||||||
- {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3}
|
|
||||||
- {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3}
|
|
||||||
- {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3}
|
|
||||||
- {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3}
|
|
||||||
- {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3}
|
|
||||||
- {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3}
|
|
||||||
- {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3}
|
|
||||||
smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3}
|
|
||||||
smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3}
|
|
||||||
m_TexturesResourcesVersion: 0
|
|
||||||
- rid: 8483784701748969483
|
|
||||||
type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
|
||||||
data:
|
|
||||||
m_version: 0
|
|
||||||
- rid: 8483784701748969484
|
|
||||||
type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
|
||||||
data:
|
|
||||||
m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3}
|
|
||||||
m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3}
|
|
||||||
m_VisualizationLookupTable:
|
|
||||||
m_Data:
|
|
||||||
- {r: 1, g: 0, b: 0, a: 1}
|
|
||||||
- {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
|
||||||
- {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
- {r: 0, g: 1, b: 0, a: 1}
|
|
||||||
- {r: 0.75, g: 0.75, b: 0, a: 1}
|
|
||||||
- {r: 0, g: 0.75, b: 0.55, a: 1}
|
|
||||||
- {r: 0.5, g: 0, b: 0.5, a: 1}
|
|
||||||
- {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
- {r: 0, g: 0, b: 1, a: 1}
|
|
||||||
m_ConversionLookupTable:
|
|
||||||
m_Data:
|
|
||||||
- {r: 1, g: 0, b: 0, a: 1}
|
|
||||||
- {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
|
||||||
- {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
- {r: 0, g: 1, b: 0, a: 1}
|
|
||||||
- {r: 0.75, g: 0.75, b: 0, a: 1}
|
|
||||||
- {r: 0, g: 0.75, b: 0.55, a: 1}
|
|
||||||
- {r: 0.5, g: 0, b: 0.5, a: 1}
|
|
||||||
- {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
- {r: 0, g: 0, b: 1, a: 1}
|
|
||||||
- rid: 8483784701748969485
|
|
||||||
type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
|
||||||
data:
|
|
||||||
m_Version: 1
|
|
||||||
m_UseBicubicLightmapSampling: 0
|
|
||||||
- rid: 8712630790384254976
|
- rid: 8712630790384254976
|
||||||
type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime}
|
type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime}
|
||||||
data:
|
data:
|
||||||
|
|
|
||||||
16649
Assets/_/Content/Fonts/MedievalSharp-Regular SDF.asset
Normal file
16649
Assets/_/Content/Fonts/MedievalSharp-Regular SDF.asset
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1,8 +1,8 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 734f74e705aeba678b18ee566d42d540
|
guid: 44cc5e4b4ce644394a7b14151c11fee3
|
||||||
folderAsset: yes
|
NativeFormatImporter:
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
@ -135,4 +135,4 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
|
|
|
||||||
|
|
@ -135,4 +135,4 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
|
|
|
||||||
|
|
@ -134,4 +134,4 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
@ -97,7 +97,6 @@ Material:
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Ints: []
|
m_Ints: []
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
|
|
@ -129,7 +128,6 @@ Material:
|
||||||
- _Surface: 0
|
- _Surface: 0
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
- _WorkflowMode: 1
|
- _WorkflowMode: 1
|
||||||
- _XRMotionVectorsPass: 1
|
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
|
|
@ -137,4 +137,4 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Black.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Black.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Blue.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Blue.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Gray.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Gray.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Green.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Green.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Orange.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Orange.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Pink.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Pink.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Purple.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Purple.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Red.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Red.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/White.mat
Normal file → Executable file
2
Assets/_/Content/Materials/White.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
2
Assets/_/Content/Materials/Yellow.mat
Normal file → Executable file
2
Assets/_/Content/Materials/Yellow.mat
Normal file → Executable file
|
|
@ -12,7 +12,7 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
version: 10
|
version: 9
|
||||||
--- !u!21 &2100000
|
--- !u!21 &2100000
|
||||||
Material:
|
Material:
|
||||||
serializedVersion: 8
|
serializedVersion: 8
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 7c0ce0a4373dc0bb2ab714d658b005ad
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Cheat.Runtime",
|
|
||||||
"rootNamespace": "Cheat.Runtime",
|
|
||||||
"references": [
|
|
||||||
"GUID:2ca720bbf8aa349608caa5ce4acaa603",
|
|
||||||
"GUID:6055be8ebefd69e48b49212b09b47b2f"
|
|
||||||
],
|
|
||||||
"includePlatforms": [],
|
|
||||||
"excludePlatforms": [],
|
|
||||||
"allowUnsafeCode": false,
|
|
||||||
"overrideReferences": false,
|
|
||||||
"precompiledReferences": [],
|
|
||||||
"autoReferenced": true,
|
|
||||||
"defineConstraints": [],
|
|
||||||
"versionDefines": [],
|
|
||||||
"noEngineReferences": false
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 5b013ac9c9f0c7681877b2ae2d0aaf36
|
|
||||||
AssemblyDefinitionImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,230 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Core.Runtime;
|
|
||||||
using TMPro;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
|
|
||||||
namespace Cheat.Runtime
|
|
||||||
{
|
|
||||||
public class Cheat : BaseMonobehaviour
|
|
||||||
{
|
|
||||||
|
|
||||||
#region Publics
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Unity API
|
|
||||||
|
|
||||||
void OnValidate()
|
|
||||||
{
|
|
||||||
# if UNITY_EDITOR
|
|
||||||
|
|
||||||
if (!Application.isPlaying)
|
|
||||||
{
|
|
||||||
GetComponentInChildren<Canvas>().enabled = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
// Liste des actions possibles
|
|
||||||
_commands.Add("quit", args => Application.Quit());
|
|
||||||
_commands.Add("add money", args =>
|
|
||||||
{
|
|
||||||
if (args.Length == 0)
|
|
||||||
{
|
|
||||||
Warning("Usage: add money <amount>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!int.TryParse(args[0], out int amount))
|
|
||||||
{
|
|
||||||
Warning($"Invalid amount: {args[0]}");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
AddMoney(amount);
|
|
||||||
});
|
|
||||||
|
|
||||||
_commands.Add("help", args => CommandsList());
|
|
||||||
|
|
||||||
_canvas = GetComponentInChildren<Canvas>();
|
|
||||||
_canvas.enabled = false;
|
|
||||||
_historyZone = GetComponentInChildren<TMP_Text>();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (Input.GetKeyDown(KeyCode.Tab))
|
|
||||||
{
|
|
||||||
ToggleConsole();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_consoleOpen)
|
|
||||||
{
|
|
||||||
foreach (char c in Input.inputString)
|
|
||||||
{
|
|
||||||
if (c == '\b') // Backspace
|
|
||||||
{
|
|
||||||
if (_input.Length > 0)
|
|
||||||
_input = _input.Substring(0, _input.Length - 1);
|
|
||||||
}
|
|
||||||
else if (c == '\n' || c == '\r') // Entrée
|
|
||||||
{
|
|
||||||
ProcessCommand(_input);
|
|
||||||
_input = string.Empty;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_input += c;
|
|
||||||
}
|
|
||||||
RefreshUI();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Main Methods
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Utils
|
|
||||||
|
|
||||||
/* Fonctions privées utiles */
|
|
||||||
|
|
||||||
void RefreshUI()
|
|
||||||
{
|
|
||||||
if (_historyZone == null) return;
|
|
||||||
_historyZone.text = string.Join("\n", _history.ToArray());
|
|
||||||
}
|
|
||||||
|
|
||||||
void CommandsList()
|
|
||||||
{
|
|
||||||
AppendHistory("Rappel des commandes ");
|
|
||||||
foreach (var cmd in _commands)
|
|
||||||
{
|
|
||||||
AppendHistory(cmd.Key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ajoute une ligne d'historique et limite à _historyMaxLines
|
|
||||||
void AppendHistory(string line)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(line)) return;
|
|
||||||
|
|
||||||
_history.Enqueue(line);
|
|
||||||
while (_history.Count > _historyMaxLines)
|
|
||||||
_history.Dequeue();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ProcessCommand(string input)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrWhiteSpace(input)) return;
|
|
||||||
string raw = input.Trim();
|
|
||||||
string lower = raw.ToLower();
|
|
||||||
|
|
||||||
// Find the longest matching command key at the start of the input
|
|
||||||
string matchedKey = _commands.Keys
|
|
||||||
.OrderByDescending(k => k.Length)
|
|
||||||
.FirstOrDefault(k => lower.StartsWith(k));
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(matchedKey))
|
|
||||||
{
|
|
||||||
string argString = lower.Substring(matchedKey.Length).Trim();
|
|
||||||
string[] args = string.IsNullOrEmpty(argString)
|
|
||||||
? Array.Empty<string>()
|
|
||||||
: argString.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
|
|
||||||
AppendHistory(raw);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_commands[matchedKey].Invoke(args);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Warning($"Error executing '{matchedKey}': {e.Message}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Warning($"🚨‼️ Command '{lower}' not found");
|
|
||||||
}
|
|
||||||
|
|
||||||
_input = string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ToggleConsole()
|
|
||||||
{
|
|
||||||
_consoleOpen = !_consoleOpen;
|
|
||||||
_canvas.enabled = _consoleOpen;
|
|
||||||
GameManager.Instance.IsOnPause = _consoleOpen;
|
|
||||||
|
|
||||||
if (_consoleOpen)
|
|
||||||
{
|
|
||||||
TextCaptured();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TextCaptured()
|
|
||||||
{
|
|
||||||
foreach (char c in Input.inputString)
|
|
||||||
{
|
|
||||||
_input += c;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Commands Console
|
|
||||||
|
|
||||||
void AddMoney(int amount)
|
|
||||||
{
|
|
||||||
// Update or create a Money fact
|
|
||||||
int current;
|
|
||||||
bool hasMoney = true;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
current = GetFact<int>("Money");
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
current = 0;
|
|
||||||
hasMoney = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
int newValue = current + amount;
|
|
||||||
SetFact("Money", newValue, FactPersistence.Persistent);
|
|
||||||
AppendHistory($"Money set to {newValue}");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Privates and Protected
|
|
||||||
|
|
||||||
// Variables privées
|
|
||||||
bool _consoleOpen = false;
|
|
||||||
Canvas _canvas;
|
|
||||||
string _input = string.Empty;
|
|
||||||
Dictionary<string, Action<string[]>> _commands = new Dictionary<string, Action<string[]>>();
|
|
||||||
Queue<string> _history = new Queue<string>();
|
|
||||||
const int _historyMaxLines = 5;
|
|
||||||
TMP_Text _historyZone;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 3d81aa295d15c46f5b729d9afa859acb
|
|
||||||
|
|
@ -26,11 +26,11 @@ namespace Core.Runtime
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return m_gameFacts;
|
return _fact;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
m_gameFacts = value;
|
_fact = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -129,13 +129,15 @@ namespace Core.Runtime
|
||||||
// Chargement ou création des paramètres
|
// Chargement ou création des paramètres
|
||||||
if (m_gameFacts.SaveFileExists("GeneralSettings"))
|
if (m_gameFacts.SaveFileExists("GeneralSettings"))
|
||||||
{
|
{
|
||||||
|
Debug.Log("<color=green>GeneralSettings exist</color>");
|
||||||
LoadFacts("GeneralSettings");
|
LoadFacts("GeneralSettings");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Debug.Log("<color=orange>GeneralSettings does not exist</color>");
|
||||||
GeneralSettings settings = new GeneralSettings
|
GeneralSettings settings = new GeneralSettings
|
||||||
{
|
{
|
||||||
Language = EnumLanguage.French,
|
Language = EnumLanguage.English,
|
||||||
};
|
};
|
||||||
SetFact("GeneralSettings", settings, FactPersistence.Persistent);
|
SetFact("GeneralSettings", settings, FactPersistence.Persistent);
|
||||||
SaveFacts("GeneralSettings");
|
SaveFacts("GeneralSettings");
|
||||||
|
|
@ -150,11 +152,6 @@ namespace Core.Runtime
|
||||||
Debug.Log("Chemin des sauvegardes : " + Application.persistentDataPath);
|
Debug.Log("Chemin des sauvegardes : " + Application.persistentDataPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
Destroy(Instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
"GUID:2ca720bbf8aa349608caa5ce4acaa603",
|
"GUID:2ca720bbf8aa349608caa5ce4acaa603",
|
||||||
"GUID:d01b71ecbce444a299cc1623f29e9d35",
|
"GUID:d01b71ecbce444a299cc1623f29e9d35",
|
||||||
"GUID:4a640bb60ad60478bba0cc41f9b80929",
|
"GUID:4a640bb60ad60478bba0cc41f9b80929",
|
||||||
"GUID:f5d0434d9e8c34eb1a16f4c57b172b85",
|
"GUID:f5d0434d9e8c34eb1a16f4c57b172b85"
|
||||||
"GUID:239153993e9574192a1980e14075369e"
|
|
||||||
],
|
],
|
||||||
"includePlatforms": [],
|
"includePlatforms": [],
|
||||||
"excludePlatforms": [],
|
"excludePlatforms": [],
|
||||||
|
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Core.Runtime;
|
|
||||||
using EventSystem.Runtime;
|
|
||||||
using Player.Runtime;
|
|
||||||
using Quests.Runtime;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Decor.Runtime
|
|
||||||
{
|
|
||||||
public class QuestSign: BaseMonobehaviour
|
|
||||||
{
|
|
||||||
#region private & protected
|
|
||||||
|
|
||||||
[SerializeField] GameObject _parchment;
|
|
||||||
int _quests;
|
|
||||||
PlayerClass _player;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Unity API
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
_player = GetFact<PlayerClass>(GameManager.Instance.Profile);
|
|
||||||
QuestManager.Instance.NotifyAvailableQuestsUpdated(_player.GuildLevel);
|
|
||||||
UpdateParchmentState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
QuestManager.OnAvailableQuestsUpdated += HandleAvailableChanged;
|
|
||||||
QuestManager.OnQuestCompleted += HandleQuestCompleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
QuestManager.OnAvailableQuestsUpdated -= HandleAvailableChanged;
|
|
||||||
QuestManager.OnQuestCompleted -= HandleQuestCompleted;
|
|
||||||
}
|
|
||||||
|
|
||||||
void HandleAvailableChanged(System.Collections.Generic.List<QuestTemplate> _)
|
|
||||||
{
|
|
||||||
UpdateParchmentState();
|
|
||||||
}
|
|
||||||
|
|
||||||
void HandleQuestCompleted(QuestClass _)
|
|
||||||
{
|
|
||||||
UpdateParchmentState();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Main Methods
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Utils
|
|
||||||
|
|
||||||
void UpdateParchmentState()
|
|
||||||
{
|
|
||||||
List<QuestTemplate> availableTemplates = QuestManager.Instance.GetAvailableQuests(_player.GuildLevel);
|
|
||||||
var allPossibleQuests = QuestManager.Instance.GetAvailableQuests(_player.GuildLevel);
|
|
||||||
|
|
||||||
// 2. Quêtes déjà démarrées (actives OU complétées)
|
|
||||||
var startedQuests = (QuestManager.Instance.ActiveQuests ?? new List<QuestClass>())
|
|
||||||
.Concat(QuestManager.Instance.CompletedQuests ?? Enumerable.Empty<QuestClass>())
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
// 3. Quêtes vraiment disponibles = possibles - déjà démarrées
|
|
||||||
bool hasTrulyAvailableQuests = allPossibleQuests
|
|
||||||
.Any(possibleQuest =>
|
|
||||||
!startedQuests.Any(startedQuest =>
|
|
||||||
startedQuest.Name == possibleQuest.data.Name
|
|
||||||
)
|
|
||||||
);
|
|
||||||
_parchment.SetActive(hasTrulyAvailableQuests);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: ee4d7e155702f0836847d55f31276d2f
|
|
||||||
|
|
@ -7,7 +7,6 @@ namespace EventSystem.Runtime
|
||||||
{
|
{
|
||||||
public static event Action<QuestClass> OnInfoQuestPanel;
|
public static event Action<QuestClass> OnInfoQuestPanel;
|
||||||
public static event Action OnRefresh;
|
public static event Action OnRefresh;
|
||||||
public static event Action OnNewQuestRegistered;
|
|
||||||
|
|
||||||
public static void RaiseInfoQuestPanel(QuestClass questClass)
|
public static void RaiseInfoQuestPanel(QuestClass questClass)
|
||||||
{
|
{
|
||||||
|
|
@ -18,10 +17,5 @@ namespace EventSystem.Runtime
|
||||||
{
|
{
|
||||||
OnRefresh?.Invoke();
|
OnRefresh?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RaiseNewQuestRegistered()
|
|
||||||
{
|
|
||||||
OnNewQuestRegistered?.Invoke();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ namespace MenuSystem.Runtime
|
||||||
SetFact<PlayerClass>(saveName, newPlayerClass, FactPersistence.Persistent);
|
SetFact<PlayerClass>(saveName, newPlayerClass, FactPersistence.Persistent);
|
||||||
SetFact<GameTime>("game_time", new GameTime(), FactPersistence.Persistent);
|
SetFact<GameTime>("game_time", new GameTime(), FactPersistence.Persistent);
|
||||||
SetFact<List<AdventurerClass>>("my_adventurers", new List<AdventurerClass>(), FactPersistence.Persistent);
|
SetFact<List<AdventurerClass>>("my_adventurers", new List<AdventurerClass>(), FactPersistence.Persistent);
|
||||||
SetFact<List<QuestClass>>("accepted_quests", new List<QuestClass>(), FactPersistence.Persistent);
|
SetFact<List<QuestClass>>("quests", new List<QuestClass>(), FactPersistence.Persistent);
|
||||||
SetFact<List<QuestClass>>("active_quests", new List<QuestClass>(), FactPersistence.Persistent);
|
SetFact<List<QuestClass>>("active_quests", new List<QuestClass>(), FactPersistence.Persistent);
|
||||||
SetFact<List<QuestClass>>("completed_quests", new List<QuestClass>(), FactPersistence.Persistent);
|
SetFact<List<QuestClass>>("completed_quests", new List<QuestClass>(), FactPersistence.Persistent);
|
||||||
SetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history", new Dictionary<Guid, List<QuestEventLog>>(), FactPersistence.Persistent);
|
SetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history", new Dictionary<Guid, List<QuestEventLog>>(), FactPersistence.Persistent);
|
||||||
|
|
|
||||||
|
|
@ -74,11 +74,7 @@ namespace Quests.Runtime
|
||||||
case TargetingType.AllHeroes:
|
case TargetingType.AllHeroes:
|
||||||
return assignedAdventurers;
|
return assignedAdventurers;
|
||||||
case TargetingType.RandomHero:
|
case TargetingType.RandomHero:
|
||||||
if (assignedAdventurers == null || assignedAdventurers.Count == 0)
|
return new List<AdventurerClass> { assignedAdventurers[UnityEngine.Random.Range(0, assignedAdventurers.Count)] };
|
||||||
return new List<AdventurerClass>();
|
|
||||||
int count = assignedAdventurers.Count;
|
|
||||||
int idx = UnityEngine.Random.Range(0, count);
|
|
||||||
return new List<AdventurerClass> { assignedAdventurers[idx] };
|
|
||||||
case TargetingType.LowestHp:
|
case TargetingType.LowestHp:
|
||||||
return assignedAdventurers
|
return assignedAdventurers
|
||||||
.OrderBy(adventurer => adventurer.Health)
|
.OrderBy(adventurer => adventurer.Health)
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ namespace Quests.Runtime
|
||||||
public List<ItemReward> Rewards
|
public List<ItemReward> Rewards
|
||||||
{
|
{
|
||||||
get { return _rewards; }
|
get { return _rewards; }
|
||||||
set { _rewards = value ?? new List<ItemReward>(); }
|
set { _rewards = new List<ItemReward>(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public QuestStateEnum State
|
public QuestStateEnum State
|
||||||
|
|
@ -169,30 +169,16 @@ namespace Quests.Runtime
|
||||||
{
|
{
|
||||||
ActiveEvents.Clear();
|
ActiveEvents.Clear();
|
||||||
|
|
||||||
if (pack == null || pack.availableEvents == null || pack.availableEvents.Count == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pool = new List<QuestEventSO>(pack.availableEvents);
|
var pool = new List<QuestEventSO>(pack.availableEvents);
|
||||||
int toPick = Mathf.Min(pack.maxEventsToPick, pool.Count);
|
int toPick = Mathf.Min(pack.maxEventsToPick, pool.Count);
|
||||||
|
|
||||||
int currentTime = 0;
|
|
||||||
if (QuestManager.Instance != null)
|
|
||||||
{
|
|
||||||
currentTime = QuestManager.Instance.currentTimeInQuest;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < toPick; i++)
|
for (int i = 0; i < toPick; i++)
|
||||||
{
|
{
|
||||||
int index = UnityEngine.Random.Range(0, pool.Count);
|
int index = UnityEngine.Random.Range(0, pool.Count);
|
||||||
var pickedSO = pool[index];
|
var pickedSO = pool[index];
|
||||||
pool.RemoveAt(index);
|
pool.RemoveAt(index);
|
||||||
|
|
||||||
if (pickedSO != null)
|
ActiveEvents.Add(pickedSO.ToQuestEventClass(QuestManager.Instance.currentTimeInQuest));
|
||||||
{
|
|
||||||
ActiveEvents.Add(pickedSO.ToQuestEventClass(currentTime));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,35 +201,12 @@ namespace Quests.Runtime
|
||||||
|
|
||||||
public static AdventurerClass GetOneAdventurerFromId(Guid adventurerId)
|
public static AdventurerClass GetOneAdventurerFromId(Guid adventurerId)
|
||||||
{
|
{
|
||||||
// Guard against GameManager or Fact system not ready
|
if (GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers") == null)
|
||||||
Debug.Log($"ID recherché : {adventurerId}");
|
|
||||||
if (GameManager.Instance == null)
|
|
||||||
{
|
{
|
||||||
Debug.Log("GameManager introuvable ou pas initialisé");
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
List<AdventurerClass> currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
|
||||||
if (GameManager.Instance.Fact == null)
|
return currentAdventurers.Find(adventurer => adventurer.ID == adventurerId);
|
||||||
{
|
|
||||||
Debug.Log("Fact introuvable ou null");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var list = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
|
|
||||||
if (list == null)
|
|
||||||
{
|
|
||||||
Debug.Log("Liste des aventuriers est null");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log($"Nombre d'Aventuriers : {list.Count}");
|
|
||||||
}
|
|
||||||
|
|
||||||
var adventurer = list.Find(adventurer => adventurer != null && adventurer.ID == adventurerId);
|
|
||||||
Debug.Log($"retourne : {adventurer}");
|
|
||||||
|
|
||||||
return list.Find(adventurer => adventurer != null && adventurer.ID == adventurerId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Guid> GetIdFromAdventurers(List<AdventurerClass> adventurers)
|
public static List<Guid> GetIdFromAdventurers(List<AdventurerClass> adventurers)
|
||||||
|
|
@ -258,13 +221,8 @@ namespace Quests.Runtime
|
||||||
|
|
||||||
public static Guid GetOneIdFromAdventurer(AdventurerClass adventurer)
|
public static Guid GetOneIdFromAdventurer(AdventurerClass adventurer)
|
||||||
{
|
{
|
||||||
if (adventurer == null || GameManager.Instance == null || GameManager.Instance.Fact == null)
|
List<AdventurerClass> currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
|
||||||
{
|
return currentAdventurers.Find(adv => adv.ID == adventurer.ID).ID;
|
||||||
return Guid.Empty;
|
|
||||||
}
|
|
||||||
var currentAdventurers = GameManager.Instance.Fact.GetFact<List<AdventurerClass>>("my_adventurers");
|
|
||||||
var adv = currentAdventurers?.Find(a => a != null && a.ID == adventurer.ID);
|
|
||||||
return adv != null ? adv.ID : Guid.Empty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Adventurer.Runtime;
|
using Adventurer.Runtime;
|
||||||
|
|
@ -14,15 +13,8 @@ namespace Quests.Runtime
|
||||||
{
|
{
|
||||||
#region Singleton
|
#region Singleton
|
||||||
|
|
||||||
public static QuestManager Instance { get; set; }
|
static QuestManager _instance;
|
||||||
|
public static QuestManager Instance => _instance ??= new QuestManager();
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
if (Instance == this)
|
|
||||||
{
|
|
||||||
Instance = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
@ -31,81 +23,26 @@ namespace Quests.Runtime
|
||||||
public static event Action<QuestClass> OnQuestCompleted;
|
public static event Action<QuestClass> OnQuestCompleted;
|
||||||
public static event Action<QuestEvent> OnEventReceived;
|
public static event Action<QuestEvent> OnEventReceived;
|
||||||
public static event Action<QuestClass> OnEventFromQuest;
|
public static event Action<QuestClass> OnEventFromQuest;
|
||||||
public static event Action<List<QuestTemplate>> OnAvailableQuestsUpdated;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Unity API
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
if (Instance != null && Instance != this)
|
|
||||||
{
|
|
||||||
Destroy(gameObject);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Instance = this;
|
|
||||||
if (_activeEvents == null) _activeEvents = new List<QuestEvent>();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
GameManager.OnTimeAdvanced += CheckMissionsProgress;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
GameManager.OnTimeAdvanced -= CheckMissionsProgress;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
if (_questDatabase != null)
|
|
||||||
{
|
|
||||||
_disponibleQuests = _questDatabase
|
|
||||||
.GetAll()
|
|
||||||
.SelectMany(f => f.questTemplates)
|
|
||||||
.Select(t => t.ToQuestClass(QuestStateEnum.Disponible))
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_disponibleQuests = new List<QuestClass>();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure quest lists are initialized to avoid null issues in consumers
|
|
||||||
if (_activeQuests == null) _activeQuests = new List<QuestClass>();
|
|
||||||
if (_completedQuests == null) _completedQuests = new List<QuestClass>();
|
|
||||||
if (_disponibleQuests == null) _disponibleQuests = new List<QuestClass>();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
List<QuestClass> _activeQuests;
|
|
||||||
List<QuestClass> _disponibleQuests;
|
|
||||||
List<QuestClass> _completedQuests;
|
|
||||||
QuestClass _currentQuest;
|
QuestClass _currentQuest;
|
||||||
|
|
||||||
public QuestClass CurrentQuest
|
public QuestClass CurrentQuest
|
||||||
{
|
{
|
||||||
get => _currentQuest;
|
get => _currentQuest;
|
||||||
set => _currentQuest = value;
|
set => _currentQuest = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<QuestClass> DisponibleQuests
|
List<QuestClass> _activeQuests;
|
||||||
{
|
|
||||||
get => _disponibleQuests;
|
|
||||||
set => _disponibleQuests = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<QuestClass> ActiveQuests
|
public List<QuestClass> ActiveQuests
|
||||||
{
|
{
|
||||||
get => _activeQuests;
|
get => _activeQuests;
|
||||||
set => _activeQuests = value;
|
set => _activeQuests = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<QuestClass> _completedQuests;
|
||||||
public List<QuestClass> CompletedQuests
|
public List<QuestClass> CompletedQuests
|
||||||
{
|
{
|
||||||
get => _completedQuests;
|
get => _completedQuests;
|
||||||
|
|
@ -134,7 +71,7 @@ namespace Quests.Runtime
|
||||||
|
|
||||||
public QuestManager()
|
public QuestManager()
|
||||||
{
|
{
|
||||||
// Unity will call constructor before Awake; avoid subscribing here.
|
GameManager.OnTimeAdvanced += CheckMissionsProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -146,12 +83,6 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void StartQuest(QuestClass quest, List<AdventurerClass> team, GameTime gameTime)
|
public void StartQuest(QuestClass quest, List<AdventurerClass> team, GameTime gameTime)
|
||||||
{
|
{
|
||||||
// Enforce state order: must be Accepted before starting
|
|
||||||
if (quest.State != QuestStateEnum.Accepted)
|
|
||||||
{
|
|
||||||
Debug.LogWarning($"Cannot start quest '{quest.Name}' because it is not in Accepted state (current: {quest.State}).");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
AssignAdventurersToQuest(quest, team);
|
AssignAdventurersToQuest(quest, team);
|
||||||
SetQuestTimings(quest, gameTime);
|
SetQuestTimings(quest, gameTime);
|
||||||
UpdateQuestStatus(quest);
|
UpdateQuestStatus(quest);
|
||||||
|
|
@ -162,7 +93,7 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void CompleteQuest(QuestClass quest, List<Guid> team)
|
public void CompleteQuest(QuestClass quest, List<Guid> team)
|
||||||
{
|
{
|
||||||
if (quest.State != QuestStateEnum.InProgress) return;
|
if (quest.State != QuestStateEnum.Active) return;
|
||||||
|
|
||||||
ReleaseAdventurers(team);
|
ReleaseAdventurers(team);
|
||||||
UpdateQuestCompletionStatus(quest);
|
UpdateQuestCompletionStatus(quest);
|
||||||
|
|
@ -187,16 +118,7 @@ namespace Quests.Runtime
|
||||||
{
|
{
|
||||||
QuestClass quest = GetQuestById(questId);
|
QuestClass quest = GetQuestById(questId);
|
||||||
|
|
||||||
var dict = GetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history");
|
List<QuestEventLog> events = GetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history")[questId];
|
||||||
List<QuestEventLog> events = null;
|
|
||||||
if (dict != null && dict.TryGetValue(questId, out var history))
|
|
||||||
{
|
|
||||||
events = history;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
events = new List<QuestEventLog>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new QuestSummary(quest, events);
|
return new QuestSummary(quest, events);
|
||||||
}
|
}
|
||||||
|
|
@ -206,8 +128,7 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool CanSelectedAdventurers()
|
public bool CanSelectedAdventurers()
|
||||||
{
|
{
|
||||||
// Adventurers can be selected only when the quest has been accepted
|
return _currentQuest != null && _currentQuest.State == QuestStateEnum.Disponible;
|
||||||
return _currentQuest != null && _currentQuest.State == QuestStateEnum.Accepted;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -215,8 +136,8 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsQuestCompleted(string questName)
|
public bool IsQuestCompleted(string questName)
|
||||||
{
|
{
|
||||||
return CompletedQuests != null
|
return ActiveQuests != null
|
||||||
&& CompletedQuests.Any(q => q.Name == questName);
|
&& ActiveQuests.Any(q => q.Name == questName && q.State == QuestStateEnum.Completed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -225,44 +146,18 @@ namespace Quests.Runtime
|
||||||
public List<QuestClass> ResolveQuestsList(List<QuestClass> questsFromSave)
|
public List<QuestClass> ResolveQuestsList(List<QuestClass> questsFromSave)
|
||||||
{
|
{
|
||||||
List<QuestClass> quests = new List<QuestClass>();
|
List<QuestClass> quests = new List<QuestClass>();
|
||||||
foreach (var saved in questsFromSave)
|
foreach (var quest in questsFromSave)
|
||||||
{
|
{
|
||||||
QuestTemplate template = _questDatabase.GetTemplatesByName(saved.Name);
|
QuestTemplate template = _questDatabase.GetTemplatesByName(quest.Name);
|
||||||
if (template == null) continue;
|
if (template == null) continue;
|
||||||
|
quests.Add(template.ToQuestClass(quest.State, quest.ID));
|
||||||
var rebuilt = template.ToQuestClass(saved.State, saved.ID);
|
|
||||||
|
|
||||||
// Restaurer les infos runtime utiles
|
|
||||||
rebuilt.StartSeconds = saved.StartSeconds;
|
|
||||||
rebuilt.EndSeconds = saved.EndSeconds;
|
|
||||||
if (saved.AssignedAdventurersID != null)
|
|
||||||
rebuilt.AssignedAdventurersID = new List<Guid>(saved.AssignedAdventurersID);
|
|
||||||
|
|
||||||
quests.Add(rebuilt);
|
|
||||||
}
|
}
|
||||||
return quests;
|
return quests;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<QuestTemplate> GetAvailableQuests(int level)
|
|
||||||
{
|
|
||||||
var factory = _questDatabase.GetFactoryForLevel(level);
|
|
||||||
if (factory == null)
|
|
||||||
return new List<QuestTemplate>();
|
|
||||||
return factory.questTemplates
|
|
||||||
.Where(q => q.data.MinLevel <= level)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void NotifyAvailableQuestsUpdated(int level)
|
|
||||||
{
|
|
||||||
var available = GetAvailableQuests(level);
|
|
||||||
OnAvailableQuestsUpdated?.Invoke(available);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Utils
|
#region Methods
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Assigne des aventuriers à une quête
|
/// Assigne des aventuriers à une quête
|
||||||
|
|
@ -276,18 +171,6 @@ namespace Quests.Runtime
|
||||||
quest.AssignedAdventurersID = new List<Guid>();
|
quest.AssignedAdventurersID = new List<Guid>();
|
||||||
quest.AssignedAdventurersID.Add(adventurer.ID);
|
quest.AssignedAdventurersID.Add(adventurer.ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Synchroniser la sauvegarde de la quête avec les aventuriers assignés
|
|
||||||
var saveQuests = GetFact<List<QuestClass>>("accepted_quests");
|
|
||||||
if (saveQuests != null)
|
|
||||||
{
|
|
||||||
var saveQuest = saveQuests.FirstOrDefault(q => q.ID == quest.ID);
|
|
||||||
if (saveQuest != null)
|
|
||||||
{
|
|
||||||
saveQuest.AssignedAdventurersID = new List<Guid>(quest.AssignedAdventurersID);
|
|
||||||
}
|
|
||||||
SaveFacts();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -295,7 +178,7 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void SetQuestTimings(QuestClass quest, GameTime gameTime)
|
void SetQuestTimings(QuestClass quest, GameTime gameTime)
|
||||||
{
|
{
|
||||||
quest.State = QuestStateEnum.InProgress;
|
quest.State = QuestStateEnum.Active;
|
||||||
quest.StartSeconds = gameTime.TotalSeconds;
|
quest.StartSeconds = gameTime.TotalSeconds;
|
||||||
quest.EndSeconds = gameTime.TotalSeconds + (quest.Duration * 60);
|
quest.EndSeconds = gameTime.TotalSeconds + (quest.Duration * 60);
|
||||||
}
|
}
|
||||||
|
|
@ -304,18 +187,14 @@ namespace Quests.Runtime
|
||||||
/// Met à jour le statut d'une quête dans les listes actives et sauvegardées
|
/// Met à jour le statut d'une quête dans les listes actives et sauvegardées
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void UpdateQuestStatus(QuestClass quest)
|
void UpdateQuestStatus(QuestClass quest)
|
||||||
{
|
|
||||||
// Avoid duplicates in active quests
|
|
||||||
if (_activeQuests.All(q => q.ID != quest.ID))
|
|
||||||
{
|
{
|
||||||
_activeQuests.Add(quest);
|
_activeQuests.Add(quest);
|
||||||
}
|
List<QuestClass> saveQuests = GetFact<List<QuestClass>>("quests");
|
||||||
List<QuestClass> saveQuests = GetFact<List<QuestClass>>(("accepted_quests"));
|
|
||||||
foreach (var saveQuest in saveQuests)
|
foreach (var saveQuest in saveQuests)
|
||||||
{
|
{
|
||||||
if (saveQuest.Name == quest.Name)
|
if (saveQuest.Name == quest.Name)
|
||||||
{
|
{
|
||||||
saveQuest.State = QuestStateEnum.InProgress;
|
saveQuest.State = QuestStateEnum.Active;
|
||||||
saveQuest.StartSeconds = quest.StartSeconds;
|
saveQuest.StartSeconds = quest.StartSeconds;
|
||||||
saveQuest.EndSeconds = quest.EndSeconds;
|
saveQuest.EndSeconds = quest.EndSeconds;
|
||||||
}
|
}
|
||||||
|
|
@ -328,26 +207,11 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void ReleaseAdventurers(List<Guid> team)
|
void ReleaseAdventurers(List<Guid> team)
|
||||||
{
|
{
|
||||||
bool anyChanged = false;
|
|
||||||
foreach (var adventurerId in team)
|
foreach (var adventurerId in team)
|
||||||
{
|
{
|
||||||
AdventurerClass adventurer = QuestClass.GetOneAdventurerFromId(adventurerId);
|
AdventurerClass adventurer = QuestClass.GetOneAdventurerFromId(adventurerId);
|
||||||
if (adventurer == null)
|
if (adventurer != null)
|
||||||
{
|
|
||||||
Info($"<color=orange>Aventurer {adventurerId} introuvable</color>");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Info($"<color=orange>{adventurer.Name} est dans la team avec le status dispo : {adventurer.IsAvailable}</color>");
|
|
||||||
if (adventurer != null && adventurer.IsAvailable == false)
|
|
||||||
{
|
|
||||||
adventurer.IsAvailable = true;
|
adventurer.IsAvailable = true;
|
||||||
anyChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (anyChanged)
|
|
||||||
{
|
|
||||||
Info("<color=cyan>Comme les données on changées, on les sauvegarde.</color>");
|
|
||||||
SaveFacts();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -360,7 +224,7 @@ namespace Quests.Runtime
|
||||||
_activeQuests.RemoveAll(q => q.Name == quest.Name);
|
_activeQuests.RemoveAll(q => q.Name == quest.Name);
|
||||||
_completedQuests.Add(quest);
|
_completedQuests.Add(quest);
|
||||||
|
|
||||||
List<QuestClass> quests = GetFact<List<QuestClass>>(("accepted_quests"));
|
List<QuestClass> quests = GetFact<List<QuestClass>>("quests");
|
||||||
QuestClass questToUpdate = quests.FirstOrDefault(q => q.ID == quest.ID);
|
QuestClass questToUpdate = quests.FirstOrDefault(q => q.ID == quest.ID);
|
||||||
if (questToUpdate != null)
|
if (questToUpdate != null)
|
||||||
{
|
{
|
||||||
|
|
@ -385,16 +249,15 @@ namespace Quests.Runtime
|
||||||
{
|
{
|
||||||
if(_activeQuests == null) return;
|
if(_activeQuests == null) return;
|
||||||
|
|
||||||
|
|
||||||
var questsToComplete = new List<QuestClass>();
|
var questsToComplete = new List<QuestClass>();
|
||||||
var activeQuests = _activeQuests.Where(q => q.State == QuestStateEnum.InProgress).ToList();
|
var activeQuests = _activeQuests.Where(q => q.State == QuestStateEnum.Active).ToList();
|
||||||
|
|
||||||
foreach (var quest in activeQuests)
|
foreach (var quest in activeQuests)
|
||||||
{
|
{
|
||||||
_snapTime = currentSeconds - quest.StartSeconds;
|
_snapTime = currentSeconds - quest.StartSeconds;
|
||||||
CheckQuestEvents(quest, currentSeconds);
|
CheckQuestEvents(quest, currentSeconds);
|
||||||
|
|
||||||
if (quest.State == QuestStateEnum.InProgress && currentSeconds >= quest.EndSeconds)
|
if (quest.State == QuestStateEnum.Active && currentSeconds >= quest.EndSeconds)
|
||||||
{
|
{
|
||||||
questsToComplete.Add(quest);
|
questsToComplete.Add(quest);
|
||||||
}
|
}
|
||||||
|
|
@ -411,23 +274,14 @@ namespace Quests.Runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void CheckQuestEvents(QuestClass quest, int currentSeconds)
|
void CheckQuestEvents(QuestClass quest, int currentSeconds)
|
||||||
{
|
{
|
||||||
if (quest?.ActiveEvents == null || quest.TriggeredEventsDescriptionKeys == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (var questEvent in quest.ActiveEvents)
|
foreach (var questEvent in quest.ActiveEvents)
|
||||||
{
|
{
|
||||||
if (questEvent == null) continue;
|
|
||||||
if (quest.TriggeredEventsDescriptionKeys.Contains(questEvent.DescriptionKey))
|
if (quest.TriggeredEventsDescriptionKeys.Contains(questEvent.DescriptionKey))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Skip malformed time windows
|
|
||||||
if (questEvent.MinTimeTrigger > questEvent.MaxTimeTrigger)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (_snapTime >= questEvent.MinTimeTrigger && _snapTime <= questEvent.MaxTimeTrigger)
|
if (_snapTime >= questEvent.MinTimeTrigger && _snapTime <= questEvent.MaxTimeTrigger)
|
||||||
{
|
{
|
||||||
float percent = Mathf.Clamp(questEvent.PercentTrigger, 0f, 100f);
|
if (Random.Range(0f, 100f) <= questEvent.PercentTrigger)
|
||||||
if (Random.Range(0f, 100f) <= percent)
|
|
||||||
{
|
{
|
||||||
TriggerEvent(questEvent, quest);
|
TriggerEvent(questEvent, quest);
|
||||||
quest.TriggeredEventsDescriptionKeys.Add(questEvent.DescriptionKey);
|
quest.TriggeredEventsDescriptionKeys.Add(questEvent.DescriptionKey);
|
||||||
|
|
@ -447,22 +301,16 @@ namespace Quests.Runtime
|
||||||
|
|
||||||
var targets = questEvent.GetTargets(quest.AssignedAdventurersID);
|
var targets = questEvent.GetTargets(quest.AssignedAdventurersID);
|
||||||
ApplyEffect(questEvent.Effects, targets);
|
ApplyEffect(questEvent.Effects, targets);
|
||||||
var eventsDict = GetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history");
|
Dictionary<Guid, List<QuestEventLog>> events = GetFact<Dictionary<Guid, List<QuestEventLog>>>("events_quests_history");
|
||||||
if (eventsDict == null)
|
|
||||||
{
|
|
||||||
eventsDict = new Dictionary<Guid, List<QuestEventLog>>();
|
|
||||||
SetFact("events_quests_history", eventsDict, FactPersistence.Persistent);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!eventsDict.ContainsKey(quest.ID))
|
if(!events.ContainsKey(quest.ID))
|
||||||
{
|
{
|
||||||
eventsDict.Add(quest.ID, new List<QuestEventLog>());
|
events.Add(quest.ID, new List<QuestEventLog>());
|
||||||
}
|
}
|
||||||
|
|
||||||
QuestEventLog questEventLog = new QuestEventLog(_snapTime, questEvent.Id);
|
QuestEventLog questEventLog = new QuestEventLog(_snapTime, questEvent.Id);
|
||||||
|
|
||||||
eventsDict[quest.ID].Add(questEventLog);
|
events[quest.ID].Add(questEventLog);
|
||||||
if (_activeEvents == null) _activeEvents = new List<QuestEvent>();
|
|
||||||
_activeEvents.Add(questEvent);
|
_activeEvents.Add(questEvent);
|
||||||
SaveFacts();
|
SaveFacts();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,8 @@ namespace Quests.Runtime
|
||||||
{
|
{
|
||||||
public enum QuestStateEnum
|
public enum QuestStateEnum
|
||||||
{
|
{
|
||||||
Disponible = 0,
|
Disponible,
|
||||||
Accepted = 1,
|
Active,
|
||||||
InProgress = 2,
|
Completed,
|
||||||
Completed = 3,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: efcd90c5fc4a4d29a9edb30408d27e72
|
|
||||||
timeCreated: 1760191011
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using UnityEngine;
|
|
||||||
using Quests.Runtime;
|
|
||||||
using Core.Runtime;
|
|
||||||
|
|
||||||
namespace GuildTycoon.Tests.Editor
|
|
||||||
{
|
|
||||||
public class QuestManagerTests
|
|
||||||
{
|
|
||||||
private GameObject _gmGO;
|
|
||||||
private GameObject _qmGO;
|
|
||||||
private GameManager _gameManager;
|
|
||||||
private QuestManager _questManager;
|
|
||||||
|
|
||||||
[SetUp]
|
|
||||||
public void SetUp()
|
|
||||||
{
|
|
||||||
// Create and initialize GameManager (Awake will set up facts dictionary)
|
|
||||||
_gmGO = new GameObject("GameManager_Test");
|
|
||||||
_gameManager = _gmGO.AddComponent<GameManager>();
|
|
||||||
|
|
||||||
// Ensure profile and base facts are set
|
|
||||||
_gameManager.Profile = "UnitTestProfile";
|
|
||||||
_gameManager.Fact = new FactDictionnary();
|
|
||||||
GameManager.m_gameFacts = _gameManager.Fact; // ensure BaseMonobehaviour access works
|
|
||||||
|
|
||||||
// Pre-seed facts used by QuestManager
|
|
||||||
_gameManager.Fact.SetFact("accepted_quests", new List<QuestClass>(), BaseMonobehaviour.FactPersistence.Normal);
|
|
||||||
_gameManager.Fact.SetFact("events_quests_history", new Dictionary<Guid, List<QuestEventLog>>(), BaseMonobehaviour.FactPersistence.Normal);
|
|
||||||
|
|
||||||
// Create QuestManager
|
|
||||||
_qmGO = new GameObject("QuestManager_Test");
|
|
||||||
_questManager = _qmGO.AddComponent<QuestManager>();
|
|
||||||
|
|
||||||
// Initialize lists to avoid nulls and isolate from Start() DB usage
|
|
||||||
_questManager.ActiveQuests = new List<QuestClass>();
|
|
||||||
_questManager.CompletedQuests = new List<QuestClass>();
|
|
||||||
_questManager.DisponibleQuests = new List<QuestClass>();
|
|
||||||
}
|
|
||||||
|
|
||||||
[TearDown]
|
|
||||||
public void TearDown()
|
|
||||||
{
|
|
||||||
if (_qmGO != null) UnityEngine.Object.DestroyImmediate(_qmGO);
|
|
||||||
if (_gmGO != null) UnityEngine.Object.DestroyImmediate(_gmGO);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void CompletingQuest_MovesItFromActiveToCompleted_AndUpdatesFacts()
|
|
||||||
{
|
|
||||||
// Arrange: create a simple quest in progress
|
|
||||||
var questId = Guid.NewGuid();
|
|
||||||
var quest = new QuestClass(questId, "Test Quest", "Desc", "Obj", duration: 1, difficulty: QuestDifficultyEnum.Easy, reward: new List<Item.Runtime.ItemReward>(), minLevel: 1)
|
|
||||||
{
|
|
||||||
State = QuestStateEnum.InProgress,
|
|
||||||
StartSeconds = 0,
|
|
||||||
EndSeconds = 10,
|
|
||||||
AssignedAdventurersID = new List<Guid>()
|
|
||||||
};
|
|
||||||
|
|
||||||
_questManager.ActiveQuests.Add(quest);
|
|
||||||
|
|
||||||
// Seed facts with the same quest so QuestManager can update saved state
|
|
||||||
var accepted = new List<QuestClass> { new QuestClass(questId, quest.Name, quest.Description, quest.Objective, quest.Duration, quest.Difficulty, quest.Rewards, quest.MinLevel) { State = QuestStateEnum.InProgress } };
|
|
||||||
_gameManager.Fact.SetFact("accepted_quests", accepted, BaseMonobehaviour.FactPersistence.Normal);
|
|
||||||
|
|
||||||
QuestClass completedRaised = null;
|
|
||||||
Action<QuestClass> handler = q => completedRaised = q;
|
|
||||||
QuestManager.OnQuestCompleted += handler;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// Act: Directly complete the quest
|
|
||||||
_questManager.CompleteQuest(quest, quest.AssignedAdventurersID);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
QuestManager.OnQuestCompleted -= handler; // ensure unsubscribe even if assertion fails
|
|
||||||
}
|
|
||||||
|
|
||||||
// Assert: quest state and lists updated
|
|
||||||
Assert.AreEqual(QuestStateEnum.Completed, quest.State, "La quête devrait être marquée comme complétée.");
|
|
||||||
CollectionAssert.DoesNotContain(_questManager.ActiveQuests, quest, "La quête ne doit plus être dans la liste des quêtes actives.");
|
|
||||||
CollectionAssert.Contains(_questManager.CompletedQuests, quest, "La quête devrait apparaître dans la liste des quêtes complétées.");
|
|
||||||
|
|
||||||
// Facts: accepted_quests should reflect Completed state for the same ID
|
|
||||||
var saved = _gameManager.Fact.GetFact<List<QuestClass>>("accepted_quests");
|
|
||||||
var savedQuest = saved.Find(q => q.ID == questId);
|
|
||||||
Assert.IsNotNull(savedQuest, "La quête devrait être présente dans les faits 'accepted_quests'.");
|
|
||||||
Assert.AreEqual(QuestStateEnum.Completed, savedQuest.State, "L'état sauvegardé de la quête devrait être 'Completed'.");
|
|
||||||
|
|
||||||
// Event notification raised
|
|
||||||
Assert.IsNotNull(completedRaised, "Un événement OnQuestCompleted devrait être déclenché.");
|
|
||||||
Assert.AreEqual(questId, completedRaised.ID, "L'événement devrait concerner la même quête.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 64e828a55046493c82c79b4ed49e10ba
|
|
||||||
timeCreated: 1760191011
|
|
||||||
|
|
@ -92,29 +92,13 @@ namespace GameUI.Runtime
|
||||||
_activationButtonText.color = hasAdventurers ? Color.yellow : Color.grey;
|
_activationButtonText.color = hasAdventurers ? Color.yellow : Color.grey;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureUIForQuestState(QuestStateEnum state)
|
private void ConfigureUIForQuestState(QuestStateEnum state)
|
||||||
{
|
{
|
||||||
Info($"<color=orange>Etat de la quête : {state}</color>");
|
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case QuestStateEnum.Disponible:
|
case QuestStateEnum.Disponible:
|
||||||
// Before acceptance: can see info but shouldn't assign adventurers yet
|
|
||||||
_buttonActivation.SetActive(false);
|
|
||||||
_adventurersOnThisQuestPanel.SetActive(false);
|
|
||||||
_adventurersSelection.SetActive(false);
|
|
||||||
_panelRecap.SetActive(false);
|
|
||||||
break;
|
|
||||||
case QuestStateEnum.Accepted:
|
|
||||||
// After acceptance: allow selecting adventurers and launching the quest
|
|
||||||
_buttonActivation.SetActive(true);
|
_buttonActivation.SetActive(true);
|
||||||
_adventurersOnThisQuestPanel.SetActive(false);
|
_adventurersOnThisQuestPanel.SetActive(false);
|
||||||
_adventurersSelection.SetActive(true);
|
|
||||||
_panelRecap.SetActive(false);
|
|
||||||
break;
|
|
||||||
case QuestStateEnum.InProgress:
|
|
||||||
_buttonActivation.SetActive(false);
|
|
||||||
_adventurersOnThisQuestPanel.SetActive(true);
|
|
||||||
_adventurersSelection.SetActive(false);
|
|
||||||
_panelRecap.SetActive(false);
|
_panelRecap.SetActive(false);
|
||||||
break;
|
break;
|
||||||
case QuestStateEnum.Completed:
|
case QuestStateEnum.Completed:
|
||||||
|
|
@ -124,6 +108,13 @@ namespace GameUI.Runtime
|
||||||
_panelRecap.SetActive(true);
|
_panelRecap.SetActive(true);
|
||||||
_panelRecap.GetComponent<QuestLogsListUI>().ShowFor(QuestManager.Instance.CurrentQuest.ID);
|
_panelRecap.GetComponent<QuestLogsListUI>().ShowFor(QuestManager.Instance.CurrentQuest.ID);
|
||||||
break;
|
break;
|
||||||
|
case QuestStateEnum.Active:
|
||||||
|
Info("La quête est active.");
|
||||||
|
_buttonActivation.SetActive(false);
|
||||||
|
_adventurersOnThisQuestPanel.SetActive(true);
|
||||||
|
_adventurersSelection.SetActive(false);
|
||||||
|
_panelRecap.SetActive(false);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
_buttonActivation.SetActive(false);
|
_buttonActivation.SetActive(false);
|
||||||
_adventurersOnThisQuestPanel.SetActive(true);
|
_adventurersOnThisQuestPanel.SetActive(true);
|
||||||
|
|
@ -139,7 +130,6 @@ namespace GameUI.Runtime
|
||||||
quest = FindMatchingActiveQuest(quest);
|
quest = FindMatchingActiveQuest(quest);
|
||||||
QuestManager.Instance.CurrentQuest = quest;
|
QuestManager.Instance.CurrentQuest = quest;
|
||||||
|
|
||||||
Info($"<color=green><InfoQuestPanel.cs:143></color><color=orange>{quest.Name}</color>");
|
|
||||||
UpdateQuestInfoDisplay(quest);
|
UpdateQuestInfoDisplay(quest);
|
||||||
ConfigureUIForQuestState(quest.State);
|
ConfigureUIForQuestState(quest.State);
|
||||||
}
|
}
|
||||||
|
|
@ -163,7 +153,7 @@ namespace GameUI.Runtime
|
||||||
return matchingQuest ?? quest;
|
return matchingQuest ?? quest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateQuestInfoDisplay(QuestClass quest)
|
private void UpdateQuestInfoDisplay(QuestClass quest)
|
||||||
{
|
{
|
||||||
m_title.text = LocalizationSystem.Instance.GetLocalizedText(quest?.Name);
|
m_title.text = LocalizationSystem.Instance.GetLocalizedText(quest?.Name);
|
||||||
string descKey = quest?.Description;
|
string descKey = quest?.Description;
|
||||||
|
|
|
||||||
|
|
@ -57,30 +57,10 @@ namespace GameUI.Runtime
|
||||||
|
|
||||||
public void AcceptQuest()
|
public void AcceptQuest()
|
||||||
{
|
{
|
||||||
// Ensure state order: Disponible -> Accepted
|
List<QuestClass> quests = GetFact<List<QuestClass>>("quests");
|
||||||
_quest.State = QuestStateEnum.Accepted;
|
quests.Add(_quest);
|
||||||
|
|
||||||
// Persist in saved quests list, ensure it exists
|
|
||||||
var savedQuests = GetFact<List<QuestClass>>("accepted_quests");
|
|
||||||
if (savedQuests == null)
|
|
||||||
{
|
|
||||||
savedQuests = new List<QuestClass>();
|
|
||||||
SetFact("accepted_quests", savedQuests, FactPersistence.Persistent);
|
|
||||||
}
|
|
||||||
// Avoid duplicates by GUID
|
|
||||||
if (!savedQuests.Any(q => q.ID == _quest.ID))
|
|
||||||
{
|
|
||||||
savedQuests.Add(_quest);
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveFacts();
|
SaveFacts();
|
||||||
|
|
||||||
// Refresh quest UIs and availability board
|
|
||||||
QuestSignals.RaiseRefreshQuests();
|
QuestSignals.RaiseRefreshQuests();
|
||||||
var player = GetFact<Player.Runtime.PlayerClass>(GameManager.Instance.Profile);
|
|
||||||
QuestManager.Instance.NotifyAvailableQuestsUpdated(player.GuildLevel);
|
|
||||||
|
|
||||||
// Remove the accepted card from the board
|
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ namespace GameUI.Runtime
|
||||||
m_check.SetActive(false);
|
m_check.SetActive(false);
|
||||||
m_hourglass.SetActive(false);
|
m_hourglass.SetActive(false);
|
||||||
break;
|
break;
|
||||||
case QuestStateEnum.InProgress:
|
case QuestStateEnum.Active:
|
||||||
m_check.SetActive(false);
|
m_check.SetActive(false);
|
||||||
m_hourglass.SetActive(true);
|
m_hourglass.SetActive(true);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Core.Runtime;
|
using Core.Runtime;
|
||||||
|
|
@ -11,40 +12,72 @@ namespace GameUI.Runtime
|
||||||
{
|
{
|
||||||
public class QuestsBoardPanel : BaseMonobehaviour
|
public class QuestsBoardPanel : BaseMonobehaviour
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#region Publics
|
||||||
|
|
||||||
|
public QuestFactoryDatabase _questFactoryDatabase;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Unity API
|
#region Unity API
|
||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
_player = GetFact<PlayerClass>(GameManager.Instance.Profile);
|
_player = GetFact<PlayerClass>(GameManager.Instance.Profile);
|
||||||
QuestManager.OnAvailableQuestsUpdated += OnAvailableQuestsChanged;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
/*void Start()
|
||||||
{
|
{
|
||||||
QuestManager.OnAvailableQuestsUpdated -= OnAvailableQuestsChanged;
|
foreach (var txt in GetComponentsInChildren<TMP_Text>())
|
||||||
|
{
|
||||||
|
txt.text = LocalizationSystem.Instance.GetLocalizedText(txt.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var factory = _questFactoryDatabase.GetFactoryForLevel(_player.GuildLevel);
|
||||||
|
|
||||||
|
if (factory != null)
|
||||||
|
{
|
||||||
|
var availableTemplates = factory.questTemplates
|
||||||
|
.Where(q => q.data.MinLevel <= _player.GuildLevel)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
List<QuestClass> acceptedQuestNames = new List<QuestClass>();
|
||||||
|
if (FactExists<List<QuestClass>>("quests", out _))
|
||||||
|
{
|
||||||
|
acceptedQuestNames = GetFact<List<QuestClass>>("quests");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var quest in availableTemplates)
|
||||||
|
{
|
||||||
|
if (acceptedQuestNames != null && acceptedQuestNames.Any(q => q.ID == quest.data.ID))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
DisplayCard(quest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
InitializeLocalization();
|
InitializeLocalization();
|
||||||
List<QuestTemplate> availableTemplates = QuestManager.Instance.GetAvailableQuests(_player.GuildLevel);
|
|
||||||
List<QuestClass> acceptedQuests = QuestManager.Instance.ActiveQuests;
|
List<QuestTemplate> availableTemplates = GetAvailableQuests();
|
||||||
|
|
||||||
|
List<QuestClass> acceptedQuests = GetAcceptedQuests();
|
||||||
|
|
||||||
DisplayAvailableQuests(availableTemplates, acceptedQuests);
|
DisplayAvailableQuests(availableTemplates, acceptedQuests);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public
|
|
||||||
|
|
||||||
void OnAvailableQuestsChanged(List<QuestTemplate> availableTemplates)
|
#region Main Methods
|
||||||
{
|
|
||||||
List<QuestClass> acceptedQuests = QuestManager.Instance.ActiveQuests;
|
//
|
||||||
ClearPanel();
|
|
||||||
DisplayAvailableQuests(availableTemplates, acceptedQuests);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Utils
|
#region Utils
|
||||||
|
|
||||||
void InitializeLocalization()
|
void InitializeLocalization()
|
||||||
|
|
@ -55,64 +88,32 @@ namespace GameUI.Runtime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearPanel()
|
List<QuestTemplate> GetAvailableQuests()
|
||||||
{
|
{
|
||||||
foreach (Transform child in _panel.transform)
|
var factory = _questFactoryDatabase.GetFactoryForLevel(_player.GuildLevel);
|
||||||
{
|
if (factory == null)
|
||||||
Destroy(child.gameObject);
|
return new List<QuestTemplate>();
|
||||||
|
return factory.questTemplates
|
||||||
|
.Where(q => q.data.MinLevel <= _player.GuildLevel)
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<QuestClass> GetAcceptedQuests()
|
||||||
|
{
|
||||||
|
if (FactExists<List<QuestClass>>("quests", out _))
|
||||||
|
{
|
||||||
|
return GetFact<List<QuestClass>>("quests");
|
||||||
|
}
|
||||||
|
return new List<QuestClass>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayAvailableQuests(List<QuestTemplate> availableTemplates, List<QuestClass> acceptedQuests)
|
void DisplayAvailableQuests(List<QuestTemplate> availableTemplates, List<QuestClass> acceptedQuests)
|
||||||
{
|
{
|
||||||
// Build a set of started/accepted quest IDs to filter out from the board
|
foreach(var quest in availableTemplates)
|
||||||
var startedIds = new HashSet<System.Guid>();
|
|
||||||
// Active (in progress)
|
|
||||||
foreach (var q in QuestManager.Instance.ActiveQuests ?? new List<QuestClass>())
|
|
||||||
{
|
|
||||||
if (q != null && q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
|
||||||
}
|
|
||||||
// Completed
|
|
||||||
foreach (var q in QuestManager.Instance.CompletedQuests ?? new List<QuestClass>())
|
|
||||||
{
|
|
||||||
if (q != null && q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
|
||||||
}
|
|
||||||
// Accepted but not yet started (persisted list)
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (FactExists<List<QuestClass>>("accepted_quests", out var accepted) && accepted != null)
|
|
||||||
{
|
|
||||||
foreach (var q in accepted)
|
|
||||||
{
|
|
||||||
if (q != null && q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Try to read anyway (some implementations auto-initialize facts)
|
|
||||||
var fallbackAccepted = GetFact<List<QuestClass>>("accepted_quests");
|
|
||||||
if (fallbackAccepted != null)
|
|
||||||
{
|
|
||||||
foreach (var q in fallbackAccepted)
|
|
||||||
{
|
|
||||||
if (q != null && q.ID != System.Guid.Empty) startedIds.Add(q.ID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// If facts system isn't ready, just skip; board will refresh later
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var template in availableTemplates)
|
|
||||||
{
|
|
||||||
// Skip if this template already started/accepted (by GUID)
|
|
||||||
if (System.Guid.TryParse(template.m_assetGuid, out var guid) && startedIds.Contains(guid))
|
|
||||||
{
|
{
|
||||||
|
if (acceptedQuests.Any(q => q.Name == quest.data.Name))
|
||||||
continue;
|
continue;
|
||||||
}
|
DisplayCard(quest);
|
||||||
DisplayCard(template);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,20 +121,12 @@ namespace GameUI.Runtime
|
||||||
{
|
{
|
||||||
GameObject GO = Instantiate(_questCardPrefab, _panel.transform);
|
GameObject GO = Instantiate(_questCardPrefab, _panel.transform);
|
||||||
QuestCardUI card = GO.GetComponent<QuestCardUI>();
|
QuestCardUI card = GO.GetComponent<QuestCardUI>();
|
||||||
// Use the template's asset GUID as the quest ID so we can track acceptance/completion by template
|
|
||||||
if (System.Guid.TryParse(quest.m_assetGuid, out var templateGuid))
|
|
||||||
{
|
|
||||||
card.Setup(quest.ToQuestClass(QuestStateEnum.Disponible, templateGuid));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Fallback: generate a new quest with a random ID
|
|
||||||
card.Setup(quest.ToQuestClass(QuestStateEnum.Disponible));
|
card.Setup(quest.ToQuestClass(QuestStateEnum.Disponible));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region Privates and Protected
|
#region Privates and Protected
|
||||||
|
|
||||||
PlayerClass _player;
|
PlayerClass _player;
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,9 @@ namespace GameUI.Runtime
|
||||||
Destroy(child.gameObject);
|
Destroy(child.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FactExists<List<QuestClass>>(("accepted_quests"), out _))
|
if (FactExists<List<QuestClass>>("quests", out _))
|
||||||
{
|
{
|
||||||
List<QuestClass> questsFromSave = GetFact<List<QuestClass>>(("accepted_quests"));
|
List<QuestClass> questsFromSave = GetFact<List<QuestClass>>("quests");
|
||||||
|
|
||||||
List<QuestClass> quests = QuestManager.Instance.ResolveQuestsList(questsFromSave);
|
List<QuestClass> quests = QuestManager.Instance.ResolveQuestsList(questsFromSave);
|
||||||
foreach (var quest in quests)
|
foreach (var quest in quests)
|
||||||
|
|
@ -92,6 +92,7 @@ namespace GameUI.Runtime
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region privates and protected
|
#region privates and protected
|
||||||
|
|
||||||
[SerializeField] GameObject _panel;
|
[SerializeField] GameObject _panel;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -514,18 +514,6 @@ PrefabInstance:
|
||||||
propertyPath: m_margin.w
|
propertyPath: m_margin.w
|
||||||
value: -93.406
|
value: -93.406
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 2530292537717208226, guid: adfb75df64ce143cb95a53ac495f35f2, type: 3}
|
|
||||||
propertyPath: m_fontSize
|
|
||||||
value: 40
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2530292537717208226, guid: adfb75df64ce143cb95a53ac495f35f2, type: 3}
|
|
||||||
propertyPath: m_margin.x
|
|
||||||
value: -133.15508
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 2530292537717208226, guid: adfb75df64ce143cb95a53ac495f35f2, type: 3}
|
|
||||||
propertyPath: m_fontSizeBase
|
|
||||||
value: 40
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 3495241234606410280, guid: adfb75df64ce143cb95a53ac495f35f2, type: 3}
|
- target: {fileID: 3495241234606410280, guid: adfb75df64ce143cb95a53ac495f35f2, type: 3}
|
||||||
propertyPath: m_isVerbose
|
propertyPath: m_isVerbose
|
||||||
value: 0
|
value: 0
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.ai.navigation": "2.0.9",
|
"com.unity.ai.navigation": "2.0.6",
|
||||||
"com.unity.collab-proxy": "2.9.3",
|
"com.unity.collab-proxy": "2.8.2",
|
||||||
"com.unity.ide.rider": "3.0.38",
|
"com.unity.ide.rider": "3.0.36",
|
||||||
"com.unity.ide.visualstudio": "2.0.23",
|
"com.unity.ide.visualstudio": "2.0.22",
|
||||||
"com.unity.inputsystem": "1.14.2",
|
"com.unity.inputsystem": "1.13.1",
|
||||||
"com.unity.multiplayer.center": "1.0.0",
|
"com.unity.multiplayer.center": "1.0.0",
|
||||||
"com.unity.nuget.newtonsoft-json": "3.2.1",
|
"com.unity.nuget.newtonsoft-json": "3.2.1",
|
||||||
"com.unity.render-pipelines.universal": "17.2.0",
|
"com.unity.render-pipelines.universal": "17.0.3",
|
||||||
"com.unity.test-framework": "1.6.0",
|
"com.unity.test-framework": "1.4.6",
|
||||||
"com.unity.timeline": "1.8.9",
|
"com.unity.timeline": "1.8.7",
|
||||||
"com.unity.toolchain.linux-x86_64": "2.0.10",
|
"com.unity.toolchain.linux-x86_64": "2.0.10",
|
||||||
"com.unity.ugui": "2.0.0",
|
"com.unity.ugui": "2.0.0",
|
||||||
"com.unity.visualscripting": "1.9.7",
|
"com.unity.visualscripting": "1.9.5",
|
||||||
"com.unity.modules.accessibility": "1.0.0",
|
"com.unity.modules.accessibility": "1.0.0",
|
||||||
"com.unity.modules.ai": "1.0.0",
|
"com.unity.modules.ai": "1.0.0",
|
||||||
"com.unity.modules.androidjni": "1.0.0",
|
"com.unity.modules.androidjni": "1.0.0",
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
},
|
},
|
||||||
"com.unity.ai.navigation": {
|
"com.unity.ai.navigation": {
|
||||||
"version": "2.0.9",
|
"version": "2.0.6",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.burst": {
|
"com.unity.burst": {
|
||||||
"version": "1.8.25",
|
"version": "1.8.19",
|
||||||
"depth": 2,
|
"depth": 2,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -26,21 +26,20 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.collab-proxy": {
|
"com.unity.collab-proxy": {
|
||||||
"version": "2.9.3",
|
"version": "2.8.2",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.collections": {
|
"com.unity.collections": {
|
||||||
"version": "2.5.7",
|
"version": "2.5.1",
|
||||||
"depth": 2,
|
"depth": 2,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.burst": "1.8.19",
|
"com.unity.burst": "1.8.17",
|
||||||
"com.unity.mathematics": "1.3.2",
|
"com.unity.test-framework": "1.4.5",
|
||||||
"com.unity.test-framework": "1.4.6",
|
"com.unity.nuget.mono-cecil": "1.11.4",
|
||||||
"com.unity.nuget.mono-cecil": "1.11.5",
|
|
||||||
"com.unity.test-framework.performance": "3.0.3"
|
"com.unity.test-framework.performance": "3.0.3"
|
||||||
},
|
},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
|
|
@ -48,11 +47,12 @@
|
||||||
"com.unity.ext.nunit": {
|
"com.unity.ext.nunit": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "registry",
|
||||||
"dependencies": {}
|
"dependencies": {},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.ide.rider": {
|
"com.unity.ide.rider": {
|
||||||
"version": "3.0.38",
|
"version": "3.0.36",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -61,7 +61,7 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.ide.visualstudio": {
|
"com.unity.ide.visualstudio": {
|
||||||
"version": "2.0.23",
|
"version": "2.0.22",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.inputsystem": {
|
"com.unity.inputsystem": {
|
||||||
"version": "1.14.2",
|
"version": "1.13.1",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.nuget.mono-cecil": {
|
"com.unity.nuget.mono-cecil": {
|
||||||
"version": "1.11.5",
|
"version": "1.11.4",
|
||||||
"depth": 3,
|
"depth": 3,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
|
|
@ -108,7 +108,7 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.render-pipelines.core": {
|
"com.unity.render-pipelines.core": {
|
||||||
"version": "17.2.0",
|
"version": "17.0.3",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -123,12 +123,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.render-pipelines.universal": {
|
"com.unity.render-pipelines.universal": {
|
||||||
"version": "17.2.0",
|
"version": "17.0.3",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.render-pipelines.core": "17.2.0",
|
"com.unity.render-pipelines.core": "17.0.3",
|
||||||
"com.unity.shadergraph": "17.2.0",
|
"com.unity.shadergraph": "17.0.3",
|
||||||
"com.unity.render-pipelines.universal-config": "17.0.3"
|
"com.unity.render-pipelines.universal-config": "17.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -158,11 +158,11 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.shadergraph": {
|
"com.unity.shadergraph": {
|
||||||
"version": "17.2.0",
|
"version": "17.0.3",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.render-pipelines.core": "17.2.0",
|
"com.unity.render-pipelines.core": "17.0.3",
|
||||||
"com.unity.searcher": "4.9.3"
|
"com.unity.searcher": "4.9.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -183,27 +183,28 @@
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.test-framework": {
|
"com.unity.test-framework": {
|
||||||
"version": "1.6.0",
|
"version": "1.4.6",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "builtin",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.ext.nunit": "2.0.3",
|
"com.unity.ext.nunit": "2.0.3",
|
||||||
"com.unity.modules.imgui": "1.0.0",
|
"com.unity.modules.imgui": "1.0.0",
|
||||||
"com.unity.modules.jsonserialize": "1.0.0"
|
"com.unity.modules.jsonserialize": "1.0.0"
|
||||||
}
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.test-framework.performance": {
|
"com.unity.test-framework.performance": {
|
||||||
"version": "3.2.0",
|
"version": "3.0.3",
|
||||||
"depth": 3,
|
"depth": 3,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.test-framework": "1.1.33",
|
"com.unity.test-framework": "1.1.31",
|
||||||
"com.unity.modules.jsonserialize": "1.0.0"
|
"com.unity.modules.jsonserialize": "1.0.0"
|
||||||
},
|
},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.timeline": {
|
"com.unity.timeline": {
|
||||||
"version": "1.8.9",
|
"version": "1.8.7",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -234,7 +235,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.visualscripting": {
|
"com.unity.visualscripting": {
|
||||||
"version": "1.9.7",
|
"version": "1.9.5",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -391,8 +392,7 @@
|
||||||
"com.unity.modules.ui": "1.0.0",
|
"com.unity.modules.ui": "1.0.0",
|
||||||
"com.unity.modules.imgui": "1.0.0",
|
"com.unity.modules.imgui": "1.0.0",
|
||||||
"com.unity.modules.jsonserialize": "1.0.0",
|
"com.unity.modules.jsonserialize": "1.0.0",
|
||||||
"com.unity.modules.hierarchycore": "1.0.0",
|
"com.unity.modules.hierarchycore": "1.0.0"
|
||||||
"com.unity.modules.physics": "1.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.modules.umbra": {
|
"com.unity.modules.umbra": {
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,6 @@ PlayerSettings:
|
||||||
muteOtherAudioSources: 0
|
muteOtherAudioSources: 0
|
||||||
Prepare IOS For Recording: 0
|
Prepare IOS For Recording: 0
|
||||||
Force IOS Speakers When Recording: 0
|
Force IOS Speakers When Recording: 0
|
||||||
audioSpatialExperience: 0
|
|
||||||
deferSystemGesturesMode: 0
|
deferSystemGesturesMode: 0
|
||||||
hideHomeButton: 0
|
hideHomeButton: 0
|
||||||
submitAnalytics: 1
|
submitAnalytics: 1
|
||||||
|
|
@ -133,7 +132,6 @@ PlayerSettings:
|
||||||
switchNVNMaxPublicSamplerIDCount: 0
|
switchNVNMaxPublicSamplerIDCount: 0
|
||||||
switchMaxWorkerMultiple: 8
|
switchMaxWorkerMultiple: 8
|
||||||
switchNVNGraphicsFirmwareMemory: 32
|
switchNVNGraphicsFirmwareMemory: 32
|
||||||
switchGraphicsJobsSyncAfterKick: 1
|
|
||||||
vulkanNumSwapchainBuffers: 3
|
vulkanNumSwapchainBuffers: 3
|
||||||
vulkanEnableSetSRGBWrite: 0
|
vulkanEnableSetSRGBWrite: 0
|
||||||
vulkanEnablePreTransform: 1
|
vulkanEnablePreTransform: 1
|
||||||
|
|
@ -276,9 +274,6 @@ PlayerSettings:
|
||||||
AndroidBuildApkPerCpuArchitecture: 0
|
AndroidBuildApkPerCpuArchitecture: 0
|
||||||
AndroidTVCompatibility: 0
|
AndroidTVCompatibility: 0
|
||||||
AndroidIsGame: 1
|
AndroidIsGame: 1
|
||||||
androidAppCategory: 3
|
|
||||||
useAndroidAppCategory: 1
|
|
||||||
androidAppCategoryOther:
|
|
||||||
AndroidEnableTango: 0
|
AndroidEnableTango: 0
|
||||||
androidEnableBanner: 1
|
androidEnableBanner: 1
|
||||||
androidUseLowAccuracyLocation: 0
|
androidUseLowAccuracyLocation: 0
|
||||||
|
|
@ -522,10 +517,7 @@ PlayerSettings:
|
||||||
m_Height: 720
|
m_Height: 720
|
||||||
m_Kind: 1
|
m_Kind: 1
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
m_BuildTargetBatching:
|
m_BuildTargetBatching: []
|
||||||
- m_BuildTarget: Standalone
|
|
||||||
m_StaticBatching: 1
|
|
||||||
m_DynamicBatching: 0
|
|
||||||
m_BuildTargetShaderSettings: []
|
m_BuildTargetShaderSettings: []
|
||||||
m_BuildTargetGraphicsJobs: []
|
m_BuildTargetGraphicsJobs: []
|
||||||
m_BuildTargetGraphicsJobMode: []
|
m_BuildTargetGraphicsJobMode: []
|
||||||
|
|
@ -551,7 +543,6 @@ PlayerSettings:
|
||||||
- serializedVersion: 2
|
- serializedVersion: 2
|
||||||
m_BuildTarget: Android
|
m_BuildTarget: Android
|
||||||
m_EncodingQuality: 1
|
m_EncodingQuality: 1
|
||||||
m_BuildTargetGroupHDRCubemapEncodingQuality: []
|
|
||||||
m_BuildTargetGroupLightmapSettings: []
|
m_BuildTargetGroupLightmapSettings: []
|
||||||
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
||||||
m_BuildTargetNormalMapEncoding:
|
m_BuildTargetNormalMapEncoding:
|
||||||
|
|
@ -820,12 +811,12 @@ PlayerSettings:
|
||||||
webGLMemoryLinearGrowthStep: 16
|
webGLMemoryLinearGrowthStep: 16
|
||||||
webGLMemoryGeometricGrowthStep: 0.2
|
webGLMemoryGeometricGrowthStep: 0.2
|
||||||
webGLMemoryGeometricGrowthCap: 96
|
webGLMemoryGeometricGrowthCap: 96
|
||||||
|
webGLEnableWebGPU: 0
|
||||||
webGLPowerPreference: 2
|
webGLPowerPreference: 2
|
||||||
webGLWebAssemblyTable: 0
|
webGLWebAssemblyTable: 0
|
||||||
webGLWebAssemblyBigInt: 0
|
webGLWebAssemblyBigInt: 0
|
||||||
webGLCloseOnQuit: 0
|
webGLCloseOnQuit: 0
|
||||||
webWasm2023: 0
|
webWasm2023: 0
|
||||||
webEnableSubmoduleStrippingCompatibility: 0
|
|
||||||
scriptingDefineSymbols:
|
scriptingDefineSymbols:
|
||||||
Android: DOTWEEN
|
Android: DOTWEEN
|
||||||
EmbeddedLinux: DOTWEEN
|
EmbeddedLinux: DOTWEEN
|
||||||
|
|
@ -955,5 +946,3 @@ PlayerSettings:
|
||||||
insecureHttpOption: 0
|
insecureHttpOption: 0
|
||||||
androidVulkanDenyFilterList: []
|
androidVulkanDenyFilterList: []
|
||||||
androidVulkanAllowFilterList: []
|
androidVulkanAllowFilterList: []
|
||||||
androidVulkanDeviceFilterListAsset: {fileID: 0}
|
|
||||||
d3d12DeviceFilterListAsset: {fileID: 0}
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
m_EditorVersion: 6000.2.7f2
|
m_EditorVersion: 6000.0.39f1
|
||||||
m_EditorVersionWithRevision: 6000.2.7f2 (2b518236b676)
|
m_EditorVersionWithRevision: 6000.0.39f1 (15ea7ed0b100)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
shaderVariantLimit: 128
|
shaderVariantLimit: 128
|
||||||
overrideShaderVariantLimit: 0
|
|
||||||
customInterpolatorErrorThreshold: 32
|
customInterpolatorErrorThreshold: 32
|
||||||
customInterpolatorWarningThreshold: 16
|
customInterpolatorWarningThreshold: 16
|
||||||
customHeatmapValues: {fileID: 0}
|
customHeatmapValues: {fileID: 0}
|
||||||
|
|
|
||||||
|
|
@ -12,4 +12,4 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
|
m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_LastMaterialVersion: 10
|
m_LastMaterialVersion: 9
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue