Compare commits

...

2 Commits

Author SHA1 Message Date
01916c83f6 1 2026-04-12 11:48:01 +08:00
11576d4097 1 2026-04-08 19:32:52 +08:00
122 changed files with 96928 additions and 2300 deletions

View File

@ -0,0 +1,40 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TouShi2
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 2048
m_Height: 2048
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 94
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 0
m_MipBias: 0
m_WrapU: 1
m_WrapV: 1
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1a4557ab902d2374e9ccc66e7d32fc03
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 8400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 8ebb96269586dbb4791c020e5cd96d6a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 074ad8c103f2e4a4b8de31bf690f6bea
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: aaebcd2c97c3a9a4b9be18ff6bb001c8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: c501fb0556a03f044bbb46fae7ab8190
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 53c1affe1be5a524ea3be37acca687bd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 1621282bfdab9394a8c9c57cf55e3d5e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 617644bce60295b4b833104d8b6f4f4f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: c596e7926b8718b4d9ed7e02c15ebb0b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

View File

@ -0,0 +1,114 @@
fileFormatVersion: 2
guid: 46fc86781beae4e48a6f781863140bc7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -82,33 +82,33 @@ MonoBehaviour:
m_Textures: m_Textures:
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
m_PrefilteringModeMainLightShadows: 1 m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 4 m_PrefilteringModeAdditionalLight: 3
m_PrefilteringModeAdditionalLightShadows: 1 m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilterXRKeywords: 0 m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 1 m_PrefilteringModeForwardPlus: 0
m_PrefilteringModeDeferredRendering: 1 m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 1 m_PrefilteringModeScreenSpaceOcclusion: 2
m_PrefilterDebugKeywords: 0 m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 0 m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 0 m_PrefilterHDROutput: 1
m_PrefilterSSAODepthNormals: 0 m_PrefilterSSAODepthNormals: 0
m_PrefilterSSAOSourceDepthLow: 0 m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 0 m_PrefilterSSAOSourceDepthMedium: 1
m_PrefilterSSAOSourceDepthHigh: 0 m_PrefilterSSAOSourceDepthHigh: 1
m_PrefilterSSAOInterleaved: 0 m_PrefilterSSAOInterleaved: 1
m_PrefilterSSAOBlueNoise: 0 m_PrefilterSSAOBlueNoise: 0
m_PrefilterSSAOSampleCountLow: 0 m_PrefilterSSAOSampleCountLow: 1
m_PrefilterSSAOSampleCountMedium: 0 m_PrefilterSSAOSampleCountMedium: 1
m_PrefilterSSAOSampleCountHigh: 0 m_PrefilterSSAOSampleCountHigh: 0
m_PrefilterDBufferMRT1: 0 m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 0 m_PrefilterDBufferMRT2: 1
m_PrefilterDBufferMRT3: 0 m_PrefilterDBufferMRT3: 1
m_PrefilterSoftShadowsQualityLow: 0 m_PrefilterSoftShadowsQualityLow: 1
m_PrefilterSoftShadowsQualityMedium: 0 m_PrefilterSoftShadowsQualityMedium: 1
m_PrefilterSoftShadowsQualityHigh: 0 m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0 m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 0 m_PrefilterScreenCoord: 1
m_PrefilterNativeRenderPass: 0 m_PrefilterNativeRenderPass: 1
m_ShaderVariantLogLevel: 0 m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0 m_ShadowCascades: 0

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e39ff17ff771aa746a2d4c73d066091d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 58e3d70ecae579343a7656a246ca3b47
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 70dae7b1602d0f5499910a6fc78a4727
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: abe8d1e1305c3c2458cc3b3c7e2afc04
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b6b298855abd3b8469dc8003c612960a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -37,7 +37,7 @@ public class ChatUI : MonoBehaviour
private float wakeUpCountdownTime = 5f; private float wakeUpCountdownTime = 5f;
private float wakeUpCurrentTime; private float wakeUpCurrentTime;
private Coroutine coroutine; private Coroutine coroutine;
public XunFeiWakeup xunFeiWakeup;//语音唤醒 public ZXKWakeup xunFeiWakeup;//语音唤醒
private bool chatUIOpen; private bool chatUIOpen;
private string speakTxt; private string speakTxt;
public string SpeakTxt public string SpeakTxt
@ -329,11 +329,10 @@ public class ChatUI : MonoBehaviour
public void ShowDialogueEvent() public void ShowDialogueEvent()
{ {
chatuiObj.transform.DOMove(p1.position, 0.5f); chatuiObj.transform.DOMove(p1.position, 0.5f);
//audioSource.volume = 1;
} }
void Listener() void Listener()
{ {
if (wakeUpCurrentTime <= 0 && !Thinking && /*!Typing*/ /*&& !audioSource.isPlaying &&*/ !chatUIOpen && !prefab_v_next.activeSelf && !prefab_h_next.activeSelf) if (wakeUpCurrentTime <= 0 && !Thinking && !chatUIOpen && !prefab_v_next.activeSelf && !prefab_h_next.activeSelf)
{ {
closed = false; closed = false;
wakeUpCurrentTime = 0; wakeUpCurrentTime = 0;
@ -341,42 +340,17 @@ public class ChatUI : MonoBehaviour
audioSource.Stop(); audioSource.Stop();
if (coroutine != null) StopCoroutine(coroutine); if (coroutine != null) StopCoroutine(coroutine);
GenChatTxt("你好,我在"); GenChatTxt("你好,我在");
//Typing = true;
audioSource.clip = welcomeAudioCilp; audioSource.clip = welcomeAudioCilp;
audioSource.Play(); audioSource.Play();
coroutine = StartCoroutine(WaitExecute(welcomeAudioCilp.length, () => { coroutine = StartCoroutine(WaitExecute(welcomeAudioCilp.length, () => {
wakeUpCurrentTime = wakeUpCountdownTime; wakeUpCurrentTime = wakeUpCountdownTime;
//Typing = false;
ChatAI.Instance.StartRecording(str => { ChatAI.Instance.StartRecording(str => {
SpeakTxt = str; SpeakTxt = str;
}); });
})); }));
} }
} }
//void Check(string txt)
//{
// if (wakeUpCurrentTime <= 0 && Regex.Replace(txt, @"[\p{P}\p{S}]", "").Contains("小智小智") && !Thinking && !Typing && !audioSource.isPlaying && !chatUIOpen)
// {
// closed = false;
// wakeUpCurrentTime = 0;
// ChatAI.Instance.StopVoice();
// audioSource.Stop();
// if (coroutine != null) StopCoroutine(coroutine);
// GenChatTxt("你好,我在");
// Typing = true;
// audioSource.clip = welcomeAudioCilp;
// audioSource.Play();
// coroutine = StartCoroutine(WaitExecute(welcomeAudioCilp.length + 1.5f, () => {
// wakeUpCurrentTime = wakeUpCountdownTime;
// Typing = false;
// }));
// }
// if (!audioSource.isPlaying && wakeUpCurrentTime > 0 && !Thinking && !Typing && !closed && !chatUIOpen)
// {
// Debug.Log("语音正在输入中: " + Regex.Replace(txt, @"[\p{P}\p{S}]", ""));
// SpeakTxt = txt;
// }
//}
void GenChatTxt(string txt) void GenChatTxt(string txt)
{ {
int lineCount = Regex.Matches(txt, @"\r\n|\r|\n").Count + 1; int lineCount = Regex.Matches(txt, @"\r\n|\r|\n").Count + 1;
@ -418,7 +392,6 @@ public class ChatUI : MonoBehaviour
wakeUpCurrentTime = 0; wakeUpCurrentTime = 0;
ChatAI.Instance.StopRecording(); ChatAI.Instance.StopRecording();
Thinking = false; Thinking = false;
//Typing = false;
ChatAI.Instance.StopVoice(); ChatAI.Instance.StopVoice();
ChatAI.Instance.StopSend(); ChatAI.Instance.StopSend();
audioSource.Stop(); audioSource.Stop();
@ -433,6 +406,7 @@ public class ChatUI : MonoBehaviour
{ {
CloseChatTxt(); CloseChatTxt();
action?.Invoke(); action?.Invoke();
action = null;
} }
IEnumerator WaitExecute(float t, Action callBack) IEnumerator WaitExecute(float t, Action callBack)
@ -440,14 +414,4 @@ public class ChatUI : MonoBehaviour
yield return new WaitForSeconds(t); yield return new WaitForSeconds(t);
callBack?.Invoke(); callBack?.Invoke();
} }
//IEnumerator TypeText(float totalTime, string fullText, Action<string> callBack, Action action)
//{
// float timePerCharacter = totalTime / fullText.Length;
// for (int i = 0; i <= fullText.Length; i++)
// {
// callBack?.Invoke(fullText.Substring(0, i));
// yield return new WaitForSeconds(timePerCharacter);
// }
// action?.Invoke();
//}
} }

View File

@ -2,8 +2,10 @@ using LitJson;
using System; using System;
using System.Collections; using System.Collections;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using UnityEngine; using UnityEngine;
using UnityEngine.Networking; using UnityEngine.Networking;
using UnityEngine.Windows;
using YiLiao.Main; using YiLiao.Main;
public class ChatZxkAI : LLM public class ChatZxkAI : LLM
@ -79,7 +81,10 @@ public class ChatZxkAI : LLM
Debug.Log(responseBody["choices"][0]["message"]["content"].ToString() + "\nAI-ºÄʱ" + stopwatch.Elapsed.TotalSeconds); Debug.Log(responseBody["choices"][0]["message"]["content"].ToString() + "\nAI-ºÄʱ" + stopwatch.Elapsed.TotalSeconds);
assistant = responseBody["choices"][0]["message"]["content"].ToString(); assistant = responseBody["choices"][0]["message"]["content"].ToString();
//»Øµ÷ //»Øµ÷
_callback?.Invoke(responseBody["choices"][0]["message"]["content"].ToString()); string pattern = @"\[.*?\]|\(CITE\)";
//执行替换,将匹配到的内容替换为空字符串
string result = Regex.Replace(assistant, pattern, "");
_callback?.Invoke(result);
success = true; success = true;
} }
else if (coroutineRunning) else if (coroutineRunning)

View File

@ -2,21 +2,21 @@ using System.Text.RegularExpressions;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
public class WeiGuan_Sensor : Sensor public class TZQ_Sensor : Sensor
{ {
[SerializeField] [SerializeField]
Text txt; Text txt;
public int WBDeep = 0; public int positionValue = 0;
public override void ReceiveData(string datas) public override void ReceiveData(string datas)
{ {
base.ReceiveData(datas); base.ReceiveData(datas);
Regex regex = new Regex(@"#ID:WBJC.*?WBDeep:(\d+)"); Regex regex = new Regex(@"Position:(\d+)");
Match match = regex.Match(datas); Match match = regex.Match(datas);
if (match.Success) if (match.Success)
{ {
if (int.TryParse(match.Groups[1].Value, out WBDeep)) if (int.TryParse(match.Groups[1].Value, out positionValue))
{ {
txt.text = "WBJC:" + WBDeep; txt.text = "µãλ:" + positionValue;
} }
} }
} }

View File

@ -1,37 +0,0 @@
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// Îü̵»ú
/// </summary>
public class XiTanJi_SenSor : Sensor
{
public bool LianJie;
public float progressValue;
[SerializeField]
Text txt;
public override void ReceiveData(string datas)
{
base.ReceiveData(datas);
Regex regex = new Regex(@"#ID:([^,]+).*?Press:([\d.]+)");
Match match = regex.Match(datas);
if (match.Success)
{
string idName = match.Groups[1].Value;
if (idName == "XTJ")
{
LianJie = true;
txt.text = "CONNECTED";
}
}
Regex regex3 = new Regex(@"DISCONNECTED");
Match match3 = regex3.Match(datas);
if (match3.Success)
{
LianJie = false;
txt.text = "DISCONNECTED";
}
}
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 0b72659c78c0ea74794a69b42cef4e31
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,26 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Unity.VisualScripting.Antlr3.Runtime;
using UnityEngine;
using UnityEngine.UI;
public class XiTanJianCe_SenSor : Sensor
{
[SerializeField]
Text txt;
public int XTDeep = 0;
public override void ReceiveData(string datas)
{
base.ReceiveData(datas);
Regex regex = new Regex(@"#ID:WBJC.*?XTDeep:(\d+)");
Match match = regex.Match(datas);
if (match.Success)
{
if (int.TryParse(match.Groups[1].Value, out XTDeep))
{
txt.text = "WBJC:" + XTDeep;
}
}
}
}

View File

@ -0,0 +1,25 @@
using NAudio.Wave;
using System;
using System.IO;
using System.IO.Ports;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
/// <summary>
/// 语音工具
/// </summary>
public class ZXKWakeup : Sensor
{
//唤醒词:小智小智
public Action callBack;//唤醒回调
public override void ReceiveData(string datas)
{
base.ReceiveData(datas);
if (datas.TrimEnd('\n', '\r') == "hello")
{
callBack?.Invoke();
}
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 57b72e9322c57a34c995136f0b6bb88c guid: 480b147f8d3252a4abaf864aefc8672b
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2

File diff suppressed because it is too large Load Diff

View File

@ -395,7 +395,7 @@ namespace YiLiao.XinFeiTingZhen
{ {
switch (id) switch (id)
{ {
case "1": case "3":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("气管听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("气管听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("气管听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("气管听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("气管听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("气管听诊器位置1_taigebo");
@ -407,7 +407,7 @@ namespace YiLiao.XinFeiTingZhen
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管听诊器位置1_taigebo_透明");
break; break;
case "3": case "1":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置1_taigebo");
@ -419,49 +419,49 @@ namespace YiLiao.XinFeiTingZhen
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置2_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置2_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置2_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置2_taigebo_透明");
break; break;
case "5": case "8":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置3_taigebo_透明");
break; break;
case "6": case "9":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("支气管肺泡听诊器位置4_taigebo_透明");
break; break;
case "7": case "16":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置1_taigebo_透明");
break; break;
case "8": case "28":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("肺泡听诊器位置2_taigebo_透明");
break; break;
case "9": case "23":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置1_taigebo_透明");
break; break;
case "10": case "19":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左右腋中线第5、6肋间听诊器位置2_taigebo_透明");
break; break;
case "11": case "15":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("左锁骨中线与第5肋间交点内0.5cm听诊器位置1_taigebo_透明");
break; break;
case "12": case "11":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("胸骨左缘第3肋间听诊器位置1_taigebo");
@ -479,13 +479,13 @@ namespace YiLiao.XinFeiTingZhen
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("胸骨左缘第5肋间听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("胸骨左缘第5肋间听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("胸骨左缘第5肋间听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("胸骨左缘第5肋间听诊器位置1_taigebo_透明");
break; break;
case "15": case "12":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_taigebo");
GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_taigebo_透明"); GameObject.Find("nan_taigebo_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置1_taigebo_透明");
break; break;
case "16": case "--":
GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2"); GameObject.Find("nan")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2");
GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2_透明"); GameObject.Find("nan_透明")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2_透明");
GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2_taigebo"); GameObject.Find("nan_taigebo")?.GetComponent<TzqController>().SetPos("心底部听诊器位置2_taigebo");

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class CuCaoXingHuXiYin : FsmState<FSMManager> public class CuCaoXingHuXiYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "35--粗糙性呼吸音"; string audioName = "35--粗糙性呼吸音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:35,35;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class CuShiLuoYin : FsmState<FSMManager> public class CuShiLuoYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "1"; string success = "3";
string audioName = "38--大湿罗音"; string audioName = "38--大湿罗音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:3;SONG:38;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("气管听诊器位置1"); fsm.Light("气管听诊器位置1");
@ -24,7 +31,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -75,12 +81,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("Æø¹ÜÌýÕïÆ÷λÖÃ1");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("气管听诊器位置1"); fsm.Unlight("气管听诊器位置1");
@ -88,7 +99,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && success != PositionValue)
{ {
False(); False();
} }
@ -98,7 +109,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,45 @@ namespace YiLiao.XinFeiTingZhen
public class DiDiaoGanLuoYin : FsmState<FSMManager> public class DiDiaoGanLuoYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "3", "4", "5", "6" }; List<string> success = new() { "8", "9" };
Coroutine cor; Coroutine cor;
string audioName = "44--鼾音"; string audioName = "44--鼾音";
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
bool step2_kh;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.PlayBgm(0); GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:44,44;%");
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ModeType.KaoHe)
fsm.Light("支气管肺泡听诊器位置1"); {
fsm.Light("支气管肺泡听诊器位置2"); step2_kh = true;
fsm.Light("支气管肺泡听诊器位置3"); fsm.HideTzq();
fsm.Light("支气管肺泡听诊器位置4"); fsm.ShowTxtImgQuestion("肺部听诊——异常呼吸音——啰音——低调干啰音", 19, 0, 5, () => {
fsm.ShowArrow("将实物听诊器放置于胸骨两侧第1、2肋间隙处进行听诊。", "支气管肺泡听诊器位置1", 0, 999); fsm.ChangeState("ShiLuoYin");
Countdown(); });
}
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
{
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置1");
fsm.Light("支气管肺泡听诊器位置2");
fsm.Light("支气管肺泡听诊器位置3");
fsm.Light("支气管肺泡听诊器位置4");
fsm.ShowArrow("将实物听诊器放置于胸骨两侧第1、2肋间隙处进行听诊。", "支气管肺泡听诊器位置1", 0, 999);
Countdown();
}
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,12 +96,19 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置1");
fsm.Unlight("支气管肺泡听诊器位置2");
fsm.Unlight("支气管肺泡听诊器位置3");
fsm.Unlight("支气管肺泡听诊器位置4");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置1"); fsm.Unlight("支气管肺泡听诊器位置1");
@ -93,17 +118,21 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYin : FsmState<FSMManager> public class DiErXinYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "第二心音"; string audioName = "第二心音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,31 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYinFanChangFenLie : FsmState<FSMManager> public class DiErXinYinFanChangFenLie : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "15", "16" }; List<string> success = new() { "9" };
string audioName = "第二心音反常分裂"; string audioName = "第二心音反常分裂";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo180(() => { GameManager.Instance.senSor.SendFunction("#ID:9;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("心底部听诊器位置1"); fsm.Light("心底部听诊器位置2");
fsm.Light("心底部听诊器位置2"); fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置2", 0, 999);
fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1");
fsm.Unlight("心底部听诊器位置2");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1"); fsm.Unlight("心底部听诊器位置1");
@ -91,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -101,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYinGuDingFenLie : FsmState<FSMManager> public class DiErXinYinGuDingFenLie : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "15", "16" }; List<string> success = new() { "9" };
string audioName = "第二心音固定分裂"; string audioName = "第二心音固定分裂";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo180(() => { GameManager.Instance.senSor.SendFunction("#ID:9;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("心底部听诊器位置1"); fsm.Light("心底部听诊器位置2");
fsm.Light("心底部听诊器位置2"); fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置2", 0, 999);
fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,20 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("心底部听诊器位置2");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1");
fsm.Unlight("心底部听诊器位置2"); fsm.Unlight("心底部听诊器位置2");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -101,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,31 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYinJianRuo : FsmState<FSMManager> public class DiErXinYinJianRuo : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "15", "16" }; List<string> success = new() { "8", "9" };
string audioName = "第二心音减弱"; string audioName = "第二心音减弱";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo180(() => { GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:1,1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("心底部听诊器位置1"); fsm.Light("心底部听诊器位置1");
fsm.Light("心底部听诊器位置2"); fsm.Light("心底部听诊器位置2");
fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置1", 0, 999); fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置1", 0, 999);
Countdown(); Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1");
fsm.Unlight("心底部听诊器位置2");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1"); fsm.Unlight("心底部听诊器位置1");
@ -91,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -101,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYinTongChangFenLie : FsmState<FSMManager> public class DiErXinYinTongChangFenLie : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "15", "16" }; List<string> success = new() { "9" };
string audioName = "第二心音通常分裂"; string audioName = "第二心音通常分裂";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo180(() => { GameManager.Instance.senSor.SendFunction("#ID:9;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("心底部听诊器位置1"); fsm.Light("心底部听诊器位置2");
fsm.Light("心底部听诊器位置2"); fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置2", 0, 999);
fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "心底部听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,20 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("心底部听诊器位置2");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1");
fsm.Unlight("心底部听诊器位置2"); fsm.Unlight("心底部听诊器位置2");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -101,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,15 +7,22 @@ namespace YiLiao.XinFeiTingZhen
public class DiErXinYinZengQiang : FsmState<FSMManager> public class DiErXinYinZengQiang : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "15", "16" }; List<string> success = new() { "8", "9" };
string audioName = "59--第二心音增强"; string audioName = "59--第二心音增强";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo180(() => { GameManager.Instance.multiObjectController.RotateAllTo180(() => {
GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:59,59;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("心底部听诊器位置1"); fsm.Light("心底部听诊器位置1");
@ -27,7 +34,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,12 +84,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1");
fsm.Unlight("心底部听诊器位置2");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("心底部听诊器位置1"); fsm.Unlight("心底部听诊器位置1");
@ -91,7 +102,7 @@ namespace YiLiao.XinFeiTingZhen
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -101,7 +112,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiSanXinYin : FsmState<FSMManager> public class DiSanXinYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "54--正常第三心音"; string audioName = "54--正常第三心音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:54;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiSiXinYin : FsmState<FSMManager> public class DiSiXinYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "第四心音"; string audioName = "第四心音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiYiXinYin : FsmState<FSMManager> public class DiYiXinYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "第一心音"; string audioName = "第一心音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class DiYiXinYinFenLie : FsmState<FSMManager> public class DiYiXinYinFenLie : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11"}; List<string> success = new() { "15"};
string audioName = "61--第一心音分裂"; string audioName = "61--第一心音分裂";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:61;%");
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.PlayBgm(0);
fsm.PlayBgm(0); fsm.ShowTip(0);
fsm.ShowTip(0); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
fsm.ShowArrow("将实物听诊器放置于心底部进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -100,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiYiXinYinJianRuo : FsmState<FSMManager> public class DiYiXinYinJianRuo : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "57--第一心音减弱"; string audioName = "57--第一心音减弱";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:57;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiYiXinYinQiangRuoBuDeng : FsmState<FSMManager> public class DiYiXinYinQiangRuoBuDeng : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "第一心音强弱不等"; string audioName = "第一心音强弱不等";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class DiYiXinYinZengQiang : FsmState<FSMManager> public class DiYiXinYinZengQiang : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
string audioName = "56--第一心音增强"; string audioName = "56--第一心音增强";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:56;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class DuanXuXingHuXiYin : FsmState<FSMManager> public class DuanXuXingHuXiYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "34--断续性呼吸音"; string audioName = "34--断续性呼吸音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:34,34;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,24 +6,44 @@ namespace YiLiao.XinFeiTingZhen
public class ErJianBanQu : FsmState<FSMManager> public class ErJianBanQu : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "11"; string success = "15";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
bool step2_kh;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.PlayBgm(0); GameManager.Instance.senSor.SendFunction("#ID:15;SONG:54;%");
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ModeType.KaoHe)
fsm.PlayClip("二尖瓣区"); {
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); step2_kh = true;
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); fsm.HideTzq();
Countdown(); fsm.ShowTxtImgQuestion("心脏听诊——心脏杂音——舒张期杂音——二尖瓣区", 23, 0, 5, () => {
fsm.ShowTxtImgQuestion("心脏听诊——心脏杂音——舒张期杂音——二尖瓣区", 24, 0, 5, () => {
fsm.ChangeState("ShuZhangZaoQiBenMaLv");
});
});
}
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
{
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.PlayClip("二尖瓣区");
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
Countdown();
}
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -70,28 +90,35 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && success != PositionValue)
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,26 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class ErJianBanQu2 : FsmState<FSMManager> public class ErJianBanQu2 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "72--二尖瓣关闭不全"; string audioName = "72--二尖瓣关闭不全";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo0(() => { GameManager.Instance.senSor.SendFunction("#ID:15;SONG:72;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
Countdown(); Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -77,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,26 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class ErJianBanQu3 : FsmState<FSMManager> public class ErJianBanQu3 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "76--二尖瓣狭窄"; string audioName = "76--二尖瓣狭窄";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo0(() => { GameManager.Instance.senSor.SendFunction("#ID:15;SONG:76;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
Countdown(); Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -77,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,13 +6,20 @@ namespace YiLiao.XinFeiTingZhen
public class FeiDongMaiBanQu : FsmState<FSMManager> public class FeiDongMaiBanQu : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "6"; string success = "9";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:9;SONG:54;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置4"); fsm.Light("支气管肺泡听诊器位置4");
@ -22,7 +29,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -69,19 +75,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("Ö§Æø¹Ü·ÎÅÝÌýÕïÆ÷λÖÃ4");
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置4"); fsm.Unlight("支气管肺泡听诊器位置4");
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && success != PositionValue)
{ {
False(); False();
} }
@ -91,7 +101,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class FeiDongMaiBanQu2 : FsmState<FSMManager> public class FeiDongMaiBanQu2 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "6"; string success = "9";
string audioName = "74--肺动脉瓣区收缩期杂音"; string audioName = "74--肺动脉瓣区收缩期杂音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:9;SONG:74;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置4"); fsm.Light("支气管肺泡听诊器位置4");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("Ö§Æø¹Ü·ÎÅÝÌýÕïÆ÷λÖÃ4");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置4"); fsm.Unlight("支气管肺泡听诊器位置4");
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,21 @@ namespace YiLiao.XinFeiTingZhen
public class FeiDongMaiBanQu3 : FsmState<FSMManager> public class FeiDongMaiBanQu3 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "6"; string success = "9";
string audioName = "肺动脉瓣区"; string audioName = "肺动脉瓣区";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:9;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置4"); fsm.Light("支气管肺泡听诊器位置4");
@ -23,7 +30,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,19 +80,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("Ö§Æø¹Ü·ÎÅÝÌýÕïÆ÷λÖÃ4");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置4"); fsm.Unlight("支气管肺泡听诊器位置4");
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && PositionValue != success)
{ {
False(); False();
} }
@ -96,7 +106,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,25 +7,43 @@ namespace YiLiao.XinFeiTingZhen
public class FeiPaoHuXiYin : FsmState<FSMManager> public class FeiPaoHuXiYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id; bool step2_kh;
//成功的标志 //成功的标志
List<string> success = new() {"7", "8"}; List<string> success = new() {"16", "28"};
Coroutine cor; Coroutine cor;
string audioName = "30--肺泡呼吸音"; string audioName = "30--肺泡呼吸音";
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.PlayBgm(0); GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:30,30;%");
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ModeType.KaoHe)
fsm.Light("肺泡听诊器位置1"); {
fsm.Light("肺泡听诊器位置2"); step2_kh = true;
fsm.ShowArrow("将实物听诊器放置于乳房下部进行听诊。", "肺泡听诊器位置1", 0, 999); fsm.HideTzq();
Countdown(); fsm.ShowTxtImgQuestion("肺部听诊——正常呼吸音——肺泡呼吸音", 15, 0, 5, () => {
fsm.nextState = true;
});
}
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
{
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1");
fsm.Light("肺泡听诊器位置2");
fsm.ShowArrow("将实物听诊器放置于乳房下部进行听诊。", "肺泡听诊器位置1", 0, 999);
Countdown();
}
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +94,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,17 +112,21 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = ""; step2_kh = false;
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,25 +7,43 @@ namespace YiLiao.XinFeiTingZhen
public class FeiPaoHuXiYinJianRuoHuoXiaoShi : FsmState<FSMManager> public class FeiPaoHuXiYinJianRuoHuoXiaoShi : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
Coroutine cor; Coroutine cor;
string audioName = "31--肺泡呼吸音减弱或消失"; string audioName = "31--肺泡呼吸音减弱或消失";
bool step2_kh;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.PlayBgm(0); GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:31,31;%");
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ModeType.KaoHe)
fsm.Light("肺泡听诊器位置1"); {
fsm.Light("肺泡听诊器位置2"); step2_kh = true;
fsm.ShowArrow("将实物听诊器放置于乳房下部进行听诊。", "肺泡听诊器位置1", 0, 999); fsm.HideTzq();
Countdown(); fsm.ShowTxtImgQuestion("肺部听诊——异常呼吸音——异常肺泡呼吸音——肺泡呼吸音减弱或消失", 17, 0, 5, () => {
fsm.ChangeState("GanLuoYin");
});
}
if (fsm.main_gameModel.modeType == ModeType.ShiXun)
{
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1");
fsm.Light("肺泡听诊器位置2");
fsm.ShowArrow("将实物听诊器放置于乳房下部进行听诊。", "肺泡听诊器位置1", 0, 999);
Countdown();
}
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +94,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,17 +112,21 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = ""; step2_kh = false;
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class FeiPaoHuXiYinZengQiang : FsmState<FSMManager> public class FeiPaoHuXiYinZengQiang : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "32--肺泡呼吸音增强"; string audioName = "32--肺泡呼吸音增强";
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
Coroutine cor; Coroutine cor;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:32,32;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,6 +6,9 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTxtImgQuestion("ÐØ²¿Ìå±í±êÖ¾¡ª¡ª¸¡Àß", 4, 0, 2, () => {
fsm.ChangeState("JianJiaGuJianJiaXiaJiao");
});
} }
public override void OnStateStay() public override void OnStateStay()
{ {
@ -14,6 +17,7 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
fsm.nextState = false;
} }
} }
} }

View File

@ -3,17 +3,39 @@ namespace YiLiao.XinFeiTingZhen
{ {
public class GanLuoYin : FsmState<FSMManager> public class GanLuoYin : FsmState<FSMManager>
{ {
bool step2_kh;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
step2_kh = true;
fsm.HideTzq();
GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:43;%");
fsm.ShowTxtImgQuestion("·Î²¿ÌýÕ¡ªÒì³£ºôÎüÒô¡ª¡ª†ªÒô¡ª¡ª¸É†ªÒô", 18, 0, 5, () => {
fsm.ChangeState("DiDiaoGanLuoYin");
});
} }
public override void OnStateStay() public override void OnStateStay()
{ {
base.OnStateStay(); base.OnStateStay();
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq();
fsm.nextState = false;
} }
} }
} }

View File

@ -3,17 +3,38 @@ namespace YiLiao.XinFeiTingZhen
{ {
public class GanLuoYin_ShiLuoYin : FsmState<FSMManager> public class GanLuoYin_ShiLuoYin : FsmState<FSMManager>
{ {
bool step2_kh;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
step2_kh = true;
fsm.HideTzq();
GameManager.Instance.senSor.SendFunction("#ID:8,9,3;SONG:43,43,38;%");
fsm.ShowTxtImgQuestion("·Î²¿ÌýÕ¡ªÒì³£ºôÎüÒô¡ª¡ª†ªÒô¡ª¡ª¸É†ªÒô&ʪ†ªÒô", 21, 0, 5, () => {
fsm.ChangeState("XiongMoMoCaYin");
});
} }
public override void OnStateStay() public override void OnStateStay()
{ {
base.OnStateStay(); base.OnStateStay();
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq();
fsm.nextState = true;
} }
} }
} }

View File

@ -7,14 +7,22 @@ namespace YiLiao.XinFeiTingZhen
public class GaoDiaoGanLuoYin : FsmState<FSMManager> public class GaoDiaoGanLuoYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "3", "4", "5", "6" }; List<string> success = new() { "8", "9" };
Coroutine cor; Coroutine cor;
string audioName = "43--高调干啰音(哨笛音)"; string audioName = "43--高调干啰音(哨笛音)";
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:8,9;SONG:43,43;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置1"); fsm.Light("支气管肺泡听诊器位置1");
@ -27,7 +35,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,12 +85,19 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置1");
fsm.Unlight("支气管肺泡听诊器位置2");
fsm.Unlight("支气管肺泡听诊器位置3");
fsm.Unlight("支气管肺泡听诊器位置4");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置1"); fsm.Unlight("支气管肺泡听诊器位置1");
@ -93,7 +107,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -103,7 +117,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class HuXiYinYanChang : FsmState<FSMManager> public class HuXiYinYanChang : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "呼吸音延长"; string audioName = "呼吸音延长";
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
Coroutine cor; Coroutine cor;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:1,1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,14 +6,15 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTxtQuestion("胸部体表标志——肩胛骨肩胛下角", 1, 0, 2, () => {
fsm.ChangeState("QianZhengZhongXian");
});
} }
public override void OnStateStay()
{
base.OnStateStay();
}
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
fsm.nextState = false;
} }
} }
} }

View File

@ -6,23 +6,32 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
fsm.ShowTxtImgQuestion("垂直线标志——肩胛间区", 13, 0, 2, () => {
GameManager.Instance.multiObjectController.RotateAllTo180(() => { fsm.ChangeState("ZhiQiGuanHuXiYin");
fsm.ShowArrow("点击“两肩胛骨内缘之间的区域”", "两肩胛骨内缘之间的区域", 0, 999);
fsm.Show_Light_EnableInteraction("两肩胛骨内缘之间的区域");
});
fsm.InteractionDown("两肩胛骨内缘之间的区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("两肩胛骨内缘之间的区域", null);
fsm.Unlight_DisableInteraction("两肩胛骨内缘之间的区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛间区动画", () => {
fsm.nextState = true;
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.ShowTip(0);
fsm.PlayBgm(0);
GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.ShowArrow("点击“两肩胛骨内缘之间的区域”", "两肩胛骨内缘之间的区域", 0, 999);
fsm.Show_Light_EnableInteraction("两肩胛骨内缘之间的区域");
});
fsm.InteractionDown("两肩胛骨内缘之间的区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("两肩胛骨内缘之间的区域", null);
fsm.Unlight_DisableInteraction("两肩胛骨内缘之间的区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛间区动画", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateStay() public override void OnStateStay()
{ {

View File

@ -6,23 +6,30 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
fsm.ShowTxtImgQuestion("垂直线标志——肩胛上区", 11, 0, 1, () => {
GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.ShowArrow("点击“肩胛冈以上的区域”", "肩胛冈以上的区域", 0, 999);
fsm.Show_Light_EnableInteraction("肩胛冈以上的区域");
});
fsm.InteractionDown("肩胛冈以上的区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("肩胛冈以上的区域", null);
fsm.Unlight_DisableInteraction("肩胛冈以上的区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛上区动画", () => {
fsm.nextState = true; fsm.nextState = true;
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.ShowTip(0);
fsm.PlayBgm(0);
GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.ShowArrow("点击“肩胛冈以上的区域”", "肩胛冈以上的区域", 0, 999);
fsm.Show_Light_EnableInteraction("肩胛冈以上的区域");
});
fsm.InteractionDown("肩胛冈以上的区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("肩胛冈以上的区域", null);
fsm.Unlight_DisableInteraction("肩胛冈以上的区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛上区动画", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateStay() public override void OnStateStay()
{ {

View File

@ -6,23 +6,31 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
fsm.ShowTxtImgQuestion("垂直线标志——肩胛下区", 12, 0, 1, () => {
GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.ShowArrow("点击“两肩胛下角的连线与第12胸椎水平线之间区域”", "两肩胛下角的连线与第12胸椎水平线之间区域", 0, 999);
fsm.Show_Light_EnableInteraction("两肩胛下角的连线与第12胸椎水平线之间区域");
});
fsm.InteractionDown("两肩胛下角的连线与第12胸椎水平线之间区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("两肩胛下角的连线与第12胸椎水平线之间区域", null);
fsm.Unlight_DisableInteraction("两肩胛下角的连线与第12胸椎水平线之间区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛下区动画", () => {
fsm.nextState = true; fsm.nextState = true;
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.ShowTip(0);
fsm.PlayBgm(0);
GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.ShowArrow("点击“两肩胛下角的连线与第12胸椎水平线之间区域”", "两肩胛下角的连线与第12胸椎水平线之间区域", 0, 999);
fsm.Show_Light_EnableInteraction("两肩胛下角的连线与第12胸椎水平线之间区域");
});
fsm.InteractionDown("两肩胛下角的连线与第12胸椎水平线之间区域", obj => {
fsm.HideArrow();
fsm.InteractionDown("两肩胛下角的连线与第12胸椎水平线之间区域", null);
fsm.Unlight_DisableInteraction("两肩胛下角的连线与第12胸椎水平线之间区域");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛下区动画", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateStay() public override void OnStateStay()
{ {

View File

@ -6,25 +6,33 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
fsm.PlayClip("肩胛线动画1", () => { fsm.ShowTxtImgQuestion("垂直线标志——肩胛线", 10, 0, 2, () => {
GameManager.Instance.multiObjectController.RotateAllTo180(() => { fsm.ChangeState("JianJiaShangQu");
fsm.ShowArrow("点击“肩胛下角”", "肩胛下角", 0, 999);
fsm.Light_EnableInteraction("肩胛下角");
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.InteractionDown("肩胛下角", obj => { fsm.ShowTip(0);
fsm.HideArrow(); fsm.PlayBgm(0);
fsm.InteractionDown("肩胛下角", null); fsm.PlayClip("肩胛线动画1", () => {
fsm.Hide_Unlight_DisableInteraction("肩胛下角"); GameManager.Instance.multiObjectController.RotateAllTo180(() => {
fsm.AddScore(0, 0.5f); fsm.ShowArrow("点击“肩胛下角”", "肩胛下角", 0, 999);
fsm.PlayClip("肩胛线动画2", () => { fsm.Light_EnableInteraction("肩胛下角");
fsm.nextState = true; });
}); });
});
fsm.InteractionDown("肩胛下角", obj => {
fsm.HideArrow();
fsm.InteractionDown("肩胛下角", null);
fsm.Hide_Unlight_DisableInteraction("肩胛下角");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("肩胛线动画2", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateStay() public override void OnStateStay()
{ {

View File

@ -9,7 +9,7 @@ namespace YiLiao.XinFeiTingZhen
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe) if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
{ {
fsm.ShowTxtImgQuestion("ÐØ²¿Ìå±í±êÖ¾¡ª¡ª½£Í»", 3, 0, 2, () => { fsm.ShowTxtImgQuestion("ÐØ²¿Ìå±í±êÖ¾¡ª¡ª½£Í»", 3, 0, 2, () => {
fsm.nextState = true; fsm.ChangeState("FuLei");
}); });
} }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun) if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class KaiBanYin : FsmState<FSMManager> public class KaiBanYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "68--开瓣音"; string audioName = "68--开瓣音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:68;%");
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.PlayBgm(0);
fsm.PlayBgm(0); fsm.ShowTip(0);
fsm.ShowTip(0); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -100,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,45 @@ namespace YiLiao.XinFeiTingZhen
public class LianXuXingZaYin : FsmState<FSMManager> public class LianXuXingZaYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "5" }; List<string> success = new() { "8" };
string audioName = "80--连续性杂音"; string audioName = "80--连续性杂音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
bool step2_kh;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:8;SONG:80;%");
GameManager.Instance.multiObjectController.RotateAllTo0(() => { if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
fsm.ShowTip(0); step2_kh = true;
fsm.Light("支气管肺泡听诊器位置3"); fsm.HideTzq();
fsm.ShowArrow("将实物听诊器放置于胸骨右缘第2肋间处进行听诊。", "支气管肺泡听诊器位置3", 0, 999); fsm.ShowTxtImgQuestion("心脏听诊——心脏杂音——连续性杂音", 26, 0, 5, () => {
Countdown(); fsm.nextState = true;
}); });
}
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
GameManager.Instance.multiObjectController.RotateAllTo0(() => {
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("支气管肺泡听诊器位置3");
fsm.ShowArrow("将实物听诊器放置于胸骨右缘第2肋间处进行听诊。", "支气管肺泡听诊器位置3", 0, 999);
Countdown();
});
}
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,29 +96,37 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置3");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("支气管肺泡听诊器位置3"); fsm.Unlight("支气管肺泡听诊器位置3");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class NianFaYin : FsmState<FSMManager> public class NianFaYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "42--湿罗音捻发音"; string audioName = "42--湿罗音捻发音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:42,42;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -1,21 +1,29 @@
using FSM; using FSM;
using System; using System;
using UnityEngine; using UnityEngine;
using YiLiao.Main;
using ZXKFramework; using ZXKFramework;
namespace YiLiao.XinFeiTingZhen namespace YiLiao.XinFeiTingZhen
{ {
public class QiGuanHuXiYin : FsmState<FSMManager> public class QiGuanHuXiYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
string success = "1"; string success = "3";
string audioName = "气管呼吸音"; string audioName = "气管呼吸音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.multiObjectController.RotateAllTo0(() => { GameManager.Instance.multiObjectController.RotateAllTo0(() => {
GameManager.Instance.senSor.SendFunction("#ID:3;SONG:1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("气管听诊器位置1"); fsm.Light("气管听诊器位置1");
@ -26,7 +34,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -74,23 +81,25 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateStay() public override void OnStateStay()
{ {
base.OnStateStay(); base.OnStateStay();
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success; fsm.ShowTzq(success);
fsm.HideArrow();
fsm.Unlight("Æø¹ÜÌýÕïÆ÷λÖÃ1");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (id == success) if (PositionValue == success)
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("气管听诊器位置1"); fsm.Unlight("气管听诊器位置1");
Audio(); Audio();
Success(); Success();
} }
else if(!string.IsNullOrEmpty(id) && id != success) else if (PositionValue != "0" && success != PositionValue)
{ {
False(); False();
} }
@ -100,7 +109,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,30 +6,41 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.ShowTxtImgQuestion("垂直线标志——前正中线", 5, 0, 2, () => {
fsm.ShowArrow("点击“胸骨柄上缘的中点”", "胸骨柄上缘的中点", 0, 999);
fsm.Show_Light_EnableInteraction("胸骨柄上缘的中点");
});
fsm.InteractionDown("胸骨柄上缘的中点", obj => {
fsm.HideArrow();
fsm.InteractionDown("胸骨柄上缘的中点", null);
fsm.Hide_Unlight_DisableInteraction("胸骨柄上缘的中点");
fsm.PlayClip("前正中线动画1", () => {
fsm.ShowArrow("点击“剑突中央”", "剑突中央", 0, 999);
fsm.Show_Light_EnableInteraction("剑突中央");
});
});
fsm.InteractionDown("剑突中央", obj => {
fsm.HideArrow();
fsm.InteractionDown("剑突中央", null);
fsm.Hide_Unlight_DisableInteraction("剑突中央");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("前正中线动画2", () => {
fsm.nextState = true; fsm.nextState = true;
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.ShowTip(0);
fsm.PlayBgm(0);
GameManager.Instance.multiObjectController.RotateAllTo0(() => {
fsm.ShowArrow("点击“胸骨柄上缘的中点”", "胸骨柄上缘的中点", 0, 999);
fsm.Show_Light_EnableInteraction("胸骨柄上缘的中点");
});
fsm.InteractionDown("胸骨柄上缘的中点", obj => {
fsm.HideArrow();
fsm.InteractionDown("胸骨柄上缘的中点", null);
fsm.Hide_Unlight_DisableInteraction("胸骨柄上缘的中点");
fsm.PlayClip("前正中线动画1", () => {
fsm.ShowArrow("点击“剑突中央”", "剑突中央", 0, 999);
fsm.Show_Light_EnableInteraction("剑突中央");
});
});
fsm.InteractionDown("剑突中央", obj => {
fsm.HideArrow();
fsm.InteractionDown("剑突中央", null);
fsm.Hide_Unlight_DisableInteraction("剑突中央");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("前正中线动画2", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {

View File

@ -7,13 +7,20 @@ namespace YiLiao.XinFeiTingZhen
public class SanJianBanQu : FsmState<FSMManager> public class SanJianBanQu : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "13","14" }; List<string> success = new() { "13","14" };
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:13,14;SONG:54,54;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("胸骨左缘第4肋间听诊器位置1"); fsm.Light("胸骨左缘第4肋间听诊器位置1");
@ -24,7 +31,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -71,19 +77,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
fsm.Unlight("胸骨左缘第5肋间听诊器位置1");
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1"); fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
fsm.Unlight("胸骨左缘第5肋间听诊器位置1"); fsm.Unlight("胸骨左缘第5肋间听诊器位置1");
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -93,7 +103,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class SanJianBanQu2 : FsmState<FSMManager> public class SanJianBanQu2 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "13", "14" }; List<string> success = new() { "13", "14" };
string audioName = "75--三尖瓣区收缩期杂音"; string audioName = "75--三尖瓣区收缩期杂音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:13,14;SONG:75,75;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("胸骨左缘第4肋间听诊器位置1"); fsm.Light("胸骨左缘第4肋间听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
fsm.Unlight("胸骨左缘第5肋间听诊器位置1");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1"); fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class SanJianBanQu3 : FsmState<FSMManager> public class SanJianBanQu3 : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "13", "14" }; List<string> success = new() { "13", "14" };
string audioName = "79--三尖瓣区舒张期杂音"; string audioName = "79--三尖瓣区舒张期杂音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:13,14;SONG:79,79;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("胸骨左缘第4肋间听诊器位置1"); fsm.Light("胸骨左缘第4肋间听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
fsm.Unlight("胸骨左缘第5肋间听诊器位置1");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("胸骨左缘第4肋间听诊器位置1"); fsm.Unlight("胸骨左缘第4肋间听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -3,17 +3,38 @@ namespace YiLiao.XinFeiTingZhen
{ {
public class ShiLuoYin : FsmState<FSMManager> public class ShiLuoYin : FsmState<FSMManager>
{ {
bool step2_kh;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
step2_kh = true;
fsm.HideTzq();
GameManager.Instance.senSor.SendFunction("#ID:3;SONG:38;%");
fsm.ShowTxtImgQuestion("·Î²¿ÌýÕ¡ªÒì³£ºôÎüÒô¡ª¡ª†ªÒô¡ª¡ªÊª†ªÒô", 20, 0, 5, () => {
fsm.ChangeState("GanLuoYin_ShiLuoYin");
});
} }
public override void OnStateStay() public override void OnStateStay()
{ {
base.OnStateStay(); base.OnStateStay();
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq();
fsm.nextState = false;
} }
} }
} }

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class ShouSuoZhongWanQiKaLaYin : FsmState<FSMManager> public class ShouSuoZhongWanQiKaLaYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "71--收缩中、晚期喀喇音"; string audioName = "71--收缩中、晚期喀喇音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:71;%");
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.PlayBgm(0);
fsm.PlayBgm(0); fsm.ShowTip(0);
fsm.ShowTip(0); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -100,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,30 @@ namespace YiLiao.XinFeiTingZhen
public class ShuZhangWanQiBenMaLv : FsmState<FSMManager> public class ShuZhangWanQiBenMaLv : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "66--舒张晚期奔马律"; string audioName = "66--舒张晚期奔马律";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:66;%");
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.PlayBgm(0);
fsm.PlayBgm(0); fsm.ShowTip(0);
fsm.ShowTip(0); fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999); Countdown();
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,19 +81,23 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -100,7 +107,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,27 +7,45 @@ namespace YiLiao.XinFeiTingZhen
public class ShuZhangZaoQiBenMaLv : FsmState<FSMManager> public class ShuZhangZaoQiBenMaLv : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "11" }; List<string> success = new() { "15" };
string audioName = "65--舒张早期奔马律"; string audioName = "65--舒张早期奔马律";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
bool step2_kh;
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:15;SONG:65;%");
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
{
step2_kh = true;
fsm.HideTzq();
fsm.ShowTxtImgQuestion("心脏听诊——额外心音——舒张期额外心音——舒张早期奔马律", 25, 0, 5, () => {
fsm.ChangeState("LianXuXingZaYin");
});
}
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
GameManager.Instance.multiObjectController.RotateAllTo0(() => {
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
Countdown();
});
}
GameManager.Instance.multiObjectController.RotateAllTo0(() => {
fsm.PlayBgm(0);
fsm.ShowTip(0);
fsm.Light("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
fsm.ShowArrow("将实物听诊器放置于左锁骨中线与第5肋间交点内0.5cm处进行听诊。", "左锁骨中线与第5肋间交点内0.5cm听诊器位置1", 0, 999);
Countdown();
});
} }
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -78,29 +96,37 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success();
Audio();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1"); fsm.Unlight("左锁骨中线与第5肋间交点内0.5cm听诊器位置1");
Success(); Success();
Audio(); Audio();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
} }
if (step2_kh)
{
fsm.ShowTzq(PositionValue);
}
} }
public override void OnStateExit() public override void OnStateExit()
{ {
base.OnStateExit(); base.OnStateExit();
step2_kh = false;
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -6,30 +6,39 @@ namespace YiLiao.XinFeiTingZhen
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
fsm.ShowTip(0); if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.KaoHe)
fsm.PlayBgm(0); {
GameManager.Instance.multiObjectController.RotateAllTo0(() => { fsm.ShowTxtImgQuestion("垂直线标志——锁骨中线", 6, 0, 2, () => {
fsm.ShowArrow("点击“锁骨的肩峰端”", "锁骨的肩峰端", 0, 999);
fsm.Show_Light_EnableInteraction("锁骨的肩峰端");
});
fsm.InteractionDown("锁骨的肩峰端", obj => {
fsm.HideArrow();
fsm.InteractionDown("锁骨的肩峰端", null);
fsm.Hide_Unlight_DisableInteraction("锁骨的肩峰端");
fsm.PlayClip("锁骨中线动画1", () => {
fsm.ShowArrow("点击“锁骨的胸骨端”", "锁骨的胸骨端", 0, 999);
fsm.Show_Light_EnableInteraction("锁骨的胸骨端");
});
});
fsm.InteractionDown("锁骨的胸骨端", obj => {
fsm.HideArrow();
fsm.InteractionDown("锁骨的胸骨端", null);
fsm.Hide_Unlight_DisableInteraction("锁骨的胸骨端");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("锁骨中线动画2", () => {
fsm.nextState = true; fsm.nextState = true;
}); });
}); }
if (fsm.main_gameModel.modeType == ZXKFramework.ModeType.ShiXun)
{
fsm.ShowTip(0);
fsm.PlayBgm(0);
GameManager.Instance.multiObjectController.RotateAllTo0(() => {
fsm.ShowArrow("点击“锁骨的肩峰端”", "锁骨的肩峰端", 0, 999);
fsm.Show_Light_EnableInteraction("锁骨的肩峰端");
});
fsm.InteractionDown("锁骨的肩峰端", obj => {
fsm.HideArrow();
fsm.InteractionDown("锁骨的肩峰端", null);
fsm.Hide_Unlight_DisableInteraction("锁骨的肩峰端");
fsm.PlayClip("锁骨中线动画1", () => {
fsm.ShowArrow("点击“锁骨的胸骨端”", "锁骨的胸骨端", 0, 999);
fsm.Show_Light_EnableInteraction("锁骨的胸骨端");
});
});
fsm.InteractionDown("锁骨的胸骨端", obj => {
fsm.HideArrow();
fsm.InteractionDown("锁骨的胸骨端", null);
fsm.Hide_Unlight_DisableInteraction("锁骨的胸骨端");
fsm.AddScore(0, 0.5f);
fsm.PlayClip("锁骨中线动画2", () => {
fsm.nextState = true;
});
});
}
} }
public override void OnStateStay() public override void OnStateStay()
{ {

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class VelcroLuoYin : FsmState<FSMManager> public class VelcroLuoYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "Velcro啰音"; string audioName = "Velcro啰音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:1,1;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

View File

@ -7,14 +7,21 @@ namespace YiLiao.XinFeiTingZhen
public class XiShiLuoYin : FsmState<FSMManager> public class XiShiLuoYin : FsmState<FSMManager>
{ {
bool step1; bool step1;
string id;
//成功的标志 //成功的标志
List<string> success = new() { "7", "8" }; List<string> success = new() { "16", "28" };
string audioName = "40--湿罗音小水泡音"; string audioName = "40--湿罗音小水泡音";
Coroutine cor; Coroutine cor;
string PositionValue
{
get
{
return GameManager.Instance.senSor.GetSensor<TZQ_Sensor>().positionValue.ToString();
}
}
public override void OnStateEnter() public override void OnStateEnter()
{ {
base.OnStateEnter(); base.OnStateEnter();
GameManager.Instance.senSor.SendFunction("#ID:16,28;SONG:40,40;%");
fsm.PlayBgm(0); fsm.PlayBgm(0);
fsm.ShowTip(0); fsm.ShowTip(0);
fsm.Light("肺泡听诊器位置1"); fsm.Light("肺泡听诊器位置1");
@ -25,7 +32,6 @@ namespace YiLiao.XinFeiTingZhen
void Countdown() void Countdown()
{ {
fsm.HideTzq(); fsm.HideTzq();
id = "";
step1 = true; step1 = true;
GameManager.Instance.uiManager.ShowUI<CountdownPanel>(); GameManager.Instance.uiManager.ShowUI<CountdownPanel>();
GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => { GameManager.Instance.uiManager.GetUI<CountdownPanel>().StartCountdown(() => {
@ -76,12 +82,17 @@ namespace YiLiao.XinFeiTingZhen
if (Input.GetKeyDown(KeyCode.L) && step1) if (Input.GetKeyDown(KeyCode.L) && step1)
{ {
id = success[0]; fsm.ShowTzq(success[0]);
fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1");
fsm.Unlight("肺泡听诊器位置2");
Audio();
Success();
} }
if (step1) if (step1)
{ {
fsm.ShowTzq(id); fsm.ShowTzq(PositionValue);
if (success.Contains(id)) if (success.Contains(PositionValue))
{ {
fsm.HideArrow(); fsm.HideArrow();
fsm.Unlight("肺泡听诊器位置1"); fsm.Unlight("肺泡听诊器位置1");
@ -89,7 +100,7 @@ namespace YiLiao.XinFeiTingZhen
Audio(); Audio();
Success(); Success();
} }
else if (!string.IsNullOrEmpty(id) && !success.Contains(id)) else if (PositionValue != "0" && !success.Contains(PositionValue))
{ {
False(); False();
} }
@ -99,7 +110,6 @@ namespace YiLiao.XinFeiTingZhen
{ {
base.OnStateExit(); base.OnStateExit();
fsm.HideTzq(); fsm.HideTzq();
id = "";
Game.Instance.IEnumeratorManager.Stop(cor); Game.Instance.IEnumeratorManager.Stop(cor);
fsm.nextState = false; fsm.nextState = false;
} }

Some files were not shown because too many files have changed in this diff Show More