diff --git a/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta b/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta index f98d1217..40718e88 100644 --- a/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta +++ b/ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta @@ -1,5 +1,9 @@ fileFormatVersion: 2 +<<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta +guid: 7040b5d9d3751354894af163292234a4 +======== guid: faf285059766ba34685517cd09eba7ae +>>>>>>>> origin/dev-1217:ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset b/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset index 976255f5..8897c85d 100644 --- a/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset +++ b/ColorlessWorld-2024-4-2/Assets/GameDate/LevelDate/LevelState_1.asset @@ -12,9 +12,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 23280c7f867c4ca468ab73909d4f7707, type: 3} m_Name: LevelState_1 m_EditorClassIdentifier: - levelStep: 2 + levelStep: 0 mapLevel: 1 - currentPoint: {x: 1, y: 1} + currentPoint: {x: 3, y: 1} levelSaveMap: - levelDataList: - roomType: 13 @@ -147,7 +147,7 @@ MonoBehaviour: - roomType: 6 roomSprite: {fileID: 21300000, guid: dc3014f38b95b24448577e14bee06967, type: 3} isUse: 1 - passBy: 0 + passBy: 1 nodePos: {x: -5.853507, y: 1.1438946, z: -6.601848} line: 2 column: 1 @@ -203,7 +203,7 @@ MonoBehaviour: - roomType: 0 roomSprite: {fileID: 21300000, guid: b8a209883c3910b4199ecc6bd1beebbd, type: 3} isUse: 1 - passBy: 0 + passBy: 1 nodePos: {x: -4.2356644, y: 0.62179697, z: -6.601848} line: 3 column: 1 diff --git a/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta b/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta new file mode 100644 index 00000000..17bba4e5 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: a94cf6fef2879da4c91e5ef768aadf4e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta new file mode 100644 index 00000000..40718e88 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +<<<<<<<< HEAD:ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark.meta +guid: 7040b5d9d3751354894af163292234a4 +======== +guid: faf285059766ba34685517cd09eba7ae +>>>>>>>> origin/dev-1217:ColorlessWorld-2024-4-2/Assets/ArtAssets/0617_遗物.meta +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat new file mode 100644 index 00000000..13537ad7 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat @@ -0,0 +1,140 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: attackRangeMark + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _EMISSION + - _SPECULARHIGHLIGHTS_OFF + - _SPECULAR_SETUP + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: [] + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3001 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ef8be5fd7b9a2b24d8ffed755e2605b4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0.5 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 1 + - _ReceiveShadows: 1 + - _Smoothness: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _WorkflowMode: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.5566038, g: 0.07288859, b: 0, a: 0.74509805} + - _Color: {r: 0.5566037, g: 0.07288856, b: 0, a: 0.74509805} + - _EmissionColor: {r: 0.41509438, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1781025284166211548 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat.meta b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat.meta new file mode 100644 index 00000000..63d83d44 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/attackRangeMark.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 34992ef7cbe34924fb912a6b8dafde8e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat new file mode 100644 index 00000000..cdc9524c --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: stepRangeMark + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _SPECULARHIGHLIGHTS_OFF + - _SPECULAR_SETUP + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3001 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: ef8be5fd7b9a2b24d8ffed755e2605b4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0.5 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 1 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _WorkflowMode: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.6132076, g: 0.06074226, b: 0.25092462, a: 0.3882353} + - _Color: {r: 0.6132076, g: 0.060742237, b: 0.2509246, a: 0.3882353} + - _EmissionColor: {r: 0.20754719, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &1781025284166211548 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat.meta b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat.meta new file mode 100644 index 00000000..2d41ab58 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/EnemyRangeMark/stepRangeMark.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce514a30b40bad647bf55e93690f4734 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab index c6571a2c..f3e0d792 100644 --- a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/MapUnity _2.prefab @@ -326,6 +326,9 @@ MonoBehaviour: yellow: {fileID: 2100000, guid: cf59497cd92e036419cf5cfa2d1e4c79, type: 2} castPreRange: {fileID: 2100000, guid: e4d58776fca90ec49aa2c7d259c73e27, type: 2} enemyMark: {fileID: 2100000, guid: 5bc9b4d525fc54344935f187546b718b, type: 2} + enemyAttackRangeMark: {fileID: 2100000, guid: 34992ef7cbe34924fb912a6b8dafde8e, + type: 2} + enemyMoveRangeMark: {fileID: 2100000, guid: ce514a30b40bad647bf55e93690f4734, type: 2} colorMaterial: {fileID: 2100000, guid: 1fba631bf7fad7d498e712c1eaaea21f, type: 2} animColorMaterial: {fileID: 2100000, guid: 4524c65c202c4294d9f7f73c6777908d, type: 2} currentTexture: {fileID: 0} diff --git a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/enemyMark.mat b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/enemyMark.mat index d267c052..27e3edcf 100644 --- a/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/enemyMark.mat +++ b/ColorlessWorld-2024-4-2/Assets/Prefab/MapNodePrefab/enemyMark.mat @@ -12,7 +12,7 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: - - _ALPHAMODULATE_ON + - _ALPHAPREMULTIPLY_ON - _SPECULARHIGHLIGHTS_OFF - _SPECULAR_SETUP - _SURFACE_TYPE_TRANSPARENT @@ -90,7 +90,7 @@ Material: m_Floats: - _AlphaClip: 0 - _AlphaToMask: 0 - - _Blend: 3 + - _Blend: 0 - _BlendModePreserveSpecular: 1 - _BumpScale: 1 - _ClearCoatMask: 0 @@ -99,8 +99,8 @@ Material: - _Cutoff: 0.5 - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _DstBlendAlpha: 1 + - _DstBlend: 10 + - _DstBlendAlpha: 10 - _EnvironmentReflections: 1 - _GlossMapScale: 0 - _Glossiness: 0 @@ -113,14 +113,14 @@ Material: - _Smoothness: 0.5 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 0 - - _SrcBlend: 2 - - _SrcBlendAlpha: 0 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 1 - _WorkflowMode: 0 - _ZWrite: 0 m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _BaseColor: {r: 0.21782663, g: 0.33482552, b: 0.8396226, a: 0.3882353} + - _Color: {r: 0.2178266, g: 0.3348255, b: 0.8396226, a: 0.3882353} - _EmissionColor: {r: 0.20754719, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1} m_BuildTextureStacks: [] diff --git a/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png new file mode 100644 index 00000000..06b76fd6 Binary files /dev/null and b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png differ diff --git a/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png.meta b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png.meta new file mode 100644 index 00000000..d26ebbdd --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jianpai_v01.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: e12224b649bcf2445bc6178989669b21 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 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: Server + 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/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png new file mode 100644 index 00000000..257c8999 Binary files /dev/null and b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png differ diff --git a/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png.meta b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png.meta new file mode 100644 index 00000000..9a8c9602 --- /dev/null +++ b/ColorlessWorld-2024-4-2/Assets/Resources/BuffIcon_v02/Sslx_Ui_Buff_jiapai_v01.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: e28ade1ba1ac34a4e8ad681af90cffc0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 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: Server + 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/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 55005505..b5dd319b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -54684,11 +54684,7 @@ MonoBehaviour: generatePoint: {fileID: 514899946} lineOffSet: {x: 1.43, y: 0, z: 0} columnOffSet: {x: 0, y: 0, z: 0.86} - enemyGenerateDataList: - - enemyPrefab: {fileID: 1253231568001379261, guid: a3234acb1bf506e4ba6a68d9c87bb537, - type: 3} - locationX: 3 - locationY: 3 + enemyGenerateDataList: [] mapUnityFather: {fileID: 471426433} playerNameText: {fileID: 1103775266} cardDeckNumberText: {fileID: 1577863296} diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs index 413d96fc..5c4f5c11 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextCardCostMinusOne.cs @@ -15,7 +15,7 @@ public class Buff_NextCardCostMinusOne : Buff { Buff buff = new Buff_NextCardCostMinusOne(); buff.value = value; - buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_jianpai_v01"); return buff; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDrawCardisDisposable.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDrawCardisDisposable.cs index 6da06d3f..7b409abb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDrawCardisDisposable.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDrawCardisDisposable.cs @@ -15,7 +15,7 @@ public class Buff_NextDrawCardisDisposable : Buff { Buff buff = new Buff_NextDrawCardisDisposable(); buff.value = value; - buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_jianpai_v01"); return buff; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs index 7ce551cb..eda037e6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextDyeingCardRangeAddTwo.cs @@ -15,7 +15,7 @@ public class Buff_NextDyeingCardRangeAddTwo : Buff { Buff buff = new Buff_NextDyeingCardRangeAddTwo(); buff.value = value; - buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_jiapai_v01"); return buff; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs index 3c1f3d89..3f7aa95d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextEffectCardDoubleSettle.cs @@ -16,7 +16,7 @@ public class Buff_NextEffectCardDoubleSettle : Buff { Buff buff = new Buff_NextEffectCardDoubleSettle(); buff.value = value; - buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_maozixifa_v01"); + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_jiapai_v01"); return buff; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextRoundCostMinusOne.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextRoundCostMinusOne.cs index d8663c9b..981785c0 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextRoundCostMinusOne.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Buff/Buff_NextRoundCostMinusOne.cs @@ -15,7 +15,7 @@ public class Buff_NextRoundCostMinusOne : Buff { Buff buff = new Buff_NextRoundCostMinusOne(); buff.value = value; - buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_liuxue_v01"); + buff.icon = BuffDataManager.Instance.LoadImage(iconPath + "Sslx_Ui_Buff_jianpai_v01"); return buff; } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/AcidRainCloud.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/AcidRainCloud.cs index 4f80fe62..bf91c99d 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/AcidRainCloud.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/AcidRainCloud.cs @@ -38,7 +38,22 @@ public class AcidRainCloud : Enemy } } - + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShootAndPollute: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyActionAction_Attack: + canMove = false; + canAttack = true; + canAoe=false; + break; + } + } public override void ActionValRandom() { switch (enemyNode.currentActionScript) @@ -51,6 +66,8 @@ public class AcidRainCloud : Enemy break; } } + + public override void SettlePlannText(EnemyAction currentAction) { switch (currentAction) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BoundSoul.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BoundSoul.cs index f88ec746..89d21b07 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BoundSoul.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/BoundSoul.cs @@ -35,6 +35,18 @@ public class BoundSoul : Enemy } } + + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + } + } public override void ActionValRandom() { switch (enemyNode.currentActionScript) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Climavista.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Climavista.cs index 040e4a42..992c1e1f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Climavista.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Climavista.cs @@ -38,6 +38,23 @@ public class Climavista : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Shield: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_Summon: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } + public override void ActionValRandom() { switch (enemyNode.currentActionScript) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs index e95349fc..726d6b59 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ContaminatusImmortalis.cs @@ -71,7 +71,22 @@ public class ContaminatusImmortalis : Enemy } - + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_ShootAndPollute: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } public IEnumerator PolluteAction() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs index becef5d3..06268fe8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs @@ -10,6 +10,12 @@ public class Enemy : MonoBehaviour { public EnemyNode enemyNode; + public bool canMove=false; + + public bool canAttack=false; + + public bool canAoe = false; + //ж public EnemyAction enemyAction; @@ -47,7 +53,7 @@ public class Enemy : MonoBehaviour Debug.Log("ж:" + enemyAction); enemyNode.enemyUIBar.SwitchIntention(enemyAction); ActionValRandom(); - + BoolCheck(); enemyNode.enemy.SettlePlannText(enemyNode.enemy.enemyAction); enemyNode.enemy.SettleRangeAttack(); } @@ -63,6 +69,11 @@ public class Enemy : MonoBehaviour public virtual void ActionValRandom() { + } + + public virtual void BoolCheck() + { + } public virtual void SettlePlannText(EnemyAction currentAction) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs index c6270629..b1f63734 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyNode.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; +using static UnityEngine.EventSystems.EventTrigger; public class EnemyNode : MonoBehaviour,IEnemyObserver { @@ -24,6 +25,9 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver } [Header("ѰΧԤ")] public List rangePool = new List();//ΧԤ + + public HashSet moveRangePool = new HashSet();//ƶΧԤ + public HashSet attackRangePool = new HashSet();//ΧԤ public List aoeRangePool = new List();//ΧԤ public string stateText=new string(""); @@ -113,6 +117,95 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver random } + public virtual void LoadRange() + { + MapUnity currentMapUnity = getNodeTools.LocationToGetNode(positionX, positionY); + int attackRange=EnemyState.attackRange; + int stepRange = getStepRange(); + if (moveRangePool!=null) + { + moveRangePool.Clear(); + } + if (attackRangePool != null) + { + attackRangePool.Clear(); + } + HashSet stepNodeSet=new HashSet { currentMapUnity }; + HashSet currentNodeSet = new HashSet { currentMapUnity }; + HashSet attackNodeSet = new HashSet { currentMapUnity }; + getNodeTools.getCircleNode(stepNodeSet, stepRange); + if (enemy.canMove) + { + for (int i = stepRange+1; i < stepRange + attackRange+1; i++) + { + HashSet newSet = new HashSet { currentMapUnity }; + getNodeTools.getArcNodeForEnemyAttack(newSet, i); + attackRangePool.UnionWith(newSet); + } + Debug.Log("attackRangePoolС" + attackRangePool.Count); + } + else + { + + HashSet newSet = new HashSet { currentMapUnity }; + getNodeTools.getCircleNode(newSet, attackRange); + attackRangePool.UnionWith(newSet); + } + + moveRangePool.UnionWith(stepNodeSet); + } + + public virtual void ShowRange() + { + //Ӱرɫ + switch (enemy.canMove) + { + case true: + ShowStepPoolRange(moveRangePool); + if (enemy.canAttack) + { + ShowAttackPoolRange(attackRangePool); + } + break; + case false: + if (enemy.canAttack) + { + ShowAttackPoolRange(attackRangePool); + } + break; + } + + } + + public virtual void ShowAttackPoolRange(HashSet rangePool) + { + //Ӱرɫ + if (rangePool != null) + { + HashSet hashPool = rangePool.ToHashSet(); + foreach (var mapNode in rangePool) + { + mapNode.EnemyInfluenced(hashPool); + mapNode.enemyInfMark.GetComponent().material = mapNode.enemyAttackRangeMark; + } + } + + } + + public virtual void ShowStepPoolRange(HashSet rangePool) + { + //Ӱرɫ + if (rangePool != null) + { + HashSet hashPool = rangePool.ToHashSet(); + foreach (var mapNode in rangePool) + { + mapNode.EnemyInfluenced(hashPool); + mapNode.enemyInfMark.GetComponent().material = mapNode.enemyMoveRangeMark; + } + } + + } private void OnEnable() { EnemyManager.Instance.enemyObservers.Add(this); @@ -158,7 +251,7 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver { if(disableAttack != null&& enemyType == EnemyType.enemy) { - if (rangePool.Contains(GameManager.Instance.playerOn)) + if (attackRangePool!=null&&attackRangePool.Contains(GameManager.Instance.playerOn)) { disableAttack.SetActive(false); @@ -263,6 +356,8 @@ public class EnemyNode : MonoBehaviour,IEnemyObserver enemyUIBar = enemyUI.GetComponent(); enemyUIBar.enemyNode = enemyNode; } + + public void StartPosition() { //this.transform.position = GameManager.Instance.X[positionX].Y[positionY].transform.position; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Enemy/EnemyUIBar.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Enemy/EnemyUIBar.cs index 6c1f26ed..121be39b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Enemy/EnemyUIBar.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyUI/Enemy/EnemyUIBar.cs @@ -81,8 +81,10 @@ public class EnemyUIBar : MonoBehaviour { //¼㹥Χ MapUnity currentMapUnity = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); - EnemyManager.Instance.AttackRangeInfluencedNode(currentMapUnity, enemyNode.EnemyState.attackRange + enemyNode.getStepRange(), enemyNode.rangePool); - enemyNode.currentActionScript.ShowAttackRange(enemyNode); + //EnemyManager.Instance.AttackRangeInfluencedNode(currentMapUnity, enemyNode.EnemyState.attackRange + enemyNode.getStepRange(), enemyNode.rangePool); + enemyNode.LoadRange(); + enemyNode.ShowRange(); + //enemyNode.currentActionScript.ShowAttackRange(enemyNode); if (enemyNode.currentActionScript.isAiming) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs index 4f0fad20..01bb32dd 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/FailedSample.cs @@ -79,6 +79,17 @@ public class FailedSample: Enemy enemyNode.sufferAbnormalCondition(targetDebuff.FirstOrDefault(), 2); } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_AttackAndPollution: + canMove = true; + canAttack = true; + canAoe = false; + break; + } + } public override IEnumerator MeleeAttackAction() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs index 7fcf3121..0f3c5027 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Gravitus.cs @@ -85,6 +85,28 @@ public class Gravitus : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_Spell: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_SpellAndShield: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_AttackAndPollution: + canMove = true; + canAttack = true; + canAoe = false; + break; + } + } + public override IEnumerator MeleeAttackAction() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Leviathan.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Leviathan.cs index a38bb4bc..ad53d971 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Leviathan.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Leviathan.cs @@ -91,7 +91,27 @@ public class Leviathan : Enemy } } - + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_SpellAndAttack: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_AttackAndPollution: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = true; + canAttack = false; + canAoe = false; + break; + } + } public override IEnumerator ThrowAttackAction(int range, int damage, int count, MapUnity target) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/LivingArmor.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/LivingArmor.cs index 622a732c..806c2579 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/LivingArmor.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/LivingArmor.cs @@ -78,6 +78,18 @@ public class LivingArmor : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_Pollution: + canMove = true; + canAttack = false; + canAoe = false; + break; + } + } + public bool tryPossession() { bool isSuccessful=false; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pharmacist.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pharmacist.cs index d6c64a89..9cc553f9 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pharmacist.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pharmacist.cs @@ -80,6 +80,23 @@ public class Pharmacist : Enemy RewardManager.Instance.AddRewardTips(RewardManager.RewardType.potion, MathTool.GetRandomElements(PotionManager.Instance.potionSet,1).ElementAt(0)); } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShootAndPollute: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_ShieldAndPollution: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } + public override IEnumerator JudgeActionCoroutine()//ƶλþжǷ { Debug.Log("ж:" + enemyAction); @@ -155,6 +172,17 @@ public class Pharmacist : Enemy { yield return StartCoroutine(moveTowardsPlayer()); yield return new WaitForSeconds(1); + if (getNodeTools.canRemoteAttackAboutTwoNode(currentNode, aimNode, enemyNode.EnemyState.attackRange)) + { + if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) + { + RandomPollute(targets, 7); + if (targets.Contains(GameManager.Instance.playerOn)) + { + AttackDamage(enemyNode.EnemyState.damage, 1); + } + } + } } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pollutinel.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pollutinel.cs index 7ae9faf2..ca55680a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pollutinel.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Pollutinel.cs @@ -88,6 +88,28 @@ public class Pollutinel : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_DeBuff: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = true; + canAttack = false; + canAoe = false; + break; + case EnemyActionAction_Shield: + canMove = true; + canAttack = false; + canAoe = false; + break; + } + } + public IEnumerator DebuffAction() { isSurveillance = false; @@ -137,15 +159,14 @@ public class Pollutinel : Enemy yield return StartCoroutine(moveTowardsPlayer()); yield return new WaitForSeconds(1); currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); - if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) + enemyNode.anim.SetTrigger("Action"); + yield return new WaitForSeconds(0.5f); + for (int i = 0; i < EnemyManager.Instance.enemySpeedSortingList.Count; i++) { - enemyNode.anim.SetTrigger("Action"); - yield return new WaitForSeconds(0.5f); - for (int i = 0; i < EnemyManager.Instance.enemySpeedSortingList.Count; i++) - { - EnemyManager.Instance.enemySpeedSortingList[i].EnemyState.shieldValue += num; - } + EnemyManager.Instance.enemySpeedSortingList[i].EnemyState.shieldValue += num; } + + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PollutionSpreader.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PollutionSpreader.cs index cd882fed..83baac99 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PollutionSpreader.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PollutionSpreader.cs @@ -134,6 +134,27 @@ public class PollutionSpreader : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_SpellAndAttack: + canMove = false; + canAttack = false; + canAoe = true; + break; + case EnemyAction_Pollution: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + } + } public IEnumerator AttackAction() { int count = 2; @@ -159,6 +180,16 @@ public class PollutionSpreader : Enemy { yield return StartCoroutine(moveTowardsPlayer()); yield return new WaitForSeconds(1); + if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) + { + if (!enemyNode.EnemyState.abnormalCondition.ContainsKey(AbnormalCondition.disarm)) + { + yield return StartCoroutine(enemyNode.MeleeAttackAim()); + // enemyNode.anim.SetTrigger("MeleeAttack"); + // yield return new WaitForSeconds(0.5f); + AttackDamage(enemyNode.currentActionScript.colA, enemyNode.currentActionScript.colB); + } + } } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs index d4e8958a..d8945181 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/PrismReflector.cs @@ -74,6 +74,22 @@ public class PrismReflector : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShieldAndPollution: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } public override void enemyTurnBegin() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/RatWarrior.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/RatWarrior.cs index 2c54d092..69cd7748 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/RatWarrior.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/RatWarrior.cs @@ -76,6 +76,22 @@ public class RatWarrior : Enemy } } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } public override IEnumerator MeleeAttackAction() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ReconnaissanceBee.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ReconnaissanceBee.cs index 09f55279..f87af69f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ReconnaissanceBee.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/ReconnaissanceBee.cs @@ -79,6 +79,23 @@ public class ReconnaissanceBee : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_ShootAndPollute: + canMove = true; + canAttack = true; + canAoe = false; + break; + } + } + public override IEnumerator MeleeAttackAction() { MapUnity currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SoulMaker.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SoulMaker.cs index 817b2060..c4772ac5 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SoulMaker.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/SoulMaker.cs @@ -80,7 +80,22 @@ public class SoulMaker : Enemy break; } } - + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_Summon: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = true; + canAttack = false; + canAoe = false; + break; + } + } public IEnumerator HeallAction() { @@ -102,18 +117,16 @@ public class SoulMaker : Enemy { yield return StartCoroutine(moveTowardsPlayer()); yield return new WaitForSeconds(1); - currentNode = getNodeTools.LocationToGetNode(enemyNode.positionX, enemyNode.positionY); - if (getNodeTools.canRemoteAttack(currentNode, enemyNode.EnemyState.attackRange)) + enemyNode.anim.SetTrigger("Action"); + yield return new WaitForSeconds(0.5f); + for (int i = 0; i < EnemyManager.Instance.enemySpeedSortingList.Count; i++) { - enemyNode.anim.SetTrigger("Action"); - yield return new WaitForSeconds(0.5f); - for (int i = 0; i < EnemyManager.Instance.enemySpeedSortingList.Count; i++) - { - EnemyManager.Instance.enemySpeedSortingList[i].enemy.RecoverHp(enemyNode.currentActionScript.colA); - isSpeedUp = false; - } - + EnemyManager.Instance.enemySpeedSortingList[i].enemy.RecoverHp(enemyNode.currentActionScript.colA); + isSpeedUp = false; } + + + } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs index 14536ea5..bd778e04 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/StonePillar.cs @@ -67,9 +67,21 @@ public class StonePillar : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyAction_ShootAndPollute: + canMove = false; + canAttack = false; + canAoe = true; + break; + } + } + + - public IEnumerator PolluteAction() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Thief.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Thief.cs index 69a0b29d..46d5ebc3 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Thief.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Thief.cs @@ -133,7 +133,27 @@ public class Thief : Enemy break; } } - + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyAction_Spell: + canMove = false; + canAttack = false; + canAoe = false; + break; + case EnemyAction_Nothing: + canMove = false; + canAttack = false; + canAoe = false; + break; + } + } public override IEnumerator MeleeAttackAction() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Twinbee.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Twinbee.cs index 6c1c6552..66ba5f07 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Twinbee.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Twinbee.cs @@ -100,6 +100,24 @@ public class Twinbee : Enemy } + public override void BoolCheck() + { + switch (enemyNode.currentActionScript) + { + case EnemyActionAction_Attack: + canMove = true; + canAttack = true; + canAoe = false; + break; + case EnemyActionAction_Aoe: + canMove = false; + canAttack = false; + canAoe = true; + break; + + } + } + diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs index 57acfc36..f83254ff 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/EnemyPlanFunction/EnemyAction.cs @@ -72,7 +72,15 @@ public class EnemyAction for (int i = 0; i < enemyNode.rangePool.Count; i++) { enemyNode.rangePool[i].markInfluenced = false; - } + } + foreach (var mapNode in enemyNode.attackRangePool) + { + mapNode.markInfluenced = false; + } + foreach (var mapNode in enemyNode.moveRangePool) + { + mapNode.markInfluenced = false; + } } public virtual void FadeAttackRangeAll(EnemyNode enemyNode) { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs index e97539ea..1eeceeaf 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs @@ -45,6 +45,9 @@ public class MapUnity : MonoBehaviour public Material castPreRange;//Ͷ public Material enemyMark; + public Material enemyAttackRangeMark; + public Material enemyMoveRangeMark; + [Header("Ϳɫؼ")] public Material colorMaterial; public Material animColorMaterial; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index e291d3cf..0afd9ff1 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -416,6 +416,26 @@ public class getNodeTools return canPass; } + public static bool tryGetNodeForEnemyAttack(MapUnity currentNode, HashSet results) + { + bool canPass = true; + if (currentNode == null) + { + canPass = false; + return canPass; + } + if (currentNode.Equals(GameManager.Instance.playerOn)) + { + canPass = false; + } + + if (canPass) + { + results.Add(currentNode); + } + return canPass; + } + public static void getCircleNode(HashSet nodeList,int range) { for (int i = 0;i < range;i++) @@ -453,6 +473,14 @@ public class getNodeTools } } + public static void getCircleNodeForEnemyAttack(HashSet nodeList, int range) + { + for (int i = 0; i < range; i++) + { + getNearbyNodeFroEnemyAttack(nodeList); + } + } + public static void exceptWithEnemyNode(HashSet nodeList) { List mapUnityList = new List(nodeList); @@ -476,6 +504,15 @@ public class getNodeTools getCircleNodeForEnemy(nodeList, range); nodeList.ExceptWith(smallCircleNodeSet); } + + //Ȧؿ + public static void getArcNodeForEnemyAttack(HashSet nodeList, int range) + { + HashSet smallCircleNodeSet = new HashSet(nodeList); + getCircleNodeForEnemyAttack(smallCircleNodeSet, range - 1); + getCircleNodeForEnemyAttack(nodeList, range); + nodeList.ExceptWith(smallCircleNodeSet); + } public static void getNearbyNode(HashSet nodeList) { // һԱʱ޸ԭ @@ -533,6 +570,25 @@ public class getNodeTools } + public static void getNearbyNodeFroEnemyAttack(HashSet nodeList) + { + // һԱʱ޸ԭ + HashSet nodesCopy = new HashSet(nodeList); + HashSet nodesToAdd = new HashSet(); // ʱб洢ҪӵĽڵ + + foreach (var node in nodesCopy) + { + for (int i = 0; i < 6; i++) + { + tryGetNodeForEnemyAttack(node.unitPool[i], nodesToAdd); + } + } + + // ɺͳһ޸ԭ + nodeList.AddRange(nodesToAdd); + + } + public static void getCircleNodeForRemoteAttack(HashSet nodeList, int range) { for (int i = 0; i < range; i++)