diff --git a/Assets/_Project/Scenes/Levels/9Player.unity b/Assets/_Project/Scenes/Levels/9Player.unity index 6ccdbcb..98a6d5e 100644 --- a/Assets/_Project/Scenes/Levels/9Player.unity +++ b/Assets/_Project/Scenes/Levels/9Player.unity @@ -22163,124 +22163,6 @@ Mesh: - serializedVersion: 1 m_IndexStart: 0 m_IndexCount: 0 ---- !u!1 &1686616342 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1686616345} - - component: {fileID: 1686616344} - - component: {fileID: 1686616343} - m_Layer: 0 - m_Name: VFX_fireball_impact - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!73398921 &1686616343 -VFXRenderer: - serializedVersion: 1 - m_ObjectHideFlags: 2 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1686616342} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 0 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 ---- !u!2083052967 &1686616344 -VisualEffect: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1686616342} - m_Enabled: 1 - m_Asset: {fileID: 8926484042661614526, guid: 3fa4641e771cdd27880ed1185a588a83, type: 3} - m_InitialEventName: OnPlay - m_InitialEventNameOverriden: 0 - m_StartSeed: 0 - m_ResetSeedOnPlay: 1 - m_AllowInstancing: 1 - m_ResourceVersion: 1 - m_PropertySheet: - m_Float: - m_Array: [] - m_Vector2f: - m_Array: [] - m_Vector3f: - m_Array: [] - m_Vector4f: - m_Array: [] - m_Uint: - m_Array: [] - m_Int: - m_Array: [] - m_Matrix4x4f: - m_Array: [] - m_AnimationCurve: - m_Array: [] - m_Gradient: - m_Array: [] - m_NamedObject: - m_Array: [] - m_Bool: - m_Array: [] ---- !u!4 &1686616345 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1686616342} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -18.90215, y: 6.17317, z: 0.5013} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1694718091 GameObject: m_ObjectHideFlags: 0 @@ -29155,63 +29037,6 @@ Transform: m_Children: [] m_Father: {fileID: 1097152085} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &6610752177701459700 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 158073311046191680, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_Name - value: Fireball - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalPosition.x - value: -53.04094 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalPosition.z - value: -31.13852 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7644069561715729860, guid: 80eaad6d0b024835482b64625b63053c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 80eaad6d0b024835482b64625b63053c, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -29240,5 +29065,3 @@ SceneRoots: - {fileID: 2079088113} - {fileID: 914832726} - {fileID: 993870445} - - {fileID: 1686616345} - - {fileID: 6610752177701459700} diff --git a/Assets/_Project/Scripts/Gameplay/BuilderSpells/FireballSpellDefinition.cs b/Assets/_Project/Scripts/Gameplay/BuilderSpells/FireballSpellDefinition.cs index 5fe9ee9..b5dae1f 100644 --- a/Assets/_Project/Scripts/Gameplay/BuilderSpells/FireballSpellDefinition.cs +++ b/Assets/_Project/Scripts/Gameplay/BuilderSpells/FireballSpellDefinition.cs @@ -1,5 +1,6 @@ // Assets/_Project/Scripts/Gameplay/BuilderSpells/FireballSpellDefinition.cs using UnityEngine; +using TD.Audio; using TD.Core; namespace TD.Gameplay.BuilderSpells @@ -26,7 +27,13 @@ namespace TD.Gameplay.BuilderSpells [Tooltip("Seconds before the spawned VFX instance is destroyed.")] [Min(0f)] [SerializeField] private float impactVfxLifetime = 2f; - + + [Header("Impact Sound")] + [Tooltip("Sound played on every peer when this spell resolves successfully. Same " + + "SoundConfig struct TowerBuiltSound uses — reuse a tower's clip directly if " + + "you want the same sound.")] + [SerializeField] private SoundConfig impactSound; + [Header("Fireball")] [Tooltip("Damage dealt to every enemy within Radius of the target point.")] [Min(0f)] @@ -56,6 +63,10 @@ namespace TD.Gameplay.BuilderSpells { if (impactVfxPrefab != null) Destroy(Instantiate(impactVfxPrefab, targetPoint, Quaternion.identity), impactVfxLifetime); + + if (impactSound.clip != null) + AudioManager.Instance?.Play(impactSound.clip, AudioCategory.TowerFire, + impactSound.RandomPitch(), impactSound.volume); } } }