From 670aa5dde49c58cd4a8a2f0a77eefe1646d3cf2b Mon Sep 17 00:00:00 2001 From: Josh Date: Sun, 5 Feb 2023 23:58:37 -0500 Subject: [PATCH] birds as ammo --- unity/Assets/Game.cs | 17 + unity/Assets/Prefabs/Bird.prefab | 116 ++ unity/Assets/Prefabs/Bird.prefab.meta | 7 + unity/Assets/Scenes/SampleScene.unity | 1301 +++++++++++++++-- unity/Assets/Scripts/Bird.cs | 51 + unity/Assets/Scripts/Bird.cs.meta | 11 + unity/Assets/Scripts/DragonMovement.cs | 48 +- unity/Assets/Sprites/birds.meta | 8 + unity/Assets/Sprites/birds/bird_blue_1.png | Bin 0 -> 16706 bytes .../Assets/Sprites/birds/bird_blue_1.png.meta | 109 ++ unity/Assets/Sprites/birds/bird_yellow_1.png | Bin 0 -> 17650 bytes .../Sprites/birds/bird_yellow_1.png.meta | 109 ++ unity/ProjectSettings/TagManager.asset | 1 + 13 files changed, 1664 insertions(+), 114 deletions(-) create mode 100644 unity/Assets/Prefabs/Bird.prefab create mode 100644 unity/Assets/Prefabs/Bird.prefab.meta create mode 100644 unity/Assets/Scripts/Bird.cs create mode 100644 unity/Assets/Scripts/Bird.cs.meta create mode 100644 unity/Assets/Sprites/birds.meta create mode 100644 unity/Assets/Sprites/birds/bird_blue_1.png create mode 100644 unity/Assets/Sprites/birds/bird_blue_1.png.meta create mode 100644 unity/Assets/Sprites/birds/bird_yellow_1.png create mode 100644 unity/Assets/Sprites/birds/bird_yellow_1.png.meta diff --git a/unity/Assets/Game.cs b/unity/Assets/Game.cs index ed9b3e2..22addfb 100644 --- a/unity/Assets/Game.cs +++ b/unity/Assets/Game.cs @@ -8,12 +8,14 @@ public class Game : MonoBehaviour { // Start is called before the first frame update [SerializeField] GameObject _cloudPrefab; + [SerializeField] GameObject _birdPrefab; const int NUM_CLOUDS = 6; const float START_X = 1300; [SerializeField] Text _victoryMessage; [SerializeField] Text _restartMessage; bool _victory = false; + float _timeToNextBird = 0f; void Start() { @@ -39,10 +41,25 @@ public class Game : MonoBehaviour _victoryMessage.text = dragonName.ToUpper() + " WINS!"; _victoryMessage.color = color; } + void SpawnBird() + { + GameObject bird = GameObject.Instantiate(_birdPrefab); + float y = Random.Range(0f, 1080f); + bird.transform.position = new Vector3(2000f, y, 0f); + + _timeToNextBird = Random.Range(0f, 4f); + } // Update is called once per frame void Update() { + _timeToNextBird -= Time.deltaTime; + + if (_timeToNextBird < 0f) + { + SpawnBird(); + } + if (Input.GetKeyDown(KeyCode.R)) { SceneManager.LoadScene(SceneManager.GetActiveScene().name); diff --git a/unity/Assets/Prefabs/Bird.prefab b/unity/Assets/Prefabs/Bird.prefab new file mode 100644 index 0000000..9e18e92 --- /dev/null +++ b/unity/Assets/Prefabs/Bird.prefab @@ -0,0 +1,116 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8800180563921210508 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8800180563921210499} + - component: {fileID: 8800180563921210498} + - component: {fileID: 8800180563921210509} + - component: {fileID: 8800180563921210496} + m_Layer: 0 + m_Name: Bird + m_TagString: Bird + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8800180563921210499 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8800180563921210508} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1137.7001, y: 597.95557, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &8800180563921210498 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8800180563921210508} + 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: 21300000, guid: b618c1b99c40e3a4c87d042969b1dcc0, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.32, y: 0.92} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &8800180563921210509 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8800180563921210508} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fd8ad88e69cd45a4ebfb8515d31be3d1, type: 3} + m_Name: + m_EditorClassIdentifier: + _blueBird: {fileID: 21300000, guid: 96ac1047b12197a429d1c6396c1a4675, type: 3} + _yellowBird: {fileID: 21300000, guid: b618c1b99c40e3a4c87d042969b1dcc0, type: 3} +--- !u!58 &8800180563921210496 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8800180563921210508} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 13.23 diff --git a/unity/Assets/Prefabs/Bird.prefab.meta b/unity/Assets/Prefabs/Bird.prefab.meta new file mode 100644 index 0000000..6ea4c43 --- /dev/null +++ b/unity/Assets/Prefabs/Bird.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9777a80f11a5216499bc46c9edf06b7b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scenes/SampleScene.unity b/unity/Assets/Scenes/SampleScene.unity index 98913ee..e8b56c3 100644 --- a/unity/Assets/Scenes/SampleScene.unity +++ b/unity/Assets/Scenes/SampleScene.unity @@ -123,6 +123,88 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &4426099 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4426101} + - component: {fileID: 4426100} + m_Layer: 6 + m_Name: Ammo (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &4426100 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4426099} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &4426101 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4426099} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: -12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 1588360798} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &78464504 GameObject: m_ObjectHideFlags: 0 @@ -205,6 +287,36 @@ Transform: m_Father: {fileID: 1588360798} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &110793195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 110793196} + m_Layer: 0 + m_Name: ConeSpawnPoint (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &110793196 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 110793195} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 37.300003, y: -5.3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 480143055} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &237121830 GameObject: m_ObjectHideFlags: 0 @@ -343,6 +455,88 @@ TrailRenderer: m_MinVertexDistance: 0.1 m_Autodestruct: 0 m_Emitting: 1 +--- !u!1 &268298731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 268298732} + - component: {fileID: 268298733} + m_Layer: 6 + m_Name: Ammo (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &268298732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268298731} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: -12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 480143055} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!212 &268298733 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268298731} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &480143053 GameObject: m_ObjectHideFlags: 0 @@ -430,6 +624,10 @@ Transform: - {fileID: 237121831} - {fileID: 1850103815} - {fileID: 1001794175} + - {fileID: 110793196} + - {fileID: 1924640491} + - {fileID: 268298732} + - {fileID: 1195918966} m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -491,11 +689,15 @@ MonoBehaviour: FlapLength: 0.1 _fireballPrefab: {fileID: 3013654646655086450, guid: a0ff208e909d8cd469c02ed1f8eda034, type: 3} _fireballSpawnPoint: {fileID: 1850103814} - _coneSpawnPoint: {fileID: 0} + _coneSpawnPoint: {fileID: 110793195} _flash: {fileID: 1001794173} _dragonName: Scarlet Dragon _color: {r: 1, g: 0, b: 0, a: 1} _trail: {fileID: 237121832} + _ammoGui: + - {fileID: 1924640492} + - {fileID: 268298733} + - {fileID: 1195918967} _attackType: 0 --- !u!114 &480143059 MonoBehaviour: @@ -871,6 +1073,10 @@ MonoBehaviour: _dragonName: Chartreuse Dragon _color: {r: 0.21719734, g: 0.754717, b: 0, a: 1} _trail: {fileID: 603473293} + _ammoGui: + - {fileID: 2002547162} + - {fileID: 1316701392} + - {fileID: 826985845} _attackType: 1 --- !u!95 &629347648 Animator: @@ -958,6 +1164,9 @@ Transform: - {fileID: 702048808} - {fileID: 1094877704} - {fileID: 1754293197} + - {fileID: 2002547163} + - {fileID: 1316701393} + - {fileID: 826985846} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1021,6 +1230,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _cloudPrefab: {fileID: 8093627333698608799, guid: 222963b5f45b20141bf7dd413f3342cd, type: 3} + _birdPrefab: {fileID: 8800180563921210508, guid: 9777a80f11a5216499bc46c9edf06b7b, type: 3} _victoryMessage: {fileID: 1794958515} _restartMessage: {fileID: 1744497687} --- !u!4 &822168905 @@ -1038,6 +1248,88 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &826985844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 826985846} + - component: {fileID: 826985845} + m_Layer: 6 + m_Name: Ammo (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &826985845 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826985844} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &826985846 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826985844} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 629347650} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &833231468 GameObject: m_ObjectHideFlags: 0 @@ -1522,7 +1814,7 @@ Transform: m_Father: {fileID: 629347650} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1208042745 +--- !u!1 &1126057419 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1530,40 +1822,152 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1208042752} - - component: {fileID: 1208042751} - - component: {fileID: 1208042750} - - component: {fileID: 1208042749} - - component: {fileID: 1208042748} - - component: {fileID: 1208042747} - - component: {fileID: 1208042746} - m_Layer: 6 - m_Name: Dragon_Blue + - component: {fileID: 1126057420} + m_Layer: 0 + m_Name: ConeSpawnPoint (1) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!58 &1208042746 -CircleCollider2D: +--- !u!4 &1126057420 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1208042745} - m_Enabled: 1 - m_Density: 1 - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_UsedByComposite: 0 - m_Offset: {x: 0, y: 0} - serializedVersion: 2 - m_Radius: 31.1 ---- !u!114 &1208042747 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} + m_GameObject: {fileID: 1126057419} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 37.300003, y: -5.3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1208042752} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1195918965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1195918966} + - component: {fileID: 1195918967} + m_Layer: 6 + m_Name: Ammo (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1195918966 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195918965} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 480143055} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!212 &1195918967 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195918965} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1208042745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1208042752} + - component: {fileID: 1208042751} + - component: {fileID: 1208042750} + - component: {fileID: 1208042749} + - component: {fileID: 1208042748} + - component: {fileID: 1208042747} + - component: {fileID: 1208042746} + m_Layer: 6 + m_Name: Dragon_Blue + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!58 &1208042746 +CircleCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208042745} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + serializedVersion: 2 + m_Radius: 31.1 +--- !u!114 &1208042747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1208042745} @@ -1611,11 +2015,15 @@ MonoBehaviour: FlapLength: 0.1 _fireballPrefab: {fileID: 3013654646655086450, guid: a0ff208e909d8cd469c02ed1f8eda034, type: 3} _fireballSpawnPoint: {fileID: 833231468} - _coneSpawnPoint: {fileID: 0} + _coneSpawnPoint: {fileID: 1126057419} _flash: {fileID: 2065535042} _dragonName: Indigo Dragon _color: {r: 0, g: 0.0880208, b: 1, a: 1} _trail: {fileID: 863009463} + _ammoGui: + - {fileID: 1460621903} + - {fileID: 1804844936} + - {fileID: 1673551980} _attackType: 0 --- !u!95 &1208042750 Animator: @@ -1701,10 +2109,96 @@ Transform: m_Children: - {fileID: 863009464} - {fileID: 833231469} + - {fileID: 1126057420} - {fileID: 2065535044} + - {fileID: 1460621904} + - {fileID: 1804844937} + - {fileID: 1673551981} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1316701391 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1316701393} + - component: {fileID: 1316701392} + m_Layer: 6 + m_Name: Ammo (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1316701392 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316701391} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1316701393 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316701391} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: -12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 629347650} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &1369941868 GameObject: m_ObjectHideFlags: 0 @@ -1814,6 +2308,170 @@ BoxCollider2D: serializedVersion: 2 m_Size: {x: 130, y: 1076} m_EdgeRadius: 0 +--- !u!1 &1460621902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1460621904} + - component: {fileID: 1460621903} + m_Layer: 6 + m_Name: Ammo (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1460621903 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460621902} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1460621904 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1460621902} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 1208042752} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &1540757027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1540757029} + - component: {fileID: 1540757028} + m_Layer: 6 + m_Name: Ammo (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1540757028 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540757027} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1540757029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540757027} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 1588360798} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &1588360791 GameObject: m_ObjectHideFlags: 0 @@ -1908,6 +2566,10 @@ MonoBehaviour: _dragonName: Butterscotch Dragon _color: {r: 1, g: 0.6401813, b: 0, a: 1} _trail: {fileID: 1011871362} + _ammoGui: + - {fileID: 1972481873} + - {fileID: 4426100} + - {fileID: 1540757028} _attackType: 1 --- !u!95 &1588360796 Animator: @@ -1995,6 +2657,9 @@ Transform: - {fileID: 1779421299} - {fileID: 78464506} - {fileID: 577405912} + - {fileID: 1972481874} + - {fileID: 4426101} + - {fileID: 1540757029} m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2099,6 +2764,88 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 +--- !u!1 &1673551979 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1673551981} + - component: {fileID: 1673551980} + m_Layer: 6 + m_Name: Ammo (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1673551980 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1673551979} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1673551981 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1673551979} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 1208042752} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &1744497685 GameObject: m_ObjectHideFlags: 0 @@ -2194,14 +2941,205 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!212 &1754293196 + m_IsActive: 0 +--- !u!212 &1754293196 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754293195} + 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: 21300000, guid: 986ea2d4c47b62e4486f856920e2bac5, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 200, y: 200} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1754293197 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754293195} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.13, y: -10.88, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 629347650} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1779421298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1779421299} + m_Layer: 0 + m_Name: FireballSpawnPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1779421299 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1779421298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 66.2, y: -12.7, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1588360798} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1794958513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1794958514} + - component: {fileID: 1794958516} + - component: {fileID: 1794958515} + m_Layer: 5 + m_Name: Victory + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1794958514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1794958513} + 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: 1627385223} + m_RootOrder: 0 + 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: 80.94} + m_SizeDelta: {x: 1920, y: 1080} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1794958515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1794958513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 44 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 300 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: BLUE WINS! +--- !u!222 &1794958516 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1794958513} + m_CullTransparentMesh: 1 +--- !u!1 &1804844935 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1804844937} + - component: {fileID: 1804844936} + m_Layer: 6 + m_Name: Ammo (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1804844936 SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754293195} + m_GameObject: {fileID: 1804844935} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -2234,33 +3172,33 @@ SpriteRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 0 - m_Sprite: {fileID: 21300000, guid: 986ea2d4c47b62e4486f856920e2bac5, type: 3} + m_SortingOrder: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 m_FlipY: 0 m_DrawMode: 0 - m_Size: {x: 200, y: 200} + m_Size: {x: 120, y: 120} m_AdaptiveModeThreshold: 0.5 m_SpriteTileMode: 0 m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!4 &1754293197 +--- !u!4 &1804844937 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1754293195} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 4.13, y: -10.88, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 1804844935} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: -12, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} m_Children: [] - m_Father: {fileID: 629347650} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1779421298 + m_Father: {fileID: 1208042752} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &1850103814 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2268,7 +3206,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1779421299} + - component: {fileID: 1850103815} m_Layer: 0 m_Name: FireballSpawnPoint m_TagString: Untagged @@ -2276,21 +3214,21 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1779421299 +--- !u!4 &1850103815 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1779421298} + m_GameObject: {fileID: 1850103814} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 66.2, y: -12.7, z: 0} + m_LocalPosition: {x: 64.4, y: -16.3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 1588360798} + m_Father: {fileID: 480143055} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1794958513 +--- !u!1 &1924640490 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2298,78 +3236,163 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1794958514} - - component: {fileID: 1794958516} - - component: {fileID: 1794958515} - m_Layer: 5 - m_Name: Victory + - component: {fileID: 1924640491} + - component: {fileID: 1924640492} + m_Layer: 6 + m_Name: Ammo m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1794958514 -RectTransform: +--- !u!4 &1924640491 +Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794958513} - 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_GameObject: {fileID: 1924640490} + m_LocalRotation: {x: 0, y: 0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} m_Children: [] - m_Father: {fileID: 1627385223} - m_RootOrder: 0 - 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: 80.94} - m_SizeDelta: {x: 1920, y: 1080} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1794958515 -MonoBehaviour: + m_Father: {fileID: 480143055} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!212 &1924640492 +SpriteRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794958513} + m_GameObject: {fileID: 1924640490} m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} 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_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 44 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 300 - m_Alignment: 4 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: BLUE WINS! ---- !u!222 &1794958516 -CanvasRenderer: + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1972481872 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1794958513} - m_CullTransparentMesh: 1 ---- !u!1 &1850103814 + serializedVersion: 6 + m_Component: + - component: {fileID: 1972481874} + - component: {fileID: 1972481873} + m_Layer: 6 + m_Name: Ammo (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1972481873 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972481872} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1972481874 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972481872} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} + m_Children: [] + m_Father: {fileID: 1588360798} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} +--- !u!1 &2002547161 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2377,28 +3400,80 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1850103815} - m_Layer: 0 - m_Name: FireballSpawnPoint + - component: {fileID: 2002547163} + - component: {fileID: 2002547162} + m_Layer: 6 + m_Name: Ammo (3) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1850103815 +--- !u!212 &2002547162 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002547161} + 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: 1 + m_Sprite: {fileID: 21300000, guid: 263a8924aa9f1424593e21c7b00c606d, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 120, y: 120} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &2002547163 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1850103814} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 64.4, y: -16.3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_GameObject: {fileID: 2002547161} + m_LocalRotation: {x: -0, y: -0, z: 1, w: 0} + m_LocalPosition: {x: 0, y: -53.3, z: 0} + m_LocalScale: {x: 0.56936, y: 0.56936, z: 0.56936} m_Children: [] - m_Father: {fileID: 480143055} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Father: {fileID: 629347650} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} --- !u!1 &2039228491 GameObject: m_ObjectHideFlags: 0 @@ -2574,5 +3649,5 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1208042752} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/unity/Assets/Scripts/Bird.cs b/unity/Assets/Scripts/Bird.cs new file mode 100644 index 0000000..546907f --- /dev/null +++ b/unity/Assets/Scripts/Bird.cs @@ -0,0 +1,51 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Bird : MonoBehaviour +{ + const float horizontalSpeed = 200f; + const float verticalSpeed = 5f; + const float amplitude = 30f; + + private float startTime; + float _startingY; + [SerializeField] Sprite _blueBird; + [SerializeField] Sprite _yellowBird; + DragonMovement.AttackType _attackType; + + public DragonMovement.AttackType AttackType { get => _attackType; set => _attackType = value; } + + void Start() + { + startTime = Time.time; + _startingY = transform.position.y; + + int type = Random.Range(0, 2); + if (type == 0) { + AttackType = DragonMovement.AttackType.CONE; + GetComponent().sprite = _blueBird; + } + else + { + AttackType = DragonMovement.AttackType.FIREBALL; + GetComponent().sprite = _yellowBird; + } + } + + void Update() + { + float y = _startingY + (amplitude * Mathf.Sin(verticalSpeed * (Time.time - startTime))); + transform.position = new Vector3(transform.position.x - Time.deltaTime * horizontalSpeed, y, transform.position.z); + + if (transform.position.x < -100f) + { + GameObject.Destroy(this.gameObject); + } + } + + public void Eat() + { + GameObject.Destroy(this.gameObject); + } +} \ No newline at end of file diff --git a/unity/Assets/Scripts/Bird.cs.meta b/unity/Assets/Scripts/Bird.cs.meta new file mode 100644 index 0000000..d21a48b --- /dev/null +++ b/unity/Assets/Scripts/Bird.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fd8ad88e69cd45a4ebfb8515d31be3d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scripts/DragonMovement.cs b/unity/Assets/Scripts/DragonMovement.cs index 0227d97..ed0d493 100644 --- a/unity/Assets/Scripts/DragonMovement.cs +++ b/unity/Assets/Scripts/DragonMovement.cs @@ -18,12 +18,16 @@ public class DragonMovement : MonoBehaviour [SerializeField] string _dragonName; [SerializeField] Color _color; [SerializeField] TrailRenderer _trail; + [SerializeField] List _ammoGui = new List(); float _stunTime = 0f; float _debugCurSpeed; bool _victory = false; + int _ammo = 0; + float _speedBoostTime = 0f; + public enum AttackType { FIREBALL, @@ -33,6 +37,25 @@ public class DragonMovement : MonoBehaviour [SerializeField] AttackType _attackType = AttackType.FIREBALL; const string CONE_NAME = "cone"; + + public int Ammo { get => _ammo; + set { + _ammo = value; + for (int i = 0; i < _ammoGui.Count; ++i) + { + if (i < _ammo) + { + _ammoGui[i].enabled = true; + } + else + { + _ammoGui[i].enabled = false; + } + + } + } + } + private void OnTriggerEnter2D(Collider2D collision) { @@ -44,6 +67,15 @@ public class DragonMovement : MonoBehaviour CheckCloudCollision(collision); + if (collision.CompareTag("Bird")) + { + Bird bird = collision.GetComponent(); + bird.Eat(); + Ammo = 3; + _speedBoostTime = 1f; + _attackType = bird.AttackType; + } + if (collision.CompareTag("FinishLine")) { Game game = FindObjectOfType(); @@ -96,6 +128,7 @@ public class DragonMovement : MonoBehaviour } void Start() { + Ammo = 0; _rigidbody = this.GetComponent(); _animator = this.GetComponent(); _trail.startColor = _color; @@ -104,6 +137,8 @@ public class DragonMovement : MonoBehaviour private void Update() { + _speedBoostTime -= Time.deltaTime; + if (Input.GetKeyDown(FlapKey) && _stunTime <0f) { Flap(); @@ -125,6 +160,11 @@ public class DragonMovement : MonoBehaviour void Shoot() { + if (Ammo <= 0) + return; + + Ammo--; + if (_attackType == AttackType.FIREBALL) { GameObject.Instantiate(_fireballPrefab, _fireballSpawnPoint.transform.position, Quaternion.identity); @@ -165,8 +205,10 @@ public class DragonMovement : MonoBehaviour _flapTime -= Time.deltaTime; _stunTime -= Time.deltaTime; - const float SPEED = .6f; + const float SPEED = .4f; float horizontalSpeed = SPEED; + + float verticalSpeed = 0f; const float GLIDE_TIME = 0.6f; @@ -217,6 +259,10 @@ public class DragonMovement : MonoBehaviour horizontalSpeed = MAX_SPEED; } + if (_speedBoostTime > 0f) + { + horizontalSpeed *= 2.3333f; + } _debugCurSpeed = horizontalSpeed; float x = transform.position.x + horizontalSpeed; x = Mathf.Max(x, 32); diff --git a/unity/Assets/Sprites/birds.meta b/unity/Assets/Sprites/birds.meta new file mode 100644 index 0000000..ed30b57 --- /dev/null +++ b/unity/Assets/Sprites/birds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 812936e8583d0264d8dcd3e8b123fb73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Sprites/birds/bird_blue_1.png b/unity/Assets/Sprites/birds/bird_blue_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba20da0026a6c0b61380b2825643a5b163f6be21 GIT binary patch literal 16706 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 literal 0 HcmV?d00001 diff --git a/unity/Assets/Sprites/birds/bird_blue_1.png.meta b/unity/Assets/Sprites/birds/bird_blue_1.png.meta new file mode 100644 index 0000000..ee8e879 --- /dev/null +++ b/unity/Assets/Sprites/birds/bird_blue_1.png.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 96ac1047b12197a429d1c6396c1a4675 +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 3 + 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 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Sprites/birds/bird_yellow_1.png b/unity/Assets/Sprites/birds/bird_yellow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..79296f8960dbecf253db6bdbf70c71dca7165916 GIT binary patch literal 17650 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 l3BG09ju