From e76d744e3f6836eb59735e18f703de0f2f8bfcb5 Mon Sep 17 00:00:00 2001 From: Thomlam Date: Mon, 28 Oct 2024 01:38:16 +0100 Subject: [PATCH] feat: add spike system and add this into TrapSystem --- .../Prefabs/RoomSystem/Corridor/Room.prefab | 13 +- .../Traps/Crossbow/crossbow_up_prefab.prefab | 2 +- .../Traps/Spike/Anims/Spike_Anims.anim | 18 +- Assets/Prefabs/Traps/Spike/Anims/spike1.png | Bin 0 -> 294 bytes .../Prefabs/Traps/Spike/Anims/spike1.png.meta | 127 +++++++++++++ Assets/Prefabs/Traps/Spike/Anims/spike2.png | Bin 0 -> 345 bytes .../Prefabs/Traps/Spike/Anims/spike2.png.meta | 127 +++++++++++++ Assets/Prefabs/Traps/Spike/Anims/spike3.png | Bin 0 -> 317 bytes .../Prefabs/Traps/Spike/Anims/spike3.png.meta | 127 +++++++++++++ Assets/Prefabs/Traps/Spike/Anims/spike4.png | Bin 0 -> 403 bytes .../Prefabs/Traps/Spike/Anims/spike4.png.meta | 127 +++++++++++++ Assets/Prefabs/Traps/Spike/Anims/spike5.png | Bin 0 -> 312 bytes .../Prefabs/Traps/Spike/Anims/spike5.png.meta | 127 +++++++++++++ .../Traps/Spike/Anims/spike_0.controller | 12 +- .../Prefabs/Traps/Spike/spike_prefab.prefab | 167 ++++++++++++++++++ .../Traps/Spike/spike_prefab.prefab.meta | 7 + Assets/Scenes/DevRoom.unity | 62 ++++++- Assets/Scenes/EmptyRoom_2.unity | 36 ++++ Assets/Scripts/Trap/Spike.meta | 8 + Assets/Scripts/Trap/Spike/Spike_Trap.cs | 82 +++++++++ Assets/Scripts/Trap/Spike/Spike_Trap.cs.meta | 11 ++ Assets/Scripts/Trap/TrapManager.cs | 1 + 22 files changed, 1037 insertions(+), 17 deletions(-) create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike1.png create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike1.png.meta create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike2.png create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike2.png.meta create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike3.png create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike3.png.meta create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike4.png create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike4.png.meta create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike5.png create mode 100644 Assets/Prefabs/Traps/Spike/Anims/spike5.png.meta create mode 100644 Assets/Prefabs/Traps/Spike/spike_prefab.prefab create mode 100644 Assets/Prefabs/Traps/Spike/spike_prefab.prefab.meta create mode 100644 Assets/Scripts/Trap/Spike.meta create mode 100644 Assets/Scripts/Trap/Spike/Spike_Trap.cs create mode 100644 Assets/Scripts/Trap/Spike/Spike_Trap.cs.meta diff --git a/Assets/Prefabs/RoomSystem/Corridor/Room.prefab b/Assets/Prefabs/RoomSystem/Corridor/Room.prefab index 41a414d8..36a287f2 100644 --- a/Assets/Prefabs/RoomSystem/Corridor/Room.prefab +++ b/Assets/Prefabs/RoomSystem/Corridor/Room.prefab @@ -2801,6 +2801,7 @@ MonoBehaviour: - {fileID: 7646078152559978388, guid: 96efbcbb8de02c04e8828f4c44b0af95, type: 3} - {fileID: 7646078152559978388, guid: 6bd44dba7be27674aae083b13ec033b3, type: 3} - {fileID: 9096874691272071173, guid: df9ca486b9215294b871fe77d6a52372, type: 3} + - {fileID: 462902943475074006, guid: 854cb3c942bbf354cb1d900eaadba24a, type: 3} --- !u!1 &4171805761210331374 GameObject: m_ObjectHideFlags: 0 @@ -2927,7 +2928,7 @@ Tilemap: second: serializedVersion: 2 m_TileIndex: 3 - m_TileSpriteIndex: 3 + m_TileSpriteIndex: 13 m_TileMatrixIndex: 0 m_TileColorIndex: 0 m_TileObjectToInstantiateIndex: 65535 @@ -2937,7 +2938,7 @@ Tilemap: second: serializedVersion: 2 m_TileIndex: 2 - m_TileSpriteIndex: 2 + m_TileSpriteIndex: 3 m_TileMatrixIndex: 0 m_TileColorIndex: 0 m_TileObjectToInstantiateIndex: 65535 @@ -3242,10 +3243,10 @@ Tilemap: m_Data: {fileID: 0} - m_RefCount: 0 m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} - m_RefCount: 1 m_Data: {fileID: 1129282767, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 916167026, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - m_RefCount: 2 m_Data: {fileID: -1345423878, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - m_RefCount: 2 @@ -3264,8 +3265,8 @@ Tilemap: m_Data: {fileID: 693045916, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - m_RefCount: 1 m_Data: {fileID: 899381424, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - - m_RefCount: 0 - m_Data: {fileID: 0} + - m_RefCount: 1 + m_Data: {fileID: 916167026, guid: 6b70aeaa417e82a4f9cc02ceaf140158, type: 3} - m_RefCount: 1 m_Data: {fileID: 113733329, guid: ad684922a8aff654ebccc527594e7603, type: 3} - m_RefCount: 1 diff --git a/Assets/Prefabs/Traps/Crossbow/crossbow_up_prefab.prefab b/Assets/Prefabs/Traps/Crossbow/crossbow_up_prefab.prefab index d60d93ce..b5140a84 100644 --- a/Assets/Prefabs/Traps/Crossbow/crossbow_up_prefab.prefab +++ b/Assets/Prefabs/Traps/Crossbow/crossbow_up_prefab.prefab @@ -103,7 +103,7 @@ Animator: m_Controller: {fileID: 9100000, guid: cc739925a00880343beac9631c205704, type: 2} m_CullingMode: 0 m_UpdateMode: 0 - m_ApplyRootMotion: 0 + m_ApplyRootMotion: 1 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 m_WarningMessage: diff --git a/Assets/Prefabs/Traps/Spike/Anims/Spike_Anims.anim b/Assets/Prefabs/Traps/Spike/Anims/Spike_Anims.anim index e4c39979..f6c80d31 100644 --- a/Assets/Prefabs/Traps/Spike/Anims/Spike_Anims.anim +++ b/Assets/Prefabs/Traps/Spike/Anims/Spike_Anims.anim @@ -79,7 +79,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 + m_LoopTime: 1 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 @@ -93,4 +93,18 @@ AnimationClip: m_EulerEditorCurves: [] m_HasGenericRootTransform: 0 m_HasMotionFloatCurves: 0 - m_Events: [] + m_Events: + - time: 0.25 + functionName: OnTriggered + data: + objectReferenceParameter: {fileID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 + - time: 0.5833333 + functionName: NotTriggered + data: + objectReferenceParameter: {fileID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike1.png b/Assets/Prefabs/Traps/Spike/Anims/spike1.png new file mode 100644 index 0000000000000000000000000000000000000000..2107f0863548c1101689dd39dc1448f30cb08515 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;BHSB$B+!?w>QqS9X4P%{&C6g!y3uc4XdZl zxY_;mWZBKtXKtkSY;@+IDP&m1k@jvD>mYi$BPr*~E4i!o-gtPot_)*uCA zL|xV2bok#4v1*(5W_*+H)O4<5yj?e4thzpKGVilz-XXjZH+`dWIPRZhEB>r1cJH^v zocx{d+CD!mk=1{GN7v4;=(Fk%?S()CpC7P4*T^)7IctyGRgM5^) aKN&B~O7V{HD=-FngTd3)&t;ucLK6Vxif?TI literal 0 HcmV?d00001 diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike1.png.meta b/Assets/Prefabs/Traps/Spike/Anims/spike1.png.meta new file mode 100644 index 00000000..159c9272 --- /dev/null +++ b/Assets/Prefabs/Traps/Spike/Anims/spike1.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 5eef407e9e0329048b755a57c0ae7dd6 +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: 1 + 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: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + 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: diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike2.png b/Assets/Prefabs/Traps/Spike/Anims/spike2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9cfb05ff6672dfe7c0ee4bc121d4740e5938dbf GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;5$zj$B+!?w>J#A4jD+aJ)EI6?||5mz2O`5 zu60|iUj8Cf=9S@*VvFk5T_!5aRBt$X9bmEJy3c%cQvJu+e+!J0duABDv{Ub9%;0fI zW{_gOAklD)!GvvrA%m`$L+t&&*Ez|%p4aS(x%+W?zMPU*!^J3*v%BjdDq=;+RndWdwgTe~DWM4f%g>2x literal 0 HcmV?d00001 diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike2.png.meta b/Assets/Prefabs/Traps/Spike/Anims/spike2.png.meta new file mode 100644 index 00000000..fb7d2d35 --- /dev/null +++ b/Assets/Prefabs/Traps/Spike/Anims/spike2.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: fa9bcd9828f222b4fa72604b98dec555 +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: 1 + 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: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + 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: diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike3.png b/Assets/Prefabs/Traps/Spike/Anims/spike3.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0f3d242611c042b1a3da3569ad42792d9c60cb GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!;3ZEN$B+!?w>Qpm9&!+9dw8-diILGUCskTN zuxR>~NlHo5O_~RqWh;CH#RP=Q|0Z7S-e90t!?KV4P}|(g)l!qrRO=_F9kPt#aY$y6 zV!j~JaE!r(ZGj;}FJs0@rc<$%5qe?&zM33g#&KPK64g2Jeq?f<2*@SC>T^;sdIqH+Hp&yl{hZSRxHx=q*S&3|s%b1$h__uo{Y9Z{PY p-Z3ssVZ6iab%!|v)7A(j{>q@vc(qsIcY(fR@O1TaS?83{1OU1hbyENU literal 0 HcmV?d00001 diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike3.png.meta b/Assets/Prefabs/Traps/Spike/Anims/spike3.png.meta new file mode 100644 index 00000000..4fb60cf7 --- /dev/null +++ b/Assets/Prefabs/Traps/Spike/Anims/spike3.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 3b0fbf3dc54273b4c81ee77269db46bf +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: 1 + 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: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + 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: diff --git a/Assets/Prefabs/Traps/Spike/Anims/spike4.png b/Assets/Prefabs/Traps/Spike/Anims/spike4.png new file mode 100644 index 0000000000000000000000000000000000000000..af653464a13e129893d48241aae43d525cd32525 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!1`SUa$B+!?w=;aRnjIwCw%VR)uxy$xkUqUv z?x1qT%qAE1KbEf7#a44fRxpI$WwkO)jGCloa8=N*<$ELl+)Br1jX#~Ey)tuWihsSM zBd~yt>54;x6h{CvW0r!$*(@g4z#oYcTvuxxrt3c|nrpV!=KNm;j+9x;imJMH?)0>M zJ15w_S^D_LsCxF5r+u@xYF_!iH+0(4EZaq=r#HF!oPEX`_t+wA{pk(4zjtTO3ZA4A zUm7dlo>=kS=KTYUbI!6VH0Ln4B}gx2d(QCHa>J?nFW0@EA!lvI6;>1s;*b3=DjSL74G){)!Z!;8{->$B+!?w=?c?vM35P-(Broy-|<*!^K%^ zPKepCv^wvRm1$9U()_?bPHn@x1^#QV-Z`_p|N0?@3<(Ba<^_oiCOi#oj28?TW<6${ zQ@mcB=j8omu^E0RqoTbvxAtznuJTh#*W6U@# zH9R(<_*-q}p6`||0>6X4Y?Y~k@2X|s v{e3|H4Kvp|duFJuQfv-~p-$Op(_k2H7tm;}5pMSh=rIOQS3j3^P6(); + } + + private void OnTriggered(){ + IsActive = true; + } + + private void NotTriggered(){ + IsActive = false; + } + + void OnTriggerEnter2D(Collider2D collision) + { + if (collision.gameObject.CompareTag("Player")) + { + if (IsActive){ + playerInTrap = true; + player = collision.gameObject; + + if (damageCoroutine == null){ + damageCoroutine = StartCoroutine(ApplyDamage()); + } + + } + + } + } + + void OnTriggerExit2D(Collider2D collision) + { + if (collision.gameObject.CompareTag("Player")) + { + playerInTrap = false; + + if (damageCoroutine != null){ + StopCoroutine(damageCoroutine); + damageCoroutine = null; + } + } + } + + private void OnTriggerStay2D(Collider2D collision) { + if (collision.gameObject.CompareTag("Player") && !playerInTrap){ + playerInTrap = true; + } + } + + private IEnumerator ApplyDamage(){ + while (playerInTrap){ + TakeTrapDamage(); + yield return new WaitForSeconds(damageInterval); + } + } + + public void TakeTrapDamage() + { + if (playerInTrap) + { + player.GetComponent().TakeDamage(1); + } + } +} diff --git a/Assets/Scripts/Trap/Spike/Spike_Trap.cs.meta b/Assets/Scripts/Trap/Spike/Spike_Trap.cs.meta new file mode 100644 index 00000000..70d5b6c1 --- /dev/null +++ b/Assets/Scripts/Trap/Spike/Spike_Trap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02835e174e54a35429ebf1fd595accd7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Trap/TrapManager.cs b/Assets/Scripts/Trap/TrapManager.cs index a3e985e7..66e76dde 100644 --- a/Assets/Scripts/Trap/TrapManager.cs +++ b/Assets/Scripts/Trap/TrapManager.cs @@ -30,6 +30,7 @@ async void Start() trapPrefabDictionary.Add("crossbow_side_left_prefab", trapPrefabs[2]); trapPrefabDictionary.Add("crossbow_side_right_prefab", trapPrefabs[3]); trapPrefabDictionary.Add("bear_trap_prefab", trapPrefabs[4]); + trapPrefabDictionary.Add("spike_prefab", trapPrefabs[5]); clientSocket = SocketManager.Instance.ClientSocket;