mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-06 16:43:01 +02:00
Merge branch 'Development' into SpartaqS-OrderIssuing
This commit is contained in:
commit
3dc631a5f4
@ -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:
|
|
||||||
@ -59,7 +59,7 @@ Rigidbody:
|
|||||||
m_Mass: 1
|
m_Mass: 1
|
||||||
m_Drag: 0
|
m_Drag: 0
|
||||||
m_AngularDrag: 0.05
|
m_AngularDrag: 0.05
|
||||||
m_UseGravity: 1
|
m_UseGravity: 0
|
||||||
m_IsKinematic: 0
|
m_IsKinematic: 0
|
||||||
m_Interpolate: 0
|
m_Interpolate: 0
|
||||||
m_Constraints: 0
|
m_Constraints: 0
|
||||||
@ -76,6 +76,13 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: d34caf35d0ce610f8bc87cf815ba1915, type: 3}
|
m_Script: {fileID: 11500000, guid: d34caf35d0ce610f8bc87cf815ba1915, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
target: {fileID: 0}
|
||||||
|
enemyTag:
|
||||||
|
healthPoints: 1
|
||||||
|
rangeAttack: 1
|
||||||
|
rangeView: 1
|
||||||
|
damageAttack: 1
|
||||||
|
speedAttack: 1
|
||||||
--- !u!1 &2353457452513625490
|
--- !u!1 &2353457452513625490
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -156,7 +156,7 @@ MonoBehaviour:
|
|||||||
soldierStartingPosition: {x: 0, y: 0}
|
soldierStartingPosition: {x: 0, y: 0}
|
||||||
enemyStartingPosition: {x: 1, y: 0}
|
enemyStartingPosition: {x: 1, y: 0}
|
||||||
tilemap: {fileID: 1853262998}
|
tilemap: {fileID: 1853262998}
|
||||||
soldierPrefab: {fileID: 7329575924073430320, guid: 0cea408c577cfdf4fa0c7295d22ba421,
|
soldierPrefab: {fileID: 403095692180922766, guid: a87b1aa46b0ed3e0fba621e11dd4f1e2,
|
||||||
type: 3}
|
type: 3}
|
||||||
--- !u!4 &282616949
|
--- !u!4 &282616949
|
||||||
Transform:
|
Transform:
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class DummySoldier : MonoBehaviour
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8cb9ceee24755fa4880d17603fefc63a
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,6 +1,7 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0cea408c577cfdf4fa0c7295d22ba421
|
guid: 5d5ec7ec529070f4aa733bf14cc8e222
|
||||||
PrefabImporter:
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
@ -14,7 +14,7 @@ public class TilemapManager : MonoBehaviour
|
|||||||
|
|
||||||
public struct Tile
|
public struct Tile
|
||||||
{
|
{
|
||||||
public DummySoldier standingSoldier;
|
public Soldier standingSoldier;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Header("Common Values")]
|
[Header("Common Values")]
|
||||||
@ -50,8 +50,8 @@ public class TilemapManager : MonoBehaviour
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
SpawnSoldier(soldierStartingPosition.x, soldierStartingPosition.y);
|
SpawnSoldier(soldierStartingPosition.x, soldierStartingPosition.y, true);
|
||||||
SpawnSoldier(enemyStartingPosition.x, enemyStartingPosition.y);
|
SpawnSoldier(enemyStartingPosition.x, enemyStartingPosition.y, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnValidate()
|
private void OnValidate()
|
||||||
@ -77,13 +77,18 @@ public class TilemapManager : MonoBehaviour
|
|||||||
|
|
||||||
// ---------- public functions
|
// ---------- public functions
|
||||||
|
|
||||||
public bool SpawnSoldier(int x, int y)
|
public bool SpawnSoldier(int x, int y, bool isAlly)
|
||||||
{
|
{
|
||||||
if (GetTileState(x, y) != TileState.free)
|
if (GetTileState(x, y) != TileState.free)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
tiles[x, y].standingSoldier = Instantiate(soldierPrefab, tilemap.CellToWorld(new Vector3Int(x, y, 0)) + WORLD_SPACE_OFFSET, Quaternion.identity).GetComponent<DummySoldier>();
|
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)
|
if (tiles[x, y].standingSoldier != null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -102,7 +107,7 @@ public class TilemapManager : MonoBehaviour
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DummySoldier GetSoldier(int x, int y)
|
public Soldier GetSoldier(int x, int y)
|
||||||
{
|
{
|
||||||
if (GetTileState(x, y) != TileState.taken)
|
if (GetTileState(x, y) != TileState.taken)
|
||||||
return null;
|
return null;
|
||||||
@ -110,6 +115,19 @@ public class TilemapManager : MonoBehaviour
|
|||||||
return tiles[x,y].standingSoldier;
|
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)
|
public bool MoveSoldier(int x1, int y1, int x2, int y2)
|
||||||
{
|
{
|
||||||
if (GetTileState(x1, y1) == TileState.taken && GetTileState(x2, y2) == TileState.free)
|
if (GetTileState(x1, y1) == TileState.taken && GetTileState(x2, y2) == TileState.free)
|
||||||
@ -4,27 +4,60 @@ using UnityEngine;
|
|||||||
|
|
||||||
public class Soldier : MonoBehaviour
|
public class Soldier : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
public enum SoldierType
|
||||||
|
{
|
||||||
|
Ally,
|
||||||
|
Enemy
|
||||||
|
}
|
||||||
[SerializeField] private Transform target;
|
[SerializeField] private Transform target;
|
||||||
[SerializeField] private string enemyTag;
|
[SerializeField] private SoldierType enemyType;
|
||||||
|
[SerializeField] private SoldierType ourType;
|
||||||
[SerializeField] private float healthPoints = 1;
|
[SerializeField] private float healthPoints = 1;
|
||||||
[SerializeField] private float rangeAttack = 1;
|
[SerializeField] private float rangeAttack = 100;
|
||||||
[SerializeField] private float rangeView = 1;
|
[SerializeField] private float rangeView = 1;
|
||||||
[SerializeField] private float damageAttack = 1;
|
[SerializeField] private float damageAttack = 1;
|
||||||
[SerializeField] private float speedAttack = 1;
|
[SerializeField] private float speedAttack = 1;
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start(){
|
void Start(){
|
||||||
if(gameObject.tag == "Ally") enemyTag = "Enemy";
|
setEnemyTag();
|
||||||
else enemyTag = "Ally";
|
|
||||||
InvokeRepeating("UpdateTarget", 0f, 0.5f);
|
|
||||||
// Call UpdateTarget method at the begining of the Start()
|
|
||||||
// and repeat every 0.5 second
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 ()
|
void UpdateTarget ()
|
||||||
{
|
{
|
||||||
// Enemies are the game objects tagged with the "Enemy"
|
// 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);
|
Debug.Log(enemies.Length);
|
||||||
// We have not found enemy yet so the distance to enemy is "infinite"
|
// We have not found enemy yet so the distance to enemy is "infinite"
|
||||||
float shortestDistance = Mathf.Infinity;
|
float shortestDistance = Mathf.Infinity;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user