From 8ddf7a648fd077f0da6f1c7a109b9488f24b5e52 Mon Sep 17 00:00:00 2001 From: Miguel Astor Date: Tue, 4 Aug 2026 01:17:03 -0400 Subject: [PATCH] TO SQUASH: Added glass ball. --- Assets/Animations/GlassBall.controller | 296 +++++++++++++++++ Assets/Animations/GlassBall.controller.meta | 8 + Assets/Animations/GlassBallBreak.anim | 94 ++++++ Assets/Animations/GlassBallBreak.anim.meta | 8 + Assets/Animations/GlassBallMove1.anim | 72 +++++ Assets/Animations/GlassBallMove1.anim.meta | 8 + Assets/Animations/GlassBallMove2.anim | 72 +++++ Assets/Animations/GlassBallMove2.anim.meta | 8 + Assets/Animations/GlassBallMove3.anim | 72 +++++ Assets/Animations/GlassBallMove3.anim.meta | 8 + Assets/Animations/GlassBallSpawn.anim | 87 +++++ Assets/Animations/GlassBallSpawn.anim.meta | 8 + Assets/Animations/NuclearBall.controller | 29 -- Assets/Prefabs/Glass Ball.prefab | 306 ++++++++++++++++++ Assets/Prefabs/Glass Ball.prefab.meta | 7 + Assets/Prefabs/Nuclear Ball.prefab | 2 +- Assets/Scenes/Game.unity | 2 +- Assets/Scripts/Game/BallSpawner.cs | 7 + Assets/Scripts/Game/Balls/GlassBall.cs | 92 ++++++ Assets/Scripts/Game/Balls/GlassBall.cs.meta | 2 + Assets/Sprites/400.png | Bin 0 -> 775 bytes Assets/Sprites/400.png.meta | 298 +++++++++++++++++ Assets/Sprites/401.png | Bin 0 -> 1186 bytes Assets/Sprites/401.png.meta | 221 +++++++++++++ Assets/Sprites/402.png | Bin 0 -> 1207 bytes Assets/Sprites/402.png.meta | 334 ++++++++++++++++++++ 26 files changed, 2010 insertions(+), 31 deletions(-) create mode 100644 Assets/Animations/GlassBall.controller create mode 100644 Assets/Animations/GlassBall.controller.meta create mode 100644 Assets/Animations/GlassBallBreak.anim create mode 100644 Assets/Animations/GlassBallBreak.anim.meta create mode 100644 Assets/Animations/GlassBallMove1.anim create mode 100644 Assets/Animations/GlassBallMove1.anim.meta create mode 100644 Assets/Animations/GlassBallMove2.anim create mode 100644 Assets/Animations/GlassBallMove2.anim.meta create mode 100644 Assets/Animations/GlassBallMove3.anim create mode 100644 Assets/Animations/GlassBallMove3.anim.meta create mode 100644 Assets/Animations/GlassBallSpawn.anim create mode 100644 Assets/Animations/GlassBallSpawn.anim.meta create mode 100644 Assets/Prefabs/Glass Ball.prefab create mode 100644 Assets/Prefabs/Glass Ball.prefab.meta create mode 100644 Assets/Scripts/Game/Balls/GlassBall.cs create mode 100644 Assets/Scripts/Game/Balls/GlassBall.cs.meta create mode 100644 Assets/Sprites/400.png create mode 100644 Assets/Sprites/400.png.meta create mode 100644 Assets/Sprites/401.png create mode 100644 Assets/Sprites/401.png.meta create mode 100644 Assets/Sprites/402.png create mode 100644 Assets/Sprites/402.png.meta diff --git a/Assets/Animations/GlassBall.controller b/Assets/Animations/GlassBall.controller new file mode 100644 index 0000000..0aebefb --- /dev/null +++ b/Assets/Animations/GlassBall.controller @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-5870600135680248681 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 6 + m_ConditionEvent: health + m_EventTreshold: 2 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6120263966153175019} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-5309676840898214072 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 6 + m_ConditionEvent: health + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 427396230556328626} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-4962646229994623289 +AnimatorStateMachine: + serializedVersion: 7 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 8305295558267295439} + m_Position: {x: 300, y: -20, z: 0} + - serializedVersion: 1 + m_State: {fileID: -4812799737843711299} + m_Position: {x: 300, y: 110, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6120263966153175019} + m_Position: {x: 300, y: 210, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3699211959152234104} + m_Position: {x: 300, y: 300, z: 0} + - serializedVersion: 1 + m_State: {fileID: 427396230556328626} + m_Position: {x: 590, y: 300, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 8305295558267295439} +--- !u!1102 &-4812799737843711299 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove1 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -5870600135680248681} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 503f0b6c7ba88fdbd8fbc32fab3e7b15, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-3699211959152234104 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove3 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -5309676840898214072} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 536d4e9772e0f19559f084aff6fc107f, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBall + serializedVersion: 6 + m_AnimatorParameters: + - m_Name: health + m_Type: 3 + m_DefaultFloat: 0 + m_DefaultInt: 3 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -4962646229994623289} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + m_EvaluateTransitionsOnStart: 1 +--- !u!1102 &427396230556328626 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallBreak + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: e81966479e58ce122a47f983c4265383, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &3398378252495849729 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -4812799737843711299} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &4645950612394723750 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 6 + m_ConditionEvent: health + m_EventTreshold: 1 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3699211959152234104} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &6120263966153175019 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove2 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 4645950612394723750} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: da946cb70e48edfdb9645bb78982b5e3, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &8305295558267295439 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallSpawn + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 3398378252495849729} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 1185c85426c9e6b20954c7e1d49fbb9a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Animations/GlassBall.controller.meta b/Assets/Animations/GlassBall.controller.meta new file mode 100644 index 0000000..28c441b --- /dev/null +++ b/Assets/Animations/GlassBall.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c51b29560aae143884e7d2395ade428 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/GlassBallBreak.anim b/Assets/Animations/GlassBallBreak.anim new file mode 100644 index 0000000..2ec51b1 --- /dev/null +++ b/Assets/Animations/GlassBallBreak.anim @@ -0,0 +1,94 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallBreak + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: -417808653775526200, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - time: 0.13333334 + value: {fileID: -8286797564189653241, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - time: 0.26666668 + value: {fileID: -5513221222491971115, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - time: 0.4 + value: {fileID: 1667024513643414263, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - time: 0.53333336 + value: {fileID: -5217436592752931633, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - time: 0.6666667 + value: {fileID: 3331267159330175446, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: -417808653775526200, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - {fileID: -8286797564189653241, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - {fileID: -5513221222491971115, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - {fileID: 1667024513643414263, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - {fileID: -5217436592752931633, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + - {fileID: 3331267159330175446, guid: 8cd7cf91c1444f45b8c9b364b955c395, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.68333334 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: + - time: 0.6666667 + functionName: Break + data: + objectReferenceParameter: {fileID: 0} + floatParameter: 0 + intParameter: 0 + messageOptions: 0 diff --git a/Assets/Animations/GlassBallBreak.anim.meta b/Assets/Animations/GlassBallBreak.anim.meta new file mode 100644 index 0000000..29e5489 --- /dev/null +++ b/Assets/Animations/GlassBallBreak.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e81966479e58ce122a47f983c4265383 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/GlassBallMove1.anim b/Assets/Animations/GlassBallMove1.anim new file mode 100644 index 0000000..0540f95 --- /dev/null +++ b/Assets/Animations/GlassBallMove1.anim @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove1 + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: 8067002814062450835, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: 8067002814062450835, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/GlassBallMove1.anim.meta b/Assets/Animations/GlassBallMove1.anim.meta new file mode 100644 index 0000000..e1a2dd0 --- /dev/null +++ b/Assets/Animations/GlassBallMove1.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 503f0b6c7ba88fdbd8fbc32fab3e7b15 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/GlassBallMove2.anim b/Assets/Animations/GlassBallMove2.anim new file mode 100644 index 0000000..0b961fa --- /dev/null +++ b/Assets/Animations/GlassBallMove2.anim @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove2 + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: -1814814288221857642, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: -1814814288221857642, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/GlassBallMove2.anim.meta b/Assets/Animations/GlassBallMove2.anim.meta new file mode 100644 index 0000000..13c50ef --- /dev/null +++ b/Assets/Animations/GlassBallMove2.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: da946cb70e48edfdb9645bb78982b5e3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/GlassBallMove3.anim b/Assets/Animations/GlassBallMove3.anim new file mode 100644 index 0000000..2f5aff9 --- /dev/null +++ b/Assets/Animations/GlassBallMove3.anim @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallMove3 + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: -5863982925421520061, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: -5863982925421520061, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/GlassBallMove3.anim.meta b/Assets/Animations/GlassBallMove3.anim.meta new file mode 100644 index 0000000..9e409c9 --- /dev/null +++ b/Assets/Animations/GlassBallMove3.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 536d4e9772e0f19559f084aff6fc107f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/GlassBallSpawn.anim b/Assets/Animations/GlassBallSpawn.anim new file mode 100644 index 0000000..9372568 --- /dev/null +++ b/Assets/Animations/GlassBallSpawn.anim @@ -0,0 +1,87 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: GlassBallSpawn + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: -2928343376326405487, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - time: 0.13333334 + value: {fileID: -2274381934511136458, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - time: 0.26666668 + value: {fileID: -3817526685740215097, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - time: 0.4 + value: {fileID: 7403838423258587901, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - time: 0.53333336 + value: {fileID: -4342604983163413214, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - time: 0.6666667 + value: {fileID: 1306991292, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: -2928343376326405487, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - {fileID: -2274381934511136458, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - {fileID: -3817526685740215097, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - {fileID: 7403838423258587901, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - {fileID: -4342604983163413214, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + - {fileID: 1306991292, guid: bc9e33335e09432c1bc55c2992d0db94, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.68333334 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/GlassBallSpawn.anim.meta b/Assets/Animations/GlassBallSpawn.anim.meta new file mode 100644 index 0000000..7ad6cd2 --- /dev/null +++ b/Assets/Animations/GlassBallSpawn.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1185c85426c9e6b20954c7e1d49fbb9a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/NuclearBall.controller b/Assets/Animations/NuclearBall.controller index c95922c..6c1c969 100644 --- a/Assets/Animations/NuclearBall.controller +++ b/Assets/Animations/NuclearBall.controller @@ -1,31 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1102 &-8866037852887971400 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: NuclearBallBounce 0 - m_Speed: 1 - m_CycleOffset: 0 - m_Transitions: [] - m_StateMachineBehaviours: [] - m_Position: {x: 50, y: 50, z: 0} - m_IKOnFeet: 0 - m_WriteDefaultValues: 1 - m_Mirror: 0 - m_SpeedParameterActive: 0 - m_MirrorParameterActive: 0 - m_CycleOffsetParameterActive: 0 - m_TimeParameterActive: 0 - m_Motion: {fileID: 7400000, guid: 5d5f64fb6a50b6a58bc426531ac62ec9, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: --- !u!1102 &-7413468643251240543 AnimatorState: serializedVersion: 6 @@ -139,9 +113,6 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: -7413468643251240543} m_Position: {x: 580, y: 120, z: 0} - - serializedVersion: 1 - m_State: {fileID: -8866037852887971400} - m_Position: {x: -8497.861, y: -5177.2417, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Prefabs/Glass Ball.prefab b/Assets/Prefabs/Glass Ball.prefab new file mode 100644 index 0000000..e66f06a --- /dev/null +++ b/Assets/Prefabs/Glass Ball.prefab @@ -0,0 +1,306 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2312649819242536579 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 830916118332915249} + - component: {fileID: 5075101834145290994} + - component: {fileID: 7846459845625119411} + - component: {fileID: 8579576505775385914} + - component: {fileID: 6044743480368853374} + - component: {fileID: 3523105658309132405} + - component: {fileID: 6879026936894495132} + m_Layer: 0 + m_Name: Glass Ball + m_TagString: GlassBall + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &830916118332915249 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.074117, y: -0.29919297, z: 0} + 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!212 &5075101834145290994 +SpriteRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + 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_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 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: 0 + 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: 5 + m_MaskInteraction: 0 + m_Sprite: {fileID: 8067002814062450835, guid: 468cc65e49fd9b3868f352b3e09a05a9, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.19, y: 0.19} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_SpriteSortPoint: 0 +--- !u!114 &7846459845625119411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c6e6f3ea61ed2256b8844572540ec2ef, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::GlassBall + spawnSound: {fileID: 8300000, guid: 39ac5ebaed90d56bc94a1513178225e2, type: 3} + bounceSound: {fileID: 8300000, guid: a36177a84709d5c51ae647a599008d1d, type: 3} + hitSound: {fileID: 8300000, guid: a36177a84709d5c51ae647a599008d1d, type: 3} + breakSound: {fileID: 8300000, guid: d874cb20fd23b03f4baf8004c51ab748, type: 3} +--- !u!95 &8579576505775385914 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 7c51b29560aae143884e7d2395ade428, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!50 &6044743480368853374 +Rigidbody2D: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDamping: 0 + m_AngularDamping: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!61 &3523105658309132405 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 0.19, y: 0.19} + newSize: {x: 0.19, y: 0.19} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 0.19, y: 0.19} + m_EdgeRadius: 0 +--- !u!82 &6879026936894495132 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2312649819242536579} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_Resource: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 diff --git a/Assets/Prefabs/Glass Ball.prefab.meta b/Assets/Prefabs/Glass Ball.prefab.meta new file mode 100644 index 0000000..b941607 --- /dev/null +++ b/Assets/Prefabs/Glass Ball.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8edf6fc27e5738f8aac0365c1a6441b4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Nuclear Ball.prefab b/Assets/Prefabs/Nuclear Ball.prefab index 5c20fd7..c17b1d3 100644 --- a/Assets/Prefabs/Nuclear Ball.prefab +++ b/Assets/Prefabs/Nuclear Ball.prefab @@ -84,7 +84,7 @@ SpriteRenderer: m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 0 + m_SortingOrder: 5 m_MaskInteraction: 0 m_Sprite: {fileID: 4743041161850474212, guid: b1eb9d7fe38bb77f9a0320079e439ce5, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 3b08893..27cf30a 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -560,7 +560,7 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::BallSpawner basicBallPrefab: {fileID: 5170544452824093409, guid: 4b9ec3a3bc88610fa80938a4d6850568, type: 3} nuclearBallPrefab: {fileID: 8278701988301055462, guid: 365b1b399a34e29bdbde4d0297ee7d12, type: 3} - glassBallPrefab: {fileID: 0} + glassBallPrefab: {fileID: 2312649819242536579, guid: 8edf6fc27e5738f8aac0365c1a6441b4, type: 3} eyeBallPrefab: {fileID: 0} oozeBallPrefab: {fileID: 2828226485849316135, guid: ff4467517111a6d0ab4e5608c8adeee0, type: 3} fruitBallPrefab: {fileID: 3086586548818580311, guid: b67974a0c09fbe75aac299e30a0c665b, type: 3} diff --git a/Assets/Scripts/Game/BallSpawner.cs b/Assets/Scripts/Game/BallSpawner.cs index 62edcc6..a8d38cf 100644 --- a/Assets/Scripts/Game/BallSpawner.cs +++ b/Assets/Scripts/Game/BallSpawner.cs @@ -36,6 +36,11 @@ public class BallSpawner : MonoBehaviour ballQueue.Enqueue(() => SpawnBall(fruitBallPrefab)); ballQueue.Enqueue(() => SpawnBall(oozeBallPrefab)); ballQueue.Enqueue(() => SpawnBall(nuclearBallPrefab)); + ballQueue.Enqueue(() => SpawnBall(glassBallPrefab)); + ballQueue.Enqueue(() => SpawnBall(glassBallPrefab)); + ballQueue.Enqueue(() => SpawnBall(glassBallPrefab)); + ballQueue.Enqueue(() => SpawnBall(glassBallPrefab)); + ballQueue.Enqueue(() => SpawnBall(glassBallPrefab)); StartCoroutine(SpawnBalls()); } @@ -91,6 +96,8 @@ public class BallSpawner : MonoBehaviour } balls.Enqueue(newBall); + + FixCollisions(); } private Vector3 GetRandomPositionInsideGameBoard() diff --git a/Assets/Scripts/Game/Balls/GlassBall.cs b/Assets/Scripts/Game/Balls/GlassBall.cs new file mode 100644 index 0000000..42d6eae --- /dev/null +++ b/Assets/Scripts/Game/Balls/GlassBall.cs @@ -0,0 +1,92 @@ +using UnityEngine; +using System.Collections; + +public class GlassBall : MonoBehaviour +{ + private Animator animator; + + public AudioClip spawnSound; + + public AudioClip bounceSound; + + public AudioClip hitSound; + + public AudioClip breakSound; + + private AudioSource audioSource; + + private Vector2 speed; + + private int health = 3; + + private SpriteRenderer spriteRenderer; + + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() + { + audioSource = GetComponent(); + animator = GetComponent(); + spriteRenderer = GetComponent(); + speed = new Vector2(Random.Range(-0.05f, 0.05f), Random.Range(-0.05f, 0.05f)); + + audioSource.PlayOneShot(spawnSound); + } + + // Update is called once per frame + void FixedUpdate() + { + AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0); + + if (stateInfo.IsName("GlassBallMove1") || + stateInfo.IsName("GlassBallMove2") || + stateInfo.IsName("GlassBallMove3")) + { + transform.Translate(speed); + } + } + + void OnCollisionEnter2D(Collision2D collision) + { + if (collision.gameObject.CompareTag("Wall") || + collision.gameObject.CompareTag("GlassBall")) + { + ContactPoint2D contact = collision.GetContact(0); + speed = Vector2.Reflect(speed, contact.normal); + + // Glass balls take damage when colliding with other GlassBalls + // TODO: Check for collisions with a bar. + if (collision.gameObject.CompareTag("GlassBall")) + { + health--; + + if (health < 0) + { + health = 0; + } + + animator.SetInteger("health", health); + + if (health > 0) + { + audioSource.PlayOneShot(hitSound); + } else + { + audioSource.PlayOneShot(breakSound); + } + } + } + } + + public void Break() + { + spriteRenderer.enabled = false; + StartCoroutine(BreakCoroutine()); + } + + private IEnumerator BreakCoroutine() + { + yield return new WaitForSeconds(0.6f); + + Destroy(gameObject); + } +} diff --git a/Assets/Scripts/Game/Balls/GlassBall.cs.meta b/Assets/Scripts/Game/Balls/GlassBall.cs.meta new file mode 100644 index 0000000..b07f064 --- /dev/null +++ b/Assets/Scripts/Game/Balls/GlassBall.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c6e6f3ea61ed2256b8844572540ec2ef \ No newline at end of file diff --git a/Assets/Sprites/400.png b/Assets/Sprites/400.png new file mode 100644 index 0000000000000000000000000000000000000000..d10955e31bed40a3609fba54f29696e9d53431d4 GIT binary patch literal 775 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 V