// adds a unit group(on retreat) public void addUnitGroup(UnitGroupScript group) { SavedUnitGroup newUnitGroup = new SavedUnitGroup(); newUnitGroup.normalUpgrades = new List<string>(); newUnitGroup.numUnits = group.unitsInBaseScripts.Count; unitGroupsSaved.Add (newUnitGroup); }
// adds a unit group(on retreat) public void addUnitGroup(UnitGroupScript group) { SavedUnitGroup newUnitGroup = new SavedUnitGroup(); newUnitGroup.normalUpgrades = new List <string>(); newUnitGroup.numUnits = group.unitsInBaseScripts.Count; unitGroupsSaved.Add(newUnitGroup); }
// spawns a waiting unit group public void spawnUnitgroup(SavedUnitGroup group) { Vector3 position = new Vector3(transform.position.x + 5.0f, transform.position.y, transform.position.z); GameObject newgroup = Instantiate(unitGroupPrefab, position, Quaternion.identity) as GameObject; UnitGroupScript newUnitGroupScript = newgroup.GetComponent <UnitGroupFriendlyScript>(); GameObject newUnit; List <UnitScript> listNewUnits = new List <UnitScript>(); position = new Vector3(transform.position.x + 5.0f, transform.position.y, transform.position.z); for (int i = 0; i < group.numUnits; i++) { newUnit = Instantiate(unitPrefab, position, Quaternion.identity) as GameObject; newUnit.SetActive(false); UnitScript unitScript = newUnit.GetComponent <UnitScript>(); unitScript.unitGroupScript = newUnitGroupScript; listNewUnits.Add(unitScript); } GameObject newUpgrade; Skill newUpgradeSkill; if (group.normalUpgrades.Count > 0) { foreach (string upgrade in group.normalUpgrades) { newUpgrade = Instantiate(upgradeManager.getUpgrade(upgrade), position, Quaternion.identity) as GameObject; newUpgradeSkill = newUpgrade.GetComponent <Skill>(); if (newUpgradeSkill.skillType == 1) { newUpgrade.SetActive(true); newUpgradeSkill.unitGroupScript = newUnitGroupScript; newUpgradeSkill.skillTarget = newUnitGroupScript.gameObject; newUpgrade.transform.parent = newgroup.transform; } if (newUpgradeSkill.skillType == 0 && listNewUnits.Count > 0) { newUpgradeSkill.unitScript = listNewUnits[0]; newUpgrade.transform.parent = listNewUnits[0].transform; newUpgrade.SetActive(true); for (int i = 1; i < listNewUnits.Count; i++) { newUpgrade = Instantiate(upgradeManager.getUpgrade(upgrade), position, Quaternion.identity) as GameObject; newUpgrade.SetActive(true); newUpgradeSkill = newUpgrade.GetComponent <Skill>(); newUpgradeSkill.unitScript = listNewUnits[i]; newUpgradeSkill.skillTarget = listNewUnits[i].gameObject; newUpgrade.transform.parent = listNewUnits[i].transform; } } } } if (group.specialUpgrade != null) { newUpgrade = Instantiate(upgradeManager.getUpgrade(group.specialUpgrade).gameObject, position, Quaternion.identity) as GameObject; newUpgradeSkill = newUpgrade.GetComponent <Skill>(); if (newUpgradeSkill.skillType == 1) { newUpgrade.SetActive(true); newUpgradeSkill.unitGroupScript = newUnitGroupScript; newUpgradeSkill.skillTarget = newUnitGroupScript.gameObject; newUpgrade.transform.parent = newgroup.transform; } if (newUpgradeSkill.skillType == 0 && listNewUnits.Count > 0) { newUpgradeSkill.unitScript = listNewUnits[0]; newUpgrade.transform.parent = listNewUnits[0].transform; newUpgrade.SetActive(true); for (int i = 1; i < listNewUnits.Count; i++) { newUpgrade = Instantiate(upgradeManager.getUpgrade(group.specialUpgrade), position, Quaternion.identity) as GameObject; newUpgrade.SetActive(true); newUpgradeSkill = newUpgrade.GetComponent <Skill>(); newUpgradeSkill.unitScript = listNewUnits[i]; newUpgradeSkill.skillTarget = listNewUnits[i].gameObject; newUpgrade.transform.parent = listNewUnits[i].transform; } } } deleteUnitGroup(group); StartCoroutine(setListGroupUnitsActive(listNewUnits)); }