diff --git a/Assets/Scenes/MainScene.meta b/Assets/Scenes/MainScene.meta new file mode 100644 index 0000000000000000000000000000000000000000..fad139c12cfcbabc8dcc5959d24c3f7fab5f775b --- /dev/null +++ b/Assets/Scenes/MainScene.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 829c46be4b50d504a8fd053e72cf24e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity index 11566e3a3791ba65d7b0dadc85809c658b7b76e9..ff8f3a96dcecd92004ea422bf33be39f2e43a253 100644 --- a/Assets/Scenes/MainScene.unity +++ b/Assets/Scenes/MainScene.unity @@ -1344,8 +1344,10 @@ MonoBehaviour: m_EditorClassIdentifier: target: {fileID: 0} move_to: {fileID: 0} + max_amount: 10 amount: 0 home: {fileID: 471348698} + resource: {fileID: 0} speed: 1 --- !u!61 &932290493 BoxCollider2D: @@ -1473,126 +1475,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1379725508 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1379725511} - - component: {fileID: 1379725510} - - component: {fileID: 1379725509} - - component: {fileID: 1379725512} - m_Layer: 0 - m_Name: Tree (2) - m_TagString: Resource - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1379725509 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379725508} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bad3649e66714d14d94d87cd3e47c1a1, type: 3} - m_Name: - m_EditorClassIdentifier: - Amount: 20 ---- !u!212 &1379725510 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379725508} - 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: 473e801b3bc9651409881d3f975c23ef, 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.28, y: 1.28} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 ---- !u!4 &1379725511 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379725508} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.87, y: -1.7186036, z: -0.1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 20 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!61 &1379725512 -BoxCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379725508} - 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.28, y: 1.28} - newSize: {x: 1.28, y: 1.28} - adaptiveTilingThreshold: 0.5 - drawMode: 0 - adaptiveTiling: 0 - m_AutoTiling: 0 - serializedVersion: 2 - m_Size: {x: 1.28, y: 1.28} - m_EdgeRadius: 0 --- !u!1 &1667231311 GameObject: m_ObjectHideFlags: 0 @@ -1682,8 +1564,8 @@ GameObject: m_Component: - component: {fileID: 1699889077} - component: {fileID: 1699889076} - - component: {fileID: 1699889075} - component: {fileID: 1699889078} + - component: {fileID: 1699889075} m_Layer: 0 m_Name: Tree (1) m_TagString: Resource @@ -1700,10 +1582,9 @@ MonoBehaviour: m_GameObject: {fileID: 1699889074} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bad3649e66714d14d94d87cd3e47c1a1, type: 3} + m_Script: {fileID: 11500000, guid: cb94cfa918a502245a4097b1749281ad, type: 3} m_Name: m_EditorClassIdentifier: - Amount: 0 --- !u!212 &1699889076 SpriteRenderer: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/City.cs b/Assets/Scripts/City.cs index 8cb47e3da408a2bce610a8336315573397eba7e1..9ceb0a4efc073e8532b2c3b75ec2a3f1257a4c3e 100644 --- a/Assets/Scripts/City.cs +++ b/Assets/Scripts/City.cs @@ -17,7 +17,7 @@ public class City : MonoBehaviour * Kayttaa resurssia r, maaran 'amount' verran (amount >= 0). * Voidaan kayttaa maximissaan sen verran resursseja mita niita on kaytossa. */ - public void useResource(Resource r, int amount) + public void UseResource(Resource r, int amount) { if (amount<0) { @@ -26,12 +26,13 @@ public class City : MonoBehaviour ResourcePool[] lista = gameObject.GetComponents<ResourcePool>(); for (int i = 0; i < lista.Length; i++) { - if (lista[i].getResource().GetType().Equals(r.GetType())) + if (lista[i].GetResource().GetType().Equals(r.GetType())) { - lista[i].useResource(amount); + lista[i].UseResource(amount); } } } + /** * Lisaa resurssia r, maaran 'amount' verran (amount >= 0). @@ -39,7 +40,7 @@ public class City : MonoBehaviour * ts. jos nykyinen resurssimaara + lisatty maara >= maximikapasiteetti * niin uusi resurssimaara = maximikapasiteetti */ - public void addResource(Resource r, int amount) + public void AddResource(Resource r, int amount) { if (amount<0) { @@ -49,14 +50,26 @@ public class City : MonoBehaviour for (int i = 0; i < lista.Length; i++) { - if (lista[i].getResource().GetType().Equals(r.GetType())) + if (lista[i].GetResource().GetType().Equals(r.GetType())) { - lista[i].addResource(amount); + lista[i].AddResource(amount); return; } } ResourcePool respool = gameObject.AddComponent<ResourcePool>(); - respool.setResource(r); - respool.addResource(amount); + respool.SetResource(r); + respool.AddResource(amount); + } + + /** + * Lisaa kaikkien resurssipoolien maxKapasiteettia x:n verran + */ + public void IncreaseCapacity(int x) + { + ResourcePool[] lista = gameObject.GetComponents<ResourcePool>(); + for (int i = 0; i < lista.Length; i++) + { + lista[i].SetCapacity(x); + } } } diff --git a/Assets/Scripts/Collector.cs b/Assets/Scripts/Collector.cs index bc7d9aac2999054cc6a84bab00ba89289a72eacb..116ab820eb7566946492e5e388db4949f3051dcd 100644 --- a/Assets/Scripts/Collector.cs +++ b/Assets/Scripts/Collector.cs @@ -7,15 +7,17 @@ public class Collector : MonoBehaviour // Start is called before the first frame update void Start() { - + } - + [SerializeField] private GameObject target; [SerializeField] private GameObject move_to; + [SerializeField] + private int max_amount = 10; [SerializeField] private int amount; @@ -23,6 +25,8 @@ public class Collector : MonoBehaviour [SerializeField] private GameObject home; + [SerializeField] + private Resource resource; public float speed = 1; @@ -57,15 +61,27 @@ public class Collector : MonoBehaviour } private void OnTriggerEnter2D(Collider2D collision) { - Debug.Log(collision.gameObject.name); + if (collision.gameObject.tag == "Resource") + { + //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"); + } else if (collision.gameObject.name == "City") + { + //resets amount and resource variables + this.amount = 0; + this.resource = null; MoveTo(this.target); + } } IEnumerator goHome() { yield return new WaitForSeconds(4); MoveTo(home); } + } diff --git a/Assets/Scripts/ResourcePool.cs b/Assets/Scripts/ResourcePool.cs index da4ec052a8c32be22dfb77681c135f6b8517bb96..c4d6843f04a4841d78f252e0cb0f6c297f7e6037 100644 --- a/Assets/Scripts/ResourcePool.cs +++ b/Assets/Scripts/ResourcePool.cs @@ -18,19 +18,19 @@ public class ResourcePool : MonoBehaviour void Start() { } - public void setResource(Resource r) + public void SetResource(Resource r) { this.r = r; } - public Resource getResource() + public Resource GetResource() { return r; } /** * Kayttaa resurssia maaran X verran */ - public void useResource(int x) + public void UseResource(int x) { if (this.amount - x <= 0) { @@ -44,7 +44,7 @@ public class ResourcePool : MonoBehaviour /** * Lisaa resurssia maaran X verran */ - public void addResource(int x) + public void AddResource(int x) { if (this.amount + x >= this.maxCapacity) { @@ -55,4 +55,8 @@ public class ResourcePool : MonoBehaviour this.amount += x; } } + public void SetCapacity(int x) + { + this.maxCapacity += x; + } }