mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-06 19:43:10 +02:00
Adding initial soldiers to squads
This commit is contained in:
parent
b3b8f4cb76
commit
ce3d7d69ee
@ -13,10 +13,12 @@ public class SquadManager : MonoBehaviour
|
|||||||
playerSquad = Instantiate(squadPrefab).GetComponent<Squad>();
|
playerSquad = Instantiate(squadPrefab).GetComponent<Squad>();
|
||||||
playerSquad.gameObject.name = "Player Squad";
|
playerSquad.gameObject.name = "Player Squad";
|
||||||
playerSquad.transform.SetParent(transform);
|
playerSquad.transform.SetParent(transform);
|
||||||
|
playerSquad.SetOwnTeam(Entity.Team.Ally);
|
||||||
|
|
||||||
enemySquad = Instantiate(squadPrefab).GetComponent<Squad>();
|
enemySquad = Instantiate(squadPrefab).GetComponent<Squad>();
|
||||||
enemySquad.gameObject.name = "Enemy Squad";
|
enemySquad.gameObject.name = "Enemy Squad";
|
||||||
enemySquad.transform.SetParent(transform);
|
enemySquad.transform.SetParent(transform);
|
||||||
|
enemySquad.SetOwnTeam(Entity.Team.Enemy);
|
||||||
}
|
}
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update()
|
void Update()
|
||||||
@ -24,14 +26,21 @@ public class SquadManager : MonoBehaviour
|
|||||||
Debug.Log("Added initial soldiers to squad");
|
Debug.Log("Added initial soldiers to squad");
|
||||||
// add all ally soldiers to squad
|
// add all ally soldiers to squad
|
||||||
var soldiers = FindObjectsOfType<Soldier>();
|
var soldiers = FindObjectsOfType<Soldier>();
|
||||||
foreach(var soldier in soldiers)
|
var squads = new List<Squad>();
|
||||||
{
|
squads.Add(playerSquad);
|
||||||
if(soldier.GetOwnTeam() == Soldier.Team.Ally)
|
squads.Add(enemySquad);
|
||||||
{
|
|
||||||
playerSquad.TempAddSoldierToSquad(soldier);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
foreach (var soldier in soldiers)
|
||||||
|
{
|
||||||
|
foreach (var squad in squads)
|
||||||
|
{
|
||||||
|
if (soldier.GetOwnTeam() == squad.GetOwnTeam())
|
||||||
|
{
|
||||||
|
squad.AddSoldierToSquad(soldier);
|
||||||
|
soldier.OnDeath.AddListener(squad.RemoveSoldierFromSquad);
|
||||||
|
}
|
||||||
|
}
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,9 @@ using UnityEngine;
|
|||||||
|
|
||||||
public class Squad : MonoBehaviour
|
public class Squad : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
private Entity.Team ownTeam;
|
||||||
|
public Entity.Team GetOwnTeam() { return ownTeam; }
|
||||||
|
public void SetOwnTeam(Entity.Team newTeam) {ownTeam = newTeam; }
|
||||||
#region Orders
|
#region Orders
|
||||||
public abstract class Order // generic order (to keep in queue)
|
public abstract class Order // generic order (to keep in queue)
|
||||||
{
|
{
|
||||||
@ -31,14 +34,19 @@ public class Squad : MonoBehaviour
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[SerializeField] private List<Soldier> soldiers = new List<Soldier>(); // soldiers belonging to the squad
|
[SerializeField] private List<Entity> soldiers = new List<Entity>(); // soldiers belonging to the squad
|
||||||
private Queue<Order> orders = new Queue<Order>(); // orders given to the squad
|
private Queue<Order> orders = new Queue<Order>(); // orders given to the squad
|
||||||
|
|
||||||
public void TempAddSoldierToSquad(Soldier soldier)
|
public void AddSoldierToSquad(Entity soldier)
|
||||||
{
|
{
|
||||||
soldiers.Add(soldier);
|
soldiers.Add(soldier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void RemoveSoldierFromSquad(Entity soldier)
|
||||||
|
{
|
||||||
|
soldiers.Remove(soldier);
|
||||||
|
}
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
TickSystem.OnTick += HandleTick;
|
TickSystem.OnTick += HandleTick;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user