diff --git a/Assets/Prefab/Flag.prefab b/Assets/Prefab/Flag.prefab new file mode 100644 index 0000000000000000000000000000000000000000..ce84a5a726df5d5e6f75a32f0efc449b91fd28a6 --- /dev/null +++ b/Assets/Prefab/Flag.prefab @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8796312832300166883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3911026953838394632} + - component: {fileID: 7981019715402497320} + - component: {fileID: 3689336998828211151} + - component: {fileID: 4443572787190976141} + m_Layer: 0 + m_Name: Flag + m_TagString: Flag + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3911026953838394632 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796312832300166883} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4.078, y: 2.369, z: -1.0712891} + m_LocalScale: {x: 0.3136983, y: 0.3136983, z: 0.3136983} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &7981019715402497320 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796312832300166883} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + 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_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + 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: dd3f1a90ef7844947ae3599531fcd6d2, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.2, y: 0.2} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &3689336998828211151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796312832300166883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1c028ba564ee8304e9c41111c8912ebe, type: 3} + m_Name: + m_EditorClassIdentifier: + Worker: {fileID: 0} +--- !u!61 &4443572787190976141 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8796312832300166883} + 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} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0.5, y: 0.5} + oldSize: {x: 1.78, y: 1.44} + newSize: {x: 0.2, y: 0.2} + adaptiveTilingThreshold: 0.5 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1.78, y: 1.44} + m_EdgeRadius: 0 diff --git a/Assets/Prefab/Flag.prefab.meta b/Assets/Prefab/Flag.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..b52c8108c0461fb3038ea4687dc08a5834f4764f --- /dev/null +++ b/Assets/Prefab/Flag.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5cba37404bc15114b929eea3f4ec84f3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefab/worker.prefab b/Assets/Prefab/worker.prefab index d6506cee223d065f8f7b5dd080b1e6bd4dd3a107..c7c68fbb4ed920d43488ee2da1dfecd2da8c8d05 100644 --- a/Assets/Prefab/worker.prefab +++ b/Assets/Prefab/worker.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 548039319383633028} - component: {fileID: 548039319383633031} m_Layer: 0 - m_Name: Worker + m_Name: worker m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -101,6 +101,7 @@ MonoBehaviour: home: {fileID: 7607310651946833762, guid: 118ed7528555d45418acb5a87b330000, type: 3} resource: {fileID: 0} speed: 1 + flag: {fileID: 8796312832300166883, guid: 5cba37404bc15114b929eea3f4ec84f3, type: 3} --- !u!61 &548039319383633028 BoxCollider2D: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Collector.cs b/Assets/Scripts/Collector.cs index d772789090ed0174bacc40f72d1e189363aabf1e..56f8cae6af3e7a7dc68eafd684907271a70bca04 100644 --- a/Assets/Scripts/Collector.cs +++ b/Assets/Scripts/Collector.cs @@ -18,11 +18,15 @@ public class Collector : MonoBehaviour [SerializeField] private GameObject home; - + [SerializeField] private Resource resource; public float speed = 1; + [SerializeField] + private GameObject target_flag; + + public GameObject flag; // Start is called before the first frame update void Start() { @@ -37,7 +41,7 @@ public class Collector : MonoBehaviour { this.move_to = target; } - + // Update is called once per frame void Update() { @@ -49,8 +53,12 @@ public class Collector : MonoBehaviour RaycastHit2D hit = Physics2D.Raycast(mousePos2D, Vector2.zero); if (hit.collider != null) { + DestroyImmediate(target_flag); + target_flag = Instantiate(flag, hit.point, Quaternion.identity); + target_flag.GetComponent<Flag>().SetWorker(this.gameObject); SetTarget(hit.collider.gameObject); - MoveTo(hit.collider.gameObject); + if(resource == null || hit.collider.gameObject.tag == "Home") + MoveTo(hit.collider.gameObject); } } if (move_to != null) @@ -59,15 +67,28 @@ public class Collector : MonoBehaviour private void OnTriggerEnter2D(Collider2D collision) { - if (collision.gameObject.tag == "Resource") + if (target_flag != null) { - //Amount of resources worker is carrying right now - this.amount = collision.gameObject.GetComponent<Resource>().extractResource(this.max_amount); - //Gives target resource to resource variable - this.resource = this.target.GetComponent<Resource>(); - StartCoroutine("goHome"); + if(collision.gameObject.transform.position == target_flag.transform.position) { + if(resource == null) + { + /*if(target.GetComponent<Resource>().vie_tavaraa()) + { + + } + else + {*/ + //Amount of resources worker is carrying right now + this.amount = target.GetComponent<Resource>().extractResource(this.max_amount); + //Gives target resource to resource variable + this.resource = this.target.GetComponent<Resource>(); + //} + + } + StartCoroutine("goHome"); + } } - else if (collision.gameObject.tag == "Home" && this.resource != null) + if (collision.gameObject.tag == "Home" && this.resource != null) { //resets amount and resource variables collision.gameObject.GetComponent<City>().AddResource(this.resource, this.amount); @@ -80,6 +101,8 @@ public class Collector : MonoBehaviour IEnumerator goHome() { yield return new WaitForSeconds(4); + if(target == null) + DestroyImmediate(target_flag); MoveTo(home); } diff --git a/Assets/Scripts/Flag.cs b/Assets/Scripts/Flag.cs new file mode 100644 index 0000000000000000000000000000000000000000..fd1157d400e79126c643310a113f5217476426a6 --- /dev/null +++ b/Assets/Scripts/Flag.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Flag : MonoBehaviour +{ + [SerializeField] + private GameObject Worker; + + public void SetWorker(GameObject w) + { + this.Worker = w; + } + public GameObject GetWorker() + { + return this.Worker; + } +} diff --git a/Assets/Scripts/Flag.cs.meta b/Assets/Scripts/Flag.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..81aa7e9625e914f41337c7c67f0eb5ebfce1b2c1 --- /dev/null +++ b/Assets/Scripts/Flag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c028ba564ee8304e9c41111c8912ebe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Sprites/flag.png b/Assets/Sprites/flag.png new file mode 100644 index 0000000000000000000000000000000000000000..09ada3428cabb1a3b13a42f8c8d5f2d46c493488 Binary files /dev/null and b/Assets/Sprites/flag.png differ diff --git a/Assets/Sprites/flag.png.meta b/Assets/Sprites/flag.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..6e783e839844da15123f8acaed294f4e8c7db059 --- /dev/null +++ b/Assets/Sprites/flag.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: dd3f1a90ef7844947ae3599531fcd6d2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + 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 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + 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 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 4f0b75042eebcc842953244e7cf3cc95 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: