From d5258cc72ce0c36f58ffa1efaba68d26fa7e2afb Mon Sep 17 00:00:00 2001 From: Matthew Kalahiki Date: Wed, 28 Apr 2021 21:51:18 -0500 Subject: [PATCH] Working projectile and boss health --- .../Animations/Paint Projectile_0.controller | 72 ++++ .../Paint Projectile_0.controller.meta | 8 + .../Assets/Animations/PlayerProjectile.anim | 77 +++++ .../Animations/PlayerProjectile.anim.meta | 8 + .../Assets/Prefabs/PaintProjectile.prefab | 2 +- MuseumGame/Assets/Prefabs/Projectile.prefab | 156 +++++++++ .../Assets/Prefabs/Projectile.prefab.meta | 7 + .../Assets/Scenes/DemoLevels/BossRoom.unity | 2 + MuseumGame/Assets/Scenes/MainMenu.unity | 307 ++++++++++++++++++ MuseumGame/Assets/Scripts/DaisyBoss.cs | 39 ++- MuseumGame/Assets/Scripts/EnemyHealthBar.cs | 31 ++ .../Assets/Scripts/EnemyHealthBar.cs.meta | 11 + MuseumGame/Assets/Scripts/GameManager.cs | 8 +- MuseumGame/Assets/Scripts/Projectile.cs | 34 ++ MuseumGame/Assets/Scripts/Projectile.cs.meta | 11 + MuseumGame/Assets/Scripts/paintShoot.cs | 58 +++- MuseumGame/ProjectSettings/TagManager.asset | 1 + .../UserSettings/EditorUserSettings.asset | 10 +- 18 files changed, 823 insertions(+), 19 deletions(-) create mode 100644 MuseumGame/Assets/Animations/Paint Projectile_0.controller create mode 100644 MuseumGame/Assets/Animations/Paint Projectile_0.controller.meta create mode 100644 MuseumGame/Assets/Animations/PlayerProjectile.anim create mode 100644 MuseumGame/Assets/Animations/PlayerProjectile.anim.meta create mode 100644 MuseumGame/Assets/Prefabs/Projectile.prefab create mode 100644 MuseumGame/Assets/Prefabs/Projectile.prefab.meta create mode 100644 MuseumGame/Assets/Scripts/EnemyHealthBar.cs create mode 100644 MuseumGame/Assets/Scripts/EnemyHealthBar.cs.meta create mode 100644 MuseumGame/Assets/Scripts/Projectile.cs create mode 100644 MuseumGame/Assets/Scripts/Projectile.cs.meta diff --git a/MuseumGame/Assets/Animations/Paint Projectile_0.controller b/MuseumGame/Assets/Animations/Paint Projectile_0.controller new file mode 100644 index 0000000..f98e2a7 --- /dev/null +++ b/MuseumGame/Assets/Animations/Paint Projectile_0.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-6717077326021679556 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PlayerProjectile + 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: 4b333107ae6ddfc49920a0170fdb5022, 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: Paint Projectile_0 + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 327045990543142706} + 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} +--- !u!1107 &327045990543142706 +AnimatorStateMachine: + serializedVersion: 6 + 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: -6717077326021679556} + m_Position: {x: 200, y: 0, 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: -6717077326021679556} diff --git a/MuseumGame/Assets/Animations/Paint Projectile_0.controller.meta b/MuseumGame/Assets/Animations/Paint Projectile_0.controller.meta new file mode 100644 index 0000000..ce53552 --- /dev/null +++ b/MuseumGame/Assets/Animations/Paint Projectile_0.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a9b3a0b2b520235419e0b4c0cc9ba2b5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MuseumGame/Assets/Animations/PlayerProjectile.anim b/MuseumGame/Assets/Animations/PlayerProjectile.anim new file mode 100644 index 0000000..f08c2ef --- /dev/null +++ b/MuseumGame/Assets/Animations/PlayerProjectile.anim @@ -0,0 +1,77 @@ +%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: PlayerProjectile + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -8051328491415750467, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - time: 0.083333336 + value: {fileID: -6969508442564674092, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - time: 0.16666667 + value: {fileID: 5775047741713198415, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - time: 0.25 + value: {fileID: -7011062189496570857, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + m_SampleRate: 12 + 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 + pptrCurveMapping: + - {fileID: -8051328491415750467, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - {fileID: -6969508442564674092, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - {fileID: 5775047741713198415, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + - {fileID: -7011062189496570857, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.33333334 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + 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/MuseumGame/Assets/Animations/PlayerProjectile.anim.meta b/MuseumGame/Assets/Animations/PlayerProjectile.anim.meta new file mode 100644 index 0000000..204262e --- /dev/null +++ b/MuseumGame/Assets/Animations/PlayerProjectile.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b333107ae6ddfc49920a0170fdb5022 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/MuseumGame/Assets/Prefabs/PaintProjectile.prefab b/MuseumGame/Assets/Prefabs/PaintProjectile.prefab index da1c109..5a23737 100644 --- a/MuseumGame/Assets/Prefabs/PaintProjectile.prefab +++ b/MuseumGame/Assets/Prefabs/PaintProjectile.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: -1462258026606581137} m_Layer: 0 m_Name: PaintProjectile - m_TagString: Untagged + m_TagString: Projectile m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/MuseumGame/Assets/Prefabs/Projectile.prefab b/MuseumGame/Assets/Prefabs/Projectile.prefab new file mode 100644 index 0000000..f4a0a14 --- /dev/null +++ b/MuseumGame/Assets/Prefabs/Projectile.prefab @@ -0,0 +1,156 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6657842963515096360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6657842963515096357} + - component: {fileID: 6657842963515096356} + - component: {fileID: 6657842963515096363} + - component: {fileID: 6657842963515096362} + - component: {fileID: 6657842963515096361} + - component: {fileID: 5700299685592023324} + m_Layer: 0 + m_Name: Projectile + m_TagString: Projectile + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6657842963515096357 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 45.52459, y: -22.272118, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6657842963515096356 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -8051328491415750467, guid: 91aa6c120a1f8d64d942204b2b6a6952, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 3.2, y: 3.2} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!95 &6657842963515096363 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: a9b3a0b2b520235419e0b4c0cc9ba2b5, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!50 &6657842963515096362 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 0 +--- !u!58 &6657842963515096361 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.69348216, y: 0} + serializedVersion: 2 + m_Radius: 0.90651774 +--- !u!114 &5700299685592023324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6657842963515096360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8085c710b21304a4380e699f4c4645a3, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/MuseumGame/Assets/Prefabs/Projectile.prefab.meta b/MuseumGame/Assets/Prefabs/Projectile.prefab.meta new file mode 100644 index 0000000..455ecce --- /dev/null +++ b/MuseumGame/Assets/Prefabs/Projectile.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c8123a6940bd4b748b3b1fa3d345bb0e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MuseumGame/Assets/Scenes/DemoLevels/BossRoom.unity b/MuseumGame/Assets/Scenes/DemoLevels/BossRoom.unity index 3ff93b8..40900b7 100644 --- a/MuseumGame/Assets/Scenes/DemoLevels/BossRoom.unity +++ b/MuseumGame/Assets/Scenes/DemoLevels/BossRoom.unity @@ -1726,6 +1726,8 @@ MonoBehaviour: projectile: {fileID: 5836429411335034028, guid: 67bd739b3855bf4449e02e4b83c1d984, type: 3} projSpeed: 8 timeBetween: 4 + enemyHealth: 100 + damageTaken: 10 --- !u!95 &453535362 Animator: serializedVersion: 3 diff --git a/MuseumGame/Assets/Scenes/MainMenu.unity b/MuseumGame/Assets/Scenes/MainMenu.unity index ef205c5..536ed1d 100644 --- a/MuseumGame/Assets/Scenes/MainMenu.unity +++ b/MuseumGame/Assets/Scenes/MainMenu.unity @@ -257,6 +257,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 127032239} m_CullTransparentMesh: 1 +--- !u!1 &154104103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 154104104} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &154104104 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 154104103} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 325321419} + m_Father: {fileID: 1545666263} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &182368510 GameObject: m_ObjectHideFlags: 0 @@ -585,6 +621,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 283377687} m_CullTransparentMesh: 1 +--- !u!1 &325321418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 325321419} + - component: {fileID: 325321421} + - component: {fileID: 325321420} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &325321419 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325321418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 154104104} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &325321420 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325321418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8018868, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &325321421 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325321418} + m_CullTransparentMesh: 1 --- !u!1 &526643974 GameObject: m_ObjectHideFlags: 0 @@ -1208,6 +1319,7 @@ RectTransform: - {fileID: 1597355501} - {fileID: 1034874536} - {fileID: 1159971423} + - {fileID: 1545666263} m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1633,6 +1745,110 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1433247954} m_CullTransparentMesh: 1 +--- !u!1 &1545666262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1545666263} + - component: {fileID: 1545666265} + - component: {fileID: 1545666264} + m_Layer: 5 + m_Name: EnemyHealthBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1545666263 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545666262} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1941456386} + - {fileID: 154104104} + m_Father: {fileID: 937695572} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 100} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1545666264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545666262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1d425a430422ed84a99214cf2324bb37, type: 3} + m_Name: + m_EditorClassIdentifier: + healthBar: {fileID: 0} + maxHealth: 100 +--- !u!114 &1545666265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1545666262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_FillRect: {fileID: 325321419} + m_HandleRect: {fileID: 0} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1590398590 GameObject: m_ObjectHideFlags: 0 @@ -2096,6 +2312,21 @@ GameObject: m_CorrespondingSourceObject: {fileID: 374150667840124763, guid: e9268c7f81b604f459302eb8b45a432e, type: 3} m_PrefabInstance: {fileID: 1831256036} m_PrefabAsset: {fileID: 0} +--- !u!114 &1831256038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1831256037} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d4d7b53bd6c7264a80ed03bb45e7c07, type: 3} + m_Name: + m_EditorClassIdentifier: + projectile: {fileID: 6657842963515096360, guid: c8123a6940bd4b748b3b1fa3d345bb0e, type: 3} + projSpeed: 20 + waitTime: 1 --- !u!1 &1874083435 GameObject: m_ObjectHideFlags: 0 @@ -2246,6 +2477,7 @@ MonoBehaviour: - {fileID: 8300000, guid: f29919963390ff24fa1ae468277b309e, type: 3} - {fileID: 8300000, guid: 327636dbdcb895b478ac95086f383d8a, type: 3} - {fileID: 8300000, guid: f14b1787c8db6e448ab9eff57b9db745, type: 3} + enemyHealthBar: {fileID: 1545666262} --- !u!4 &1874083438 Transform: m_ObjectHideFlags: 0 @@ -2260,6 +2492,81 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1941456385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1941456386} + - component: {fileID: 1941456388} + - component: {fileID: 1941456387} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1941456386 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941456385} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1545666263} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1941456387 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941456385} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1941456388 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941456385} + m_CullTransparentMesh: 1 --- !u!1 &2102808483 GameObject: m_ObjectHideFlags: 0 diff --git a/MuseumGame/Assets/Scripts/DaisyBoss.cs b/MuseumGame/Assets/Scripts/DaisyBoss.cs index bf472ec..60ce6cc 100644 --- a/MuseumGame/Assets/Scripts/DaisyBoss.cs +++ b/MuseumGame/Assets/Scripts/DaisyBoss.cs @@ -9,10 +9,21 @@ public class DaisyBoss : MonoBehaviour public int projSpeed; public float timeBetween; + private GameObject enemyHealthBar; + private EnemyHealthBar ehb; + public int enemyHealth; + public int damageTaken; + // Start is called before the first frame update void Start() { StartCoroutine(SpawnProjectiles()); + + enemyHealthBar = GameManager.Instance.GetEnemyHealthBar(); + ehb = enemyHealthBar.GetComponent(); + enemyHealthBar.gameObject.SetActive(true); + + } // Update is called once per frame @@ -20,7 +31,33 @@ public class DaisyBoss : MonoBehaviour { } - + public void DamageEnemy(int damage) + { + enemyHealth -= damage; + ehb.SetHealth(enemyHealth); + if (enemyHealth <=0) { + enemyHealthBar.SetActive(false); + Destroy(gameObject); + } + + } + void OnCollisionEnter2D(Collision2D collision2D) + { + + if (collision2D.gameObject.CompareTag("Projectile")) + { + DamageEnemy(50); + } + + } + void OnTriggerEnter2D(Collider2D collider2D) + { + if (collider2D.gameObject.CompareTag("Projectile")) + { + DamageEnemy(50); + } + } + IEnumerator SpawnProjectiles() { for (; ; ) diff --git a/MuseumGame/Assets/Scripts/EnemyHealthBar.cs b/MuseumGame/Assets/Scripts/EnemyHealthBar.cs new file mode 100644 index 0000000..90b9cd7 --- /dev/null +++ b/MuseumGame/Assets/Scripts/EnemyHealthBar.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class EnemyHealthBar : MonoBehaviour +{ + public Slider healthBar; + public int maxHealth; + + // Start is called before the first frame update + void Start() + { + + healthBar = GetComponent(); + healthBar.maxValue = maxHealth; + healthBar.value = maxHealth; + } + + // Update is called once per frame + void Update() + { + + } + + public void SetHealth(int hp) + { + healthBar.value = hp; + } + +} diff --git a/MuseumGame/Assets/Scripts/EnemyHealthBar.cs.meta b/MuseumGame/Assets/Scripts/EnemyHealthBar.cs.meta new file mode 100644 index 0000000..8cb898a --- /dev/null +++ b/MuseumGame/Assets/Scripts/EnemyHealthBar.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d425a430422ed84a99214cf2324bb37 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MuseumGame/Assets/Scripts/GameManager.cs b/MuseumGame/Assets/Scripts/GameManager.cs index d28c862..93ce006 100644 --- a/MuseumGame/Assets/Scripts/GameManager.cs +++ b/MuseumGame/Assets/Scripts/GameManager.cs @@ -38,6 +38,8 @@ public class GameManager : MonoBehaviour public AudioClip[] music; + public GameObject enemyHealthBar; + void Awake() { if (Instance == null) @@ -178,10 +180,14 @@ public class GameManager : MonoBehaviour startButton.SetActive(false); title.SetActive(false); panel.SetActive(false); - LoadLevel("Spawn", new Vector3(0, 0, 0)); + LoadLevel("BossRoom", new Vector3(0, 0, 0)); healtBar.SetActive(true); powerUps.SetActive(true); } + public GameObject GetEnemyHealthBar() + { + return enemyHealthBar; + } } // } //} diff --git a/MuseumGame/Assets/Scripts/Projectile.cs b/MuseumGame/Assets/Scripts/Projectile.cs new file mode 100644 index 0000000..deb5812 --- /dev/null +++ b/MuseumGame/Assets/Scripts/Projectile.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Projectile : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + void OnCollisionEnter2D(Collision2D collision2D) + { + + if (!collision2D.gameObject.CompareTag("Player")) + { + Destroy(gameObject); + } + + } + void OnTriggerEnter2D(Collider2D collider2D) + { + if (!collider2D.gameObject.CompareTag("Player")) + { + Destroy(gameObject); + } + } +} diff --git a/MuseumGame/Assets/Scripts/Projectile.cs.meta b/MuseumGame/Assets/Scripts/Projectile.cs.meta new file mode 100644 index 0000000..c64a0f7 --- /dev/null +++ b/MuseumGame/Assets/Scripts/Projectile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8085c710b21304a4380e699f4c4645a3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MuseumGame/Assets/Scripts/paintShoot.cs b/MuseumGame/Assets/Scripts/paintShoot.cs index 94611c3..e2f90e7 100644 --- a/MuseumGame/Assets/Scripts/paintShoot.cs +++ b/MuseumGame/Assets/Scripts/paintShoot.cs @@ -4,35 +4,65 @@ using UnityEngine; public class paintShoot : MonoBehaviour { - private Rigidbody2D paintBlob; - public GameObject player; + public GameObject projectile; + public int projSpeed; + public float waitTime; + private float horizontal; + private float vertical; + private bool canShoot; // Start is called before the first frame update void Start() { - player = GetComponent(); + canShoot = true; } // Update is called once per frame void Update() { - if (Input.GetKeyDown(KeyCode.E)) + horizontal = Input.GetAxisRaw("Horizontal"); + vertical = Input.GetAxisRaw("Vertical"); + if (Input.GetKeyDown(KeyCode.E) && canShoot) { Debug.Log("shooting"); - Instantiate(paintBlob, player.transform); - if (player.GetComponent().faceRight) - { - paintBlob.velocity = transform.TransformDirection(Vector2.right); - } - else - { - paintBlob.velocity = transform.TransformDirection(Vector2.left); + canShoot = false; + StartCoroutine(ProjTimer()); + GameObject proj = Instantiate(projectile, transform.position,transform.rotation); + if (horizontal > 0 && vertical > 0) { + proj.transform.Rotate(new Vector3(0, 0, 45)); + } else if (horizontal > 0 && vertical < 0) { + proj.transform.Rotate(new Vector3(0, 0, -45)); + } else if (horizontal < 0 && vertical < 0) { + proj.transform.Rotate(new Vector3(0, 0, -135)); + } else if (horizontal < 0 && vertical > 0) { + proj.transform.Rotate(new Vector3(0, 0, 135)); + } else if (horizontal > 0) { + proj.transform.Rotate(new Vector3(0, 0, 0)); + } else if (horizontal < 0) { + proj.transform.Rotate(new Vector3(0, 0, 180)); + } else if (vertical > 0) { + proj.transform.Rotate(new Vector3(0, 0, 90)); + } else if (vertical < 0) { + proj.transform.Rotate(new Vector3(0, 0, -90)); + } else { + if (GetComponent().faceRight) + { + proj.transform.Rotate(new Vector3(0, 0, 0)); + } + else + { + proj.transform.Rotate(new Vector3(0, 0, 180)); + } } + proj.GetComponent().velocity = proj.transform.right * projSpeed; } } - private void OnCollisionEnter2D(Collision2D collision) + IEnumerator ProjTimer() { - //This is where you would damage the enemy + yield return new WaitForSeconds(waitTime); + canShoot = true; } + + } diff --git a/MuseumGame/ProjectSettings/TagManager.asset b/MuseumGame/ProjectSettings/TagManager.asset index a6719dd..b445cd2 100644 --- a/MuseumGame/ProjectSettings/TagManager.asset +++ b/MuseumGame/ProjectSettings/TagManager.asset @@ -10,6 +10,7 @@ TagManager: - Floor - GliderPowerup - Dog + - Projectile layers: - Default - TransparentFX diff --git a/MuseumGame/UserSettings/EditorUserSettings.asset b/MuseumGame/UserSettings/EditorUserSettings.asset index cacf7ca..5870bf8 100644 --- a/MuseumGame/UserSettings/EditorUserSettings.asset +++ b/MuseumGame/UserSettings/EditorUserSettings.asset @@ -9,12 +9,18 @@ EditorUserSettings: value: 22424703114646680e0b0227036c6f1103041d072926337e38271427fb flags: 0 RecentlyUsedScenePath-1: - value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23621b1226f6e50037d6e821ecf5742a323016f6 + value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23621a0d32f5ee7a2decee22f0 flags: 0 RecentlyUsedScenePath-2: - value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23621a0d32f5ee7a2decee22f0 + value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23621b1226f6e50037d6e821ecf5742a323016f6 flags: 0 RecentlyUsedScenePath-3: + value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23620c1336eff9002dece933e5a92f31352d1b + flags: 0 + RecentlyUsedScenePath-4: + value: 22424703114646680e0b0227036c7b151b18342f3a2d2a23620b1220f1d23b37efa923e7ee2e26 + flags: 0 + RecentlyUsedScenePath-5: value: 22424703114646680e0b0227036c72111f19352f223d68252320092a flags: 0 vcSharedLogLevel: