From e1e3c42b0037ee9ff2fa0b0d09030f2644b90118 Mon Sep 17 00:00:00 2001 From: Ader Alisma 01 Date: Tue, 23 Jan 2024 14:18:35 -0500 Subject: [PATCH 1/5] Created destination placeholders where resource ui should be --- Assets/Prefabs/Yield/yieldBerry.prefab | 3 +- Assets/Scenes/Game.unity | 139 +++++++++++++++++++++++ Assets/Scripts/Resource/ResourceMaker.cs | 20 +++- ProjectSettings/TagManager.asset | 3 + 4 files changed, 162 insertions(+), 3 deletions(-) diff --git a/Assets/Prefabs/Yield/yieldBerry.prefab b/Assets/Prefabs/Yield/yieldBerry.prefab index c546b85..ebb76d1 100644 --- a/Assets/Prefabs/Yield/yieldBerry.prefab +++ b/Assets/Prefabs/Yield/yieldBerry.prefab @@ -133,7 +133,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9dd6bad38b516d64e8e23a5822ca37bb, type: 3} m_Name: m_EditorClassIdentifier: - _resourceChoice: 3 + _resourceChoice: 2 + _animate: 1 _endPosition: {x: -2, y: 5} --- !u!1 &6962989256011107503 GameObject: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 853b502..7fe4d0e 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -255,6 +255,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 809914569973156333, guid: 5497dc5adfbe67341980c9d946816424, type: 3} + propertyPath: m_TagString + value: Untagged + objectReference: {fileID: 0} - target: {fileID: 809914570630650134, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -271,6 +275,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 809914570630650135, guid: 5497dc5adfbe67341980c9d946816424, type: 3} + propertyPath: m_TagString + value: Untagged + objectReference: {fileID: 0} - target: {fileID: 809914571062164690, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: _populationText value: @@ -383,6 +391,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 809914571517447037, guid: 5497dc5adfbe67341980c9d946816424, type: 3} + propertyPath: m_TagString + value: Untagged + objectReference: {fileID: 0} - target: {fileID: 2412408510912601678, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1485,6 +1497,37 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 635793715} m_CullTransparentMesh: 1 +--- !u!1 &679934011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 679934012} + m_Layer: 0 + m_Name: Wood + m_TagString: Wood + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &679934012 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 679934011} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.06, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1787373871} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &684588057 GameObject: m_ObjectHideFlags: 0 @@ -3257,6 +3300,37 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!1 &1482556085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1482556086} + m_Layer: 0 + m_Name: Food + m_TagString: Food + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1482556086 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482556085} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.75, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1787373871} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1508319155 GameObject: m_ObjectHideFlags: 0 @@ -3531,6 +3605,37 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1674701176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1674701177} + m_Layer: 0 + m_Name: Rock + m_TagString: Rock + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1674701177 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1674701176} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.48, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1787373871} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1709530843 GameObject: m_ObjectHideFlags: 0 @@ -3813,6 +3918,40 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1761692192} m_CullTransparentMesh: 1 +--- !u!1 &1787373870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1787373871} + m_Layer: 0 + m_Name: ResourceDestinations + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1787373871 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1787373870} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.980474, y: 0.12794627, z: 0.2783537} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1482556086} + - {fileID: 679934012} + - {fileID: 1674701177} + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2019202046 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Resource/ResourceMaker.cs b/Assets/Scripts/Resource/ResourceMaker.cs index 1bab68d..902914d 100644 --- a/Assets/Scripts/Resource/ResourceMaker.cs +++ b/Assets/Scripts/Resource/ResourceMaker.cs @@ -10,6 +10,7 @@ public class ResourceMaker : MonoBehaviour private ResourceManager _resourceManagerInstance; [SerializeField] private bool _animate = true; + private GameObject _destination; [SerializeField] private Vector2 _endPosition; private Vector2 _startPosition; @@ -30,6 +31,21 @@ public class ResourceMaker : MonoBehaviour _rigidbody = GetComponent(); _rigidbody.AddForce(transform.up * 20.0f); _rigidbody.gravityScale = 0.1f; + switch (_resourceChoice) + { + case Enum.ResourceChoice.Rock: + _destination = GameObject.FindWithTag("Rock"); + break; + case Enum.ResourceChoice.Wood: + _destination = GameObject.FindWithTag("Wood"); + break; + case Enum.ResourceChoice.Food: + _destination = GameObject.FindWithTag("Food"); + break; + default: + _destination = GameObject.FindWithTag("Food"); + break; + } } /// @@ -49,8 +65,8 @@ public class ResourceMaker : MonoBehaviour _timePassed += Time.deltaTime; float duration = _timePassed / _desiredTime; duration = duration * duration * (3.0f - 2.0f * duration); - transform.position = Vector2.Lerp(transform.position, _endPosition, duration); - if(Vector2.Distance(transform.position,_endPosition) < 0.001f) + transform.position = Vector2.Lerp(transform.position, _destination.transform.position, duration); + if (Vector2.Distance(transform.position, _destination.transform.position) < 0.001f) { _isPlaying = false; Destroy(gameObject); diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index c3fcd7d..0a87663 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -7,6 +7,9 @@ TagManager: - Opponent - Ally - Resource + - Food + - Wood + - Rock layers: - Default - TransparentFX From a4f7accfcd977b3c926a928bb2864fd0bdef4a37 Mon Sep 17 00:00:00 2001 From: Ader Alisma 01 Date: Sun, 4 Feb 2024 11:11:56 -0500 Subject: [PATCH 2/5] Removed Debug logs and prepared main rebase --- Assets/Scenes/Game.unity | 139 ----------------------- Assets/Scripts/Resource/ResourceMaker.cs | 2 - 2 files changed, 141 deletions(-) diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 7fe4d0e..853b502 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -255,10 +255,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 809914569973156333, guid: 5497dc5adfbe67341980c9d946816424, type: 3} - propertyPath: m_TagString - value: Untagged - objectReference: {fileID: 0} - target: {fileID: 809914570630650134, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -275,10 +271,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 809914570630650135, guid: 5497dc5adfbe67341980c9d946816424, type: 3} - propertyPath: m_TagString - value: Untagged - objectReference: {fileID: 0} - target: {fileID: 809914571062164690, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: _populationText value: @@ -391,10 +383,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 809914571517447037, guid: 5497dc5adfbe67341980c9d946816424, type: 3} - propertyPath: m_TagString - value: Untagged - objectReference: {fileID: 0} - target: {fileID: 2412408510912601678, guid: 5497dc5adfbe67341980c9d946816424, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1497,37 +1485,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 635793715} m_CullTransparentMesh: 1 ---- !u!1 &679934011 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 679934012} - m_Layer: 0 - m_Name: Wood - m_TagString: Wood - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &679934012 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 679934011} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -4.06, y: 3.31, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1787373871} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &684588057 GameObject: m_ObjectHideFlags: 0 @@ -3300,37 +3257,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!1 &1482556085 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1482556086} - m_Layer: 0 - m_Name: Food - m_TagString: Food - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1482556086 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1482556085} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.75, y: 3.31, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1787373871} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1508319155 GameObject: m_ObjectHideFlags: 0 @@ -3605,37 +3531,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1674701176 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1674701177} - m_Layer: 0 - m_Name: Rock - m_TagString: Rock - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1674701177 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1674701176} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -2.48, y: 3.31, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1787373871} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1709530843 GameObject: m_ObjectHideFlags: 0 @@ -3918,40 +3813,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1761692192} m_CullTransparentMesh: 1 ---- !u!1 &1787373870 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1787373871} - m_Layer: 0 - m_Name: ResourceDestinations - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1787373871 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1787373870} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -5.980474, y: 0.12794627, z: 0.2783537} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1482556086} - - {fileID: 679934012} - - {fileID: 1674701177} - m_Father: {fileID: 0} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2019202046 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Resource/ResourceMaker.cs b/Assets/Scripts/Resource/ResourceMaker.cs index 902914d..c2fa515 100644 --- a/Assets/Scripts/Resource/ResourceMaker.cs +++ b/Assets/Scripts/Resource/ResourceMaker.cs @@ -11,8 +11,6 @@ public class ResourceMaker : MonoBehaviour [SerializeField] private bool _animate = true; private GameObject _destination; - [SerializeField] - private Vector2 _endPosition; private Vector2 _startPosition; private Rigidbody2D _rigidbody; private float _desiredTime = 1.5f; From fabd51a9f516416c3745f24c774120441fa7b16b Mon Sep 17 00:00:00 2001 From: Ader Alisma 01 Date: Sun, 4 Feb 2024 11:36:24 -0500 Subject: [PATCH 3/5] Adjusted destination positions --- Assets/Scenes/Game.unity | 130 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 127 insertions(+), 3 deletions(-) diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 853b502..c33f377 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -524,7 +524,6 @@ MonoBehaviour: m_EditorClassIdentifier: _resourceChoice: 2 _animate: 0 - _endPosition: {x: 0, y: 0} --- !u!1 &119018171 GameObject: m_ObjectHideFlags: 0 @@ -639,7 +638,6 @@ MonoBehaviour: m_EditorClassIdentifier: _resourceChoice: 0 _animate: 0 - _endPosition: {x: 0, y: 0} --- !u!114 &144369556 MonoBehaviour: m_ObjectHideFlags: 0 @@ -843,6 +841,37 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &224477684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224477685} + m_Layer: 0 + m_Name: RockDestination + m_TagString: Rock + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &224477685 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 224477684} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.48, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1505683023} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &405102484 PrefabInstance: m_ObjectHideFlags: 0 @@ -1238,7 +1267,6 @@ MonoBehaviour: m_EditorClassIdentifier: _resourceChoice: 1 _animate: 0 - _endPosition: {x: 0, y: 0} --- !u!1 &619394800 GameObject: m_ObjectHideFlags: 0 @@ -2535,6 +2563,37 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!1 &1279975342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1279975343} + m_Layer: 0 + m_Name: WoodDestination + m_TagString: Wood + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1279975343 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1279975342} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.06, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1505683023} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1322577704 GameObject: m_ObjectHideFlags: 0 @@ -3257,6 +3316,71 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!1 &1486138001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1486138002} + m_Layer: 0 + m_Name: FoodDestination + m_TagString: Food + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1486138002 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486138001} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.75, y: 3.31, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1505683023} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1505683022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1505683023} + m_Layer: 0 + m_Name: YieldDestinations + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1505683023 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505683022} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.74, y: 0.1279463, z: 0.2783537} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1486138002} + - {fileID: 1279975343} + - {fileID: 224477685} + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1508319155 GameObject: m_ObjectHideFlags: 0 From ee5cf003b0fd0b4d5b03334f514649d04b96adf3 Mon Sep 17 00:00:00 2001 From: craftwill Date: Sun, 4 Feb 2024 18:57:28 -0500 Subject: [PATCH 4/5] Added animated mill and peasant card! --- Assets/Animations/Buildings.meta | 8 + .../Buildings/animator_mill.controller | 72 ++ .../Buildings/animator_mill.controller.meta | 8 + Assets/Animations/Buildings/mill_idle.anim | 199 +++++ .../Animations/Buildings/mill_idle.anim.meta | 8 + .../Sprites/UI/cards/card_background.png.meta | 12 + .../UI/cards/card_exemple_normal.png.meta | 12 + Assets/Art/Sprites/UI/cards/card_lock.png | Bin 0 -> 1607 bytes .../Art/Sprites/UI/cards/card_lock.png.meta | 135 ++++ .../UI/cards/icons/icon_card_axeman.png.meta | 12 + .../UI/cards/icons/icon_card_peasant.png | Bin 0 -> 11216 bytes .../UI/cards/icons/icon_card_peasant.png.meta | 135 ++++ .../Sprites/entities/buildings/mill_body.png | Bin 0 -> 5690 bytes .../entities/buildings/mill_body.png.meta | 135 ++++ .../Sprites/entities/buildings/mill_full.png | Bin 0 -> 8443 bytes .../entities/buildings/mill_full.png.meta | 135 ++++ .../Sprites/entities/buildings/mill_sails.png | Bin 0 -> 2919 bytes .../entities/buildings/mill_sails.png.meta | 135 ++++ Assets/Prefabs/Mill.prefab | 368 +++++++++ Assets/Prefabs/Mill.prefab.meta | 7 + .../GameObjectPlacementButton.prefab | 14 +- .../UnitPlacementButtons.prefab | 746 ++++++++++++++++-- Assets/Scenes/Game.unity | 580 +++++--------- 23 files changed, 2240 insertions(+), 481 deletions(-) create mode 100644 Assets/Animations/Buildings.meta create mode 100644 Assets/Animations/Buildings/animator_mill.controller create mode 100644 Assets/Animations/Buildings/animator_mill.controller.meta create mode 100644 Assets/Animations/Buildings/mill_idle.anim create mode 100644 Assets/Animations/Buildings/mill_idle.anim.meta create mode 100644 Assets/Art/Sprites/UI/cards/card_lock.png create mode 100644 Assets/Art/Sprites/UI/cards/card_lock.png.meta create mode 100644 Assets/Art/Sprites/UI/cards/icons/icon_card_peasant.png create mode 100644 Assets/Art/Sprites/UI/cards/icons/icon_card_peasant.png.meta create mode 100644 Assets/Art/Sprites/entities/buildings/mill_body.png create mode 100644 Assets/Art/Sprites/entities/buildings/mill_body.png.meta create mode 100644 Assets/Art/Sprites/entities/buildings/mill_full.png create mode 100644 Assets/Art/Sprites/entities/buildings/mill_full.png.meta create mode 100644 Assets/Art/Sprites/entities/buildings/mill_sails.png create mode 100644 Assets/Art/Sprites/entities/buildings/mill_sails.png.meta create mode 100644 Assets/Prefabs/Mill.prefab create mode 100644 Assets/Prefabs/Mill.prefab.meta diff --git a/Assets/Animations/Buildings.meta b/Assets/Animations/Buildings.meta new file mode 100644 index 0000000..9c93725 --- /dev/null +++ b/Assets/Animations/Buildings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd2794037ca8892489170f1ec757f8cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/Buildings/animator_mill.controller b/Assets/Animations/Buildings/animator_mill.controller new file mode 100644 index 0000000..0b3fe29 --- /dev/null +++ b/Assets/Animations/Buildings/animator_mill.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: animator_mill + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 6702983961093151484} + 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!1102 &191373922386477090 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mill_idle + 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: 84b7ef7202057da4ea755195ab9a777b, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &6702983961093151484 +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: 191373922386477090} + m_Position: {x: 230, y: 100, 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: 191373922386477090} diff --git a/Assets/Animations/Buildings/animator_mill.controller.meta b/Assets/Animations/Buildings/animator_mill.controller.meta new file mode 100644 index 0000000..bc0ee41 --- /dev/null +++ b/Assets/Animations/Buildings/animator_mill.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d42b38c305a679498e86d4396f18a9b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/Buildings/mill_idle.anim b/Assets/Animations/Buildings/mill_idle.anim new file mode 100644 index 0000000..d3d6253 --- /dev/null +++ b/Assets/Animations/Buildings/mill_idle.anim @@ -0,0 +1,199 @@ +%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: mill_idle + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: 0, y: 0, z: -51.42857} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 7 + value: {x: 0, y: 0, z: -360} + inSlope: {x: -0, y: -0, z: -51.42857} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: p_mill_sails + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + 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: 740295162 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 7 + 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 7 + value: 0 + inSlope: -0 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: p_mill_sails + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 7 + value: 0 + inSlope: -0 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: p_mill_sails + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: -51.42857 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 7 + value: -360 + inSlope: -51.42857 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: p_mill_sails + classID: 4 + script: {fileID: 0} + m_EulerEditorCurves: + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: p_mill_sails + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: p_mill_sails + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: p_mill_sails + classID: 4 + script: {fileID: 0} + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/Buildings/mill_idle.anim.meta b/Assets/Animations/Buildings/mill_idle.anim.meta new file mode 100644 index 0000000..de62eef --- /dev/null +++ b/Assets/Animations/Buildings/mill_idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84b7ef7202057da4ea755195ab9a777b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/cards/card_background.png.meta b/Assets/Art/Sprites/UI/cards/card_background.png.meta index de7dccd..af3789c 100644 --- a/Assets/Art/Sprites/UI/cards/card_background.png.meta +++ b/Assets/Art/Sprites/UI/cards/card_background.png.meta @@ -101,6 +101,18 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + 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: [] diff --git a/Assets/Art/Sprites/UI/cards/card_exemple_normal.png.meta b/Assets/Art/Sprites/UI/cards/card_exemple_normal.png.meta index 2bcee00..16ba2a4 100644 --- a/Assets/Art/Sprites/UI/cards/card_exemple_normal.png.meta +++ b/Assets/Art/Sprites/UI/cards/card_exemple_normal.png.meta @@ -101,6 +101,18 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + 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: [] diff --git a/Assets/Art/Sprites/UI/cards/card_lock.png b/Assets/Art/Sprites/UI/cards/card_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..0076ff897d6e8938c9a6e697fb9e54bf6c5066de GIT binary patch literal 1607 zcmeAS@N?(olHy`uVBq!ia0vp^GC-`s!3-pCS!BrqDaPU;cPGZ1Cw1z99L@rd$YKTt zZeb8+WSBKaf`NglDZnSh6)5?C6wp2de*gac`0?YzhYz1Ud-nbN_y7L=gV=fR-o1o` z1Pu)hYisL?6DNNA_HFCdtuit)OiWCioSXpx0WV&>fT+yM$^u4~rKRQl`}g7Q{qf_6 zqoX4$E32oc=gXHb;o@)KzSY#!&+Gy4guGV z|Ng(|W^BCv=i6~L%e&uy{-~2=Prh)pK1k2%_TSfiJc>KEx$)&cKdW2xd#zOMm(Q6J z*KVw?c)~g3CfB|tO7Ysa96Ud)>M=E%w(^*M#ytzRDbpvnule}?shC1)#8yq_ciG$_ zu@KjKokn)`@){6NM5YZa*vh{MMDwlyk^MlNBnV>t_kRqg+`;5Ytt=od-r-YqIP%Ub zbpyZB3A5+S3w`dL@E4fhYCK&WLn`JZCpa*;sild9nU%5WG&E1{p4~oudVjowK&+QX zM2mX}56=7q2p3 zOLufiN=Y78_4P?@EJ}MO<}h6eeO1U#)S2(Esvk`m-sp;9IADE=TO|d@E<>;*R3K2 z73Zx-j!Zecpsa;?ZgSs~>}?!|hRq%x7A}o{1bbC71({8>rU{(KD8ND~uCO>Ik0m1LT$KW#4aq|?0uhuJDVH#nwEoZlN7v}M7D z4oCCDe5;p46nbhp&onKwG-TEbZ!5~P*uH4fs$I*(^457MILF$?Y+AT+<<6y|=gyu; z?dWg4ee>GAi#MS)N|~R{EvfX9mZ1<5Z!;Pc-)g+`E$b_wVKOGcBH{ z&dfS1U~`<|)NJeZ`|JNTam`T4fA7RL+x0?>!nO*}`u~?w3%+aIo@Vq!ul;HBEYZJz zwZjkYeY7WPZlZ6e@RaRkvGxCd@k%F7ik#gg!E)HlxiWfN-s}7OnDsKZZtiG2$S9}1 zyX^hV-TZma|1lpp^RU)H=9qoS4~`f=9fmm~eRAC5hgmw0E1v9s*fLdP*PMz59HU7p&Yxx#Ki8MpEm8dP(^Ql5 ft0$zKWMKHVWiwx-ZyO6Rr!jcC`njxgN@xNAHcarn literal 0 HcmV?d00001 diff --git a/Assets/Art/Sprites/UI/cards/card_lock.png.meta b/Assets/Art/Sprites/UI/cards/card_lock.png.meta new file mode 100644 index 0000000..5589c58 --- /dev/null +++ b/Assets/Art/Sprites/UI/cards/card_lock.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 7c982717e0a0c254cbd27093eda90440 +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 + ignoreMasterTextureLimit: 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: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + 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 + - serializedVersion: 3 + buildTarget: Server + 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: Android + 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: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/cards/icons/icon_card_axeman.png.meta b/Assets/Art/Sprites/UI/cards/icons/icon_card_axeman.png.meta index 91e2dfa..56abd3a 100644 --- a/Assets/Art/Sprites/UI/cards/icons/icon_card_axeman.png.meta +++ b/Assets/Art/Sprites/UI/cards/icons/icon_card_axeman.png.meta @@ -101,6 +101,18 @@ TextureImporter: overridden: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + 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: [] diff --git a/Assets/Art/Sprites/UI/cards/icons/icon_card_peasant.png b/Assets/Art/Sprites/UI/cards/icons/icon_card_peasant.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b566d01a16ac2336807d0f459e3f49998e9a45 GIT binary patch literal 11216 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 Date: Sun, 18 Feb 2024 11:11:03 -0500 Subject: [PATCH 5/5] unit cooldown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #Le besoin addressé par le commit les unités et bâtiments devrait avoir un temps de cooldown avant de pouvoir être spawné à nouveau #Comment le besoin est-il addressé? (modifications) les unités et bâtiments prennent maintenant 3 secondes avant de redevenir interactif après avoir été spawné --- .../GameObjectPlacementButton.prefab | 79 +++++++++++++++++++ .../TilePlacementButton.prefab | 79 +++++++++++++++++++ Assets/Scripts/Drag&Drop/UnitPlaceholder.cs | 3 + .../Scripts/Drag&Drop/UnitPlacementButton.cs | 39 ++++++++- 4 files changed, 199 insertions(+), 1 deletion(-) diff --git a/Assets/Prefabs/UI/BuyableUnitsView/GameObjectPlacementButton.prefab b/Assets/Prefabs/UI/BuyableUnitsView/GameObjectPlacementButton.prefab index fd6a1c7..429b13e 100644 --- a/Assets/Prefabs/UI/BuyableUnitsView/GameObjectPlacementButton.prefab +++ b/Assets/Prefabs/UI/BuyableUnitsView/GameObjectPlacementButton.prefab @@ -112,6 +112,7 @@ RectTransform: - {fileID: 578448310312278818} - {fileID: 907652128235033330} - {fileID: 7424225105167539335} + - {fileID: 5501162456977524028} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -203,9 +204,11 @@ MonoBehaviour: _wood: 0 _rock: 0 _food: 0 + _cooldownInSeconds: 3 _foodLabel: {fileID: 907652129260736055} _woodLabel: {fileID: 2551561112895533431} _rockLabel: {fileID: 3195941792010457804} + _cooldownIndicator: {fileID: 5207475109691974292} _prefab: {fileID: 0} --- !u!225 &6913755812382793111 CanvasGroup: @@ -941,6 +944,82 @@ CanvasGroup: m_Interactable: 0 m_BlocksRaycasts: 0 m_IgnoreParentGroups: 0 +--- !u!1 &5828230984884335261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5501162456977524028} + - component: {fileID: 8338249668523744596} + - component: {fileID: 5207475109691974292} + m_Layer: 5 + m_Name: CooldownIndicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &5501162456977524028 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5828230984884335261} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 907652127959947829} + m_RootOrder: 3 + 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: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8338249668523744596 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5828230984884335261} + m_CullTransparentMesh: 1 +--- !u!114 &5207475109691974292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5828230984884335261} + 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.3018868, g: 0, b: 0, a: 0.6901961} + 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: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 3 + 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!1 &7114462096084942491 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/UI/BuyableUnitsView/TilePlacementButton.prefab b/Assets/Prefabs/UI/BuyableUnitsView/TilePlacementButton.prefab index 60013ab..250b5b3 100644 --- a/Assets/Prefabs/UI/BuyableUnitsView/TilePlacementButton.prefab +++ b/Assets/Prefabs/UI/BuyableUnitsView/TilePlacementButton.prefab @@ -125,6 +125,7 @@ RectTransform: - {fileID: 7042708939576806788} - {fileID: 7287691806885839956} - {fileID: 1059349486317029921} + - {fileID: 1217819425183827895} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -216,9 +217,11 @@ MonoBehaviour: _wood: 30 _rock: 0 _food: 0 + _cooldownInSeconds: 3 _foodLabel: {fileID: 7287691807974070417} _woodLabel: {fileID: 5391726344234182609} _rockLabel: {fileID: 5035571921358210154} + _cooldownIndicator: {fileID: 1268446567353174613} tile: {fileID: 11400000, guid: 7568f730b2ba3754297a7612452482e2, type: 2} --- !u!225 &2889836282219012120 CanvasGroup: @@ -1178,6 +1181,82 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8638014914632680632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1217819425183827895} + - component: {fileID: 7644251973362524053} + - component: {fileID: 1268446567353174613} + m_Layer: 5 + m_Name: CooldownIndicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1217819425183827895 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8638014914632680632} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 907652127959947829} + m_RootOrder: 3 + 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: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7644251973362524053 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8638014914632680632} + m_CullTransparentMesh: 1 +--- !u!114 &1268446567353174613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8638014914632680632} + 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.3018868, g: 0, b: 0, a: 0.6901961} + 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: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 3 + 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!1 &8965017596094456768 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs index 2b786c4..b553a1f 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs @@ -8,10 +8,13 @@ public abstract class UnitPlaceholder : DraggablePlaceholder public override void Place() { ResourceManager.Instance.Remove(Rock, Wood, Food); + WasPlaced?.Invoke(this); } + public override bool CanBePlacedHere() { return base.CanBePlacedHere() && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) && !LevelManager.Instance.Has(obj => obj.Position.IsContainedIn(transform.position)); } + public event System.Action WasPlaced; } \ No newline at end of file diff --git a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs index d497f5e..6339fb1 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs @@ -1,3 +1,5 @@ +using GatherAndDefend.Events; +using System.Collections; using TMPro; using UnityEngine; using UnityEngine.EventSystems; @@ -14,6 +16,8 @@ public abstract class UnitPlacementButton : PlacementButton protected int _rock; [SerializeField] protected int _food; + [SerializeField] + protected int _cooldownInSeconds = 3; [SerializeField] private TMP_Text _foodLabel; @@ -22,7 +26,10 @@ public abstract class UnitPlacementButton : PlacementButton [SerializeField] private TMP_Text _rockLabel; - + [SerializeField] + protected Image _cooldownIndicator; + protected bool _lockedByCooldown; + protected override void Update() { base.Update(); @@ -44,6 +51,36 @@ public abstract class UnitPlacementButton : PlacementButton placeHolder.Rock = _rock; placeHolder.Wood = _wood; placeHolder.Food = _food; + placeHolder.WasPlaced += HandleCooldown; + } + + } + + private void HandleCooldown(UnitPlaceholder unitPlaceholder) + { + unitPlaceholder.WasPlaced -= HandleCooldown; + StartCoroutine(HandleCooldownCoroutine()); + + + IEnumerator HandleCooldownCoroutine() + { + var countDown = 0f; + _lockedByCooldown = true; + _cooldownIndicator.gameObject.SetActive(true); + while (countDown < _cooldownInSeconds) + { + countDown += Time.deltaTime; + var percentDone = countDown / _cooldownInSeconds; + _cooldownIndicator.fillAmount = 1 - percentDone; + yield return null; + } + _cooldownIndicator.gameObject.SetActive(false); + _lockedByCooldown = false; } } + + protected override bool CanPlace() + { + return base.CanPlace() && !_lockedByCooldown; + } }