mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 16:03:11 +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.gameObject.name = "Player Squad";
|
||||
playerSquad.transform.SetParent(transform);
|
||||
playerSquad.SetOwnTeam(Entity.Team.Ally);
|
||||
|
||||
enemySquad = Instantiate(squadPrefab).GetComponent<Squad>();
|
||||
enemySquad.gameObject.name = "Enemy Squad";
|
||||
enemySquad.transform.SetParent(transform);
|
||||
enemySquad.SetOwnTeam(Entity.Team.Enemy);
|
||||
}
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
@ -24,14 +26,21 @@ public class SquadManager : MonoBehaviour
|
||||
Debug.Log("Added initial soldiers to squad");
|
||||
// add all ally soldiers to squad
|
||||
var soldiers = FindObjectsOfType<Soldier>();
|
||||
foreach(var soldier in soldiers)
|
||||
{
|
||||
if(soldier.GetOwnTeam() == Soldier.Team.Ally)
|
||||
{
|
||||
playerSquad.TempAddSoldierToSquad(soldier);
|
||||
}
|
||||
}
|
||||
var squads = new List<Squad>();
|
||||
squads.Add(playerSquad);
|
||||
squads.Add(enemySquad);
|
||||
|
||||
enabled = false;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,9 @@ using UnityEngine;
|
||||
|
||||
public class Squad : MonoBehaviour
|
||||
{
|
||||
private Entity.Team ownTeam;
|
||||
public Entity.Team GetOwnTeam() { return ownTeam; }
|
||||
public void SetOwnTeam(Entity.Team newTeam) {ownTeam = newTeam; }
|
||||
#region Orders
|
||||
public abstract class Order // generic order (to keep in queue)
|
||||
{
|
||||
@ -31,14 +34,19 @@ public class Squad : MonoBehaviour
|
||||
}
|
||||
#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
|
||||
|
||||
public void TempAddSoldierToSquad(Soldier soldier)
|
||||
public void AddSoldierToSquad(Entity soldier)
|
||||
{
|
||||
soldiers.Add(soldier);
|
||||
}
|
||||
|
||||
public void RemoveSoldierFromSquad(Entity soldier)
|
||||
{
|
||||
soldiers.Remove(soldier);
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
TickSystem.OnTick += HandleTick;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user