mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 21:03:07 +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_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
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
guid: 0cea408c577cfdf4fa0c7295d22ba421
|
||||
PrefabImporter:
|
||||
guid: 5d5ec7ec529070f4aa733bf14cc8e222
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
@ -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)
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user