Merge branch 'Development' into SpartaqS-OrderIssuing

This commit is contained in:
Gabriel Ksawery Skowron-Rodriguez 2022-05-17 15:12:47 +02:00
commit 3dc631a5f4
9 changed files with 77 additions and 150 deletions

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -1,8 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DummySoldier : MonoBehaviour
{
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 8cb9ceee24755fa4880d17603fefc63a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,6 +1,7 @@
fileFormatVersion: 2
guid: 0cea408c577cfdf4fa0c7295d22ba421
PrefabImporter:
guid: 5d5ec7ec529070f4aa733bf14cc8e222
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@ -14,7 +14,7 @@ public class TilemapManager : MonoBehaviour
public struct Tile
{
public DummySoldier standingSoldier;
public Soldier standingSoldier;
}
[Header("Common Values")]
@ -50,8 +50,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()
@ -77,13 +77,18 @@ 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)) + WORLD_SPACE_OFFSET, Quaternion.identity).GetComponent<DummySoldier>();
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;
@ -102,7 +107,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;
@ -110,6 +115,19 @@ public class TilemapManager : MonoBehaviour
return tiles[x,y].standingSoldier;
}
public Soldier[] GetAllSoldiers()
{
List<Soldier> list = new List<Soldier>();
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)

View File

@ -4,27 +4,60 @@ using UnityEngine;
public class Soldier : MonoBehaviour
{
public 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 rangeAttack = 100;
[SerializeField] private float rangeView = 1;
[SerializeField] private float damageAttack = 1;
[SerializeField] private float speedAttack = 1;
// Start is called before the first frame update
void Start(){
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
setEnemyTag();
}
public void setOwnTag(SoldierType type)
{
ourType = type;
}
public void setEnemyTag()
{
if(ourType == SoldierType.Ally) enemyType = SoldierType.Enemy;
else enemyType = SoldierType.Ally;
}
void Awake()
{
TickSystem.OnTick += HandleTick;
}
private void HandleTick(TickSystem.OnTickEventArgs tickEventArgs)
{
UpdateTarget();
}
void UpdateTarget ()
{
// Enemies are the game objects tagged with the "Enemy"
GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyTag);
//GameObject[] enemies = GameObject.FindGameObjectsWithTag(enemyType);
Soldier[] soldiers = GameObject.FindObjectsOfType<Soldier>();
List<GameObject> enemiesList = new List<GameObject>();
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;