From 6881d889a0779759e2694a67c9290c7c33cc3a5e Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Mon, 16 May 2022 14:44:12 +0200 Subject: [PATCH 1/6] feat: add tick system soldier, add set tag --- The project/Assets/Scripts/Soldier.cs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/The project/Assets/Scripts/Soldier.cs b/The project/Assets/Scripts/Soldier.cs index 301af388..e7294ca9 100644 --- a/The project/Assets/Scripts/Soldier.cs +++ b/The project/Assets/Scripts/Soldier.cs @@ -13,14 +13,29 @@ public class Soldier : MonoBehaviour [SerializeField] private float speedAttack = 1; // Start is called before the first frame update void Start(){ + setEnemyTag(); + } + + public void setOwnTag(string tag) + { + gameObject.tag = tag; + } + + public void setEnemyTag() + { if(gameObject.tag == "Ally") enemyTag = "Enemy"; else enemyTag = "Ally"; - InvokeRepeating("UpdateTarget", 0f, 0.5f); - // Call UpdateTarget method at the begining of the Start() - // and repeat every 0.5 second - } + void Awake() + { + TickSystem.OnTick += HandleTick; + } + private void HandleTick(TickSystem.OnTickEventArgs tickEventArgs) + { + UpdateTarget(); + } + void UpdateTarget () { // Enemies are the game objects tagged with the "Enemy" From 6019a8eccd02eb3f7fbbf258a07b2f76e8379127 Mon Sep 17 00:00:00 2001 From: Maciekxdabu <40292375+Maciekxdabu@users.noreply.github.com> Date: Mon, 16 May 2022 14:44:45 +0200 Subject: [PATCH 2/6] merloj: applied new soldiers to tilemap --- .../Assets/Prefabs/Dummy Soldier.prefab | 113 ------------------ The project/Assets/Prefabs/Soldier.prefab | 9 +- The project/Assets/Scripts/DummySoldier.cs | 8 -- .../Assets/Scripts/DummySoldier.cs.meta | 11 -- .../Managers.meta} | 5 +- .../Scripts/{ => Managers}/TilemapManager.cs | 12 +- .../{ => Managers}/TilemapManager.cs.meta | 0 7 files changed, 17 insertions(+), 141 deletions(-) delete mode 100644 The project/Assets/Prefabs/Dummy Soldier.prefab delete mode 100644 The project/Assets/Scripts/DummySoldier.cs delete mode 100644 The project/Assets/Scripts/DummySoldier.cs.meta rename The project/Assets/{Prefabs/Dummy Soldier.prefab.meta => Scripts/Managers.meta} (57%) rename The project/Assets/Scripts/{ => Managers}/TilemapManager.cs (94%) rename The project/Assets/Scripts/{ => Managers}/TilemapManager.cs.meta (100%) diff --git a/The project/Assets/Prefabs/Dummy Soldier.prefab b/The project/Assets/Prefabs/Dummy Soldier.prefab deleted file mode 100644 index aaf25db9..00000000 --- a/The project/Assets/Prefabs/Dummy Soldier.prefab +++ /dev/null @@ -1,113 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &7329575924073430320 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7329575924073430335} - - component: {fileID: 7329575924073430332} - - component: {fileID: 7329575924073430333} - - component: {fileID: 7329575924073430322} - - component: {fileID: 7329575924073430323} - m_Layer: 0 - m_Name: Dummy Soldier - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7329575924073430335 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7329575924073430320} - 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: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7329575924073430332 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7329575924073430320} - m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &7329575924073430333 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7329575924073430320} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!136 &7329575924073430322 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7329575924073430320} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &7329575924073430323 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7329575924073430320} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8cb9ceee24755fa4880d17603fefc63a, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/The project/Assets/Prefabs/Soldier.prefab b/The project/Assets/Prefabs/Soldier.prefab index 527a5937..72b0979b 100644 --- a/The project/Assets/Prefabs/Soldier.prefab +++ b/The project/Assets/Prefabs/Soldier.prefab @@ -59,7 +59,7 @@ Rigidbody: m_Mass: 1 m_Drag: 0 m_AngularDrag: 0.05 - m_UseGravity: 1 + m_UseGravity: 0 m_IsKinematic: 0 m_Interpolate: 0 m_Constraints: 0 @@ -76,6 +76,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d34caf35d0ce610f8bc87cf815ba1915, type: 3} m_Name: m_EditorClassIdentifier: + target: {fileID: 0} + enemyTag: + healthPoints: 1 + rangeAttack: 1 + rangeView: 1 + damageAttack: 1 + speedAttack: 1 --- !u!1 &2353457452513625490 GameObject: m_ObjectHideFlags: 0 diff --git a/The project/Assets/Scripts/DummySoldier.cs b/The project/Assets/Scripts/DummySoldier.cs deleted file mode 100644 index 06a166cc..00000000 --- a/The project/Assets/Scripts/DummySoldier.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class DummySoldier : MonoBehaviour -{ - -} diff --git a/The project/Assets/Scripts/DummySoldier.cs.meta b/The project/Assets/Scripts/DummySoldier.cs.meta deleted file mode 100644 index d01f6628..00000000 --- a/The project/Assets/Scripts/DummySoldier.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8cb9ceee24755fa4880d17603fefc63a -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/The project/Assets/Prefabs/Dummy Soldier.prefab.meta b/The project/Assets/Scripts/Managers.meta similarity index 57% rename from The project/Assets/Prefabs/Dummy Soldier.prefab.meta rename to The project/Assets/Scripts/Managers.meta index 47aff1f4..10d45472 100644 --- a/The project/Assets/Prefabs/Dummy Soldier.prefab.meta +++ b/The project/Assets/Scripts/Managers.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 0cea408c577cfdf4fa0c7295d22ba421 -PrefabImporter: +guid: 5d5ec7ec529070f4aa733bf14cc8e222 +folderAsset: yes +DefaultImporter: externalObjects: {} userData: assetBundleName: diff --git a/The project/Assets/Scripts/TilemapManager.cs b/The project/Assets/Scripts/Managers/TilemapManager.cs similarity index 94% rename from The project/Assets/Scripts/TilemapManager.cs rename to The project/Assets/Scripts/Managers/TilemapManager.cs index fe6c55c0..4f443ca1 100644 --- a/The project/Assets/Scripts/TilemapManager.cs +++ b/The project/Assets/Scripts/Managers/TilemapManager.cs @@ -14,7 +14,7 @@ public class TilemapManager : MonoBehaviour public struct Tile { - public DummySoldier standingSoldier; + public Soldier standingSoldier; } [Header("Common Values")] @@ -49,8 +49,8 @@ public class TilemapManager : MonoBehaviour private void Start() { - SpawnSoldier(soldierStartingPosition.x, soldierStartingPosition.y); - SpawnSoldier(enemyStartingPosition.x, enemyStartingPosition.y); + SpawnSoldier(soldierStartingPosition.x, soldierStartingPosition.y, true); + SpawnSoldier(enemyStartingPosition.x, enemyStartingPosition.y, false); } private void OnValidate() @@ -76,12 +76,12 @@ public class TilemapManager : MonoBehaviour // ---------- public functions - public bool SpawnSoldier(int x, int y) + public bool SpawnSoldier(int x, int y, bool isAlly) { if (GetTileState(x, y) != TileState.free) return false; - tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)), Quaternion.identity).GetComponent(); + tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)), Quaternion.identity).GetComponent(); if (tiles[x, y].standingSoldier != null) return true; @@ -101,7 +101,7 @@ public class TilemapManager : MonoBehaviour return true; } - public DummySoldier GetSoldier(int x, int y) + public Soldier GetSoldier(int x, int y) { if (GetTileState(x, y) != TileState.taken) return null; diff --git a/The project/Assets/Scripts/TilemapManager.cs.meta b/The project/Assets/Scripts/Managers/TilemapManager.cs.meta similarity index 100% rename from The project/Assets/Scripts/TilemapManager.cs.meta rename to The project/Assets/Scripts/Managers/TilemapManager.cs.meta From eb98f2b09f9ac2f6d6450990352ede33f697bde3 Mon Sep 17 00:00:00 2001 From: Maciekxdabu <40292375+Maciekxdabu@users.noreply.github.com> Date: Mon, 16 May 2022 14:56:01 +0200 Subject: [PATCH 3/6] merloj: new Soldier spawns --- The project/Assets/Scenes/Merloj.unity | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/The project/Assets/Scenes/Merloj.unity b/The project/Assets/Scenes/Merloj.unity index aefc50e1..04e79dd6 100644 --- a/The project/Assets/Scenes/Merloj.unity +++ b/The project/Assets/Scenes/Merloj.unity @@ -156,7 +156,7 @@ MonoBehaviour: soldierStartingPosition: {x: 0, y: 0} enemyStartingPosition: {x: 1, y: 0} tilemap: {fileID: 1853262998} - soldierPrefab: {fileID: 7329575924073430320, guid: 0cea408c577cfdf4fa0c7295d22ba421, + soldierPrefab: {fileID: 403095692180922766, guid: a87b1aa46b0ed3e0fba621e11dd4f1e2, type: 3} --- !u!4 &282616949 Transform: From c5bde051c51effd166e00974e57a47e589dbb5ec Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Mon, 16 May 2022 15:01:00 +0200 Subject: [PATCH 4/6] chore --- The project/Assets/Scripts/Soldier.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/The project/Assets/Scripts/Soldier.cs b/The project/Assets/Scripts/Soldier.cs index e7294ca9..e6d86f85 100644 --- a/The project/Assets/Scripts/Soldier.cs +++ b/The project/Assets/Scripts/Soldier.cs @@ -4,8 +4,14 @@ using UnityEngine; public class Soldier : MonoBehaviour { + private enum SoldierType + { + Ally, + Enemy + } [SerializeField] private Transform target; - [SerializeField] private string enemyTag; + [SerializeField] private SoldierType enemyType; + [SerializeField] private SoldierType ourType; [SerializeField] private float healthPoints = 1; [SerializeField] private float rangeAttack = 1; [SerializeField] private float rangeView = 1; @@ -18,13 +24,13 @@ public class Soldier : MonoBehaviour public void setOwnTag(string tag) { - gameObject.tag = tag; + ourType = tag; } public void setEnemyTag() { - if(gameObject.tag == "Ally") enemyTag = "Enemy"; - else enemyTag = "Ally"; + if(ourType == "Ally") enemyType = "Enemy"; + else enemyType = "Ally"; } void Awake() From 93ff6c93d4812413532ffc44971f37d284739dfd Mon Sep 17 00:00:00 2001 From: Maciekxdabu <40292375+Maciekxdabu@users.noreply.github.com> Date: Mon, 16 May 2022 15:09:43 +0200 Subject: [PATCH 5/6] merloj: getallsoldiers() --- .../Assets/Scripts/Managers/TilemapManager.cs | 18 ++++++++++++++++++ The project/Assets/Scripts/Soldier.cs | 12 ++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/The project/Assets/Scripts/Managers/TilemapManager.cs b/The project/Assets/Scripts/Managers/TilemapManager.cs index 4f443ca1..def45bc2 100644 --- a/The project/Assets/Scripts/Managers/TilemapManager.cs +++ b/The project/Assets/Scripts/Managers/TilemapManager.cs @@ -83,6 +83,11 @@ public class TilemapManager : MonoBehaviour tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)), Quaternion.identity).GetComponent(); + if (isAlly) + tiles[x, y].standingSoldier.setOwnTag(Soldier.SoldierType.Ally); + else + tiles[x, y].standingSoldier.setOwnTag(Soldier.SoldierType.Enemy); + if (tiles[x, y].standingSoldier != null) return true; @@ -109,6 +114,19 @@ public class TilemapManager : MonoBehaviour return tiles[x,y].standingSoldier; } + public Soldier[] GetAllSoldiers() + { + List list = new List(); + + foreach (Tile obj in tiles) + { + if (obj.standingSoldier != null) + list.Add(obj.standingSoldier); + } + + return list.ToArray(); + } + public bool MoveSoldier(int x1, int y1, int x2, int y2) { if (GetTileState(x1, y1) == TileState.taken && GetTileState(x2, y2) == TileState.free) diff --git a/The project/Assets/Scripts/Soldier.cs b/The project/Assets/Scripts/Soldier.cs index e6d86f85..8ca787d2 100644 --- a/The project/Assets/Scripts/Soldier.cs +++ b/The project/Assets/Scripts/Soldier.cs @@ -4,7 +4,7 @@ using UnityEngine; public class Soldier : MonoBehaviour { - private enum SoldierType + public enum SoldierType { Ally, Enemy @@ -22,15 +22,15 @@ public class Soldier : MonoBehaviour setEnemyTag(); } - public void setOwnTag(string tag) + public void setOwnTag(SoldierType type) { - ourType = tag; + ourType = type; } public void setEnemyTag() { - if(ourType == "Ally") enemyType = "Enemy"; - else enemyType = "Ally"; + if(ourType == SoldierType.Ally) enemyType = SoldierType.Enemy; + else enemyType = SoldierType.Ally; } void Awake() @@ -45,7 +45,7 @@ public class Soldier : MonoBehaviour void UpdateTarget () { // Enemies are the game objects tagged with the "Enemy" - GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyTag); + GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyType); Debug.Log(enemies.Length); // We have not found enemy yet so the distance to enemy is "infinite" float shortestDistance = Mathf.Infinity; From 01db1678d852c7ac5b7d1ca34e769ee38055ce59 Mon Sep 17 00:00:00 2001 From: Maciekxdabu <40292375+Maciekxdabu@users.noreply.github.com> Date: Mon, 16 May 2022 15:23:39 +0200 Subject: [PATCH 6/6] merloj/kuch: soldiers attack --- The project/Assets/Scripts/Soldier.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/The project/Assets/Scripts/Soldier.cs b/The project/Assets/Scripts/Soldier.cs index 8ca787d2..43660171 100644 --- a/The project/Assets/Scripts/Soldier.cs +++ b/The project/Assets/Scripts/Soldier.cs @@ -13,7 +13,7 @@ public class Soldier : MonoBehaviour [SerializeField] private SoldierType enemyType; [SerializeField] private SoldierType ourType; [SerializeField] private float healthPoints = 1; - [SerializeField] private float rangeAttack = 1; + [SerializeField] private float rangeAttack = 100; [SerializeField] private float rangeView = 1; [SerializeField] private float damageAttack = 1; [SerializeField] private float speedAttack = 1; @@ -45,7 +45,19 @@ public class Soldier : MonoBehaviour void UpdateTarget () { // Enemies are the game objects tagged with the "Enemy" - GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyType); + //GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyType); + Soldier[] soldiers = GameObject.FindObjectsOfType(); + + List enemiesList = new List(); + + foreach (Soldier obj in soldiers) + { + if (obj.ourType == enemyType) + enemiesList.Add(obj.gameObject); + } + + GameObject[] enemies = enemiesList.ToArray(); + Debug.Log(enemies.Length); // We have not found enemy yet so the distance to enemy is "infinite" float shortestDistance = Mathf.Infinity;