public void AbsorbDivision(DivisionController other) { TransferSoldiers(other.soldiers); //kick him out of his commanders subordinate list RememberedDivision parent = other.commander; if (parent != null) { parent.RemoveSubordinate(other.GenerateRememberedDivision()); } GameObject.Destroy(other.gameObject); GameManager.instance.RefreshAllDivisons(); }
public virtual DivisionController CreateChild(List <Soldier> soldiersForChild) { GameObject newDivision = Instantiate(divisonPrefab); DivisionController newController = newDivision.GetComponent <DivisionController>(); newController.Init(GenerateRememberedDivision()); newController.soldiers = soldiersForChild; newDivision.transform.position = this.transform.position; newDivision.transform.rotation = this.transform.rotation; subordinates.Add(newController.GenerateRememberedDivision()); GameManager.instance.RefreshAllDivisons(); return(newController); }