private IEnumerator InputEnemyAttributes(EchelonBehavior behavior) { enemyCreatorHolder.SetActive(true); creatingNewEnemy = false; while (!creatingNewEnemy) { yield return(new WaitForEndOfFrame()); } if (enemyCreator.GetEnemyID().Length > 0) { behavior.SetID(int.Parse(enemyCreator.GetEnemyID())); } behavior.SetFaction(enemyCreator.GetEnemyFaction()); behavior.GetComponent <Image>().sprite = enemyCreator.GetChosenSprite(); enemyCreator.ResetInputField(); enemyCreatorHolder.SetActive(false); }
public void AddEchelon(EchelonType type, NodeBehavior node) { bool valid = false; if (type == EchelonType.Enemy || type == EchelonType.NPC) { valid = true; } else if (node.GetOwner() == Faction.Blue) { if (node.GetNodeType() == NodeType.HeavyHelipad) { valid = true; } else if (type != EchelonType.HOC) { if (node.GetNodeType() == NodeType.HQ || node.GetNodeType() == NodeType.Helipad) { valid = true; } } } if (valid) { GameObject newEchelon = null; switch (type) { case EchelonType.RegularGriffin: newEchelon = Instantiate(regularEcheTemplate, node.gameObject.transform.position, Quaternion.identity, mapImage.transform); regularEchelons.Add(newEchelon.GetComponent <EchelonBehavior>()); planner.AddEchelon(); makingHOC = false; StartCoroutine(InputEchelonName(newEchelon.GetComponent <EchelonBehavior>())); break; case EchelonType.Parachute: newEchelon = Instantiate(parachuteTemplate, node.gameObject.transform.position, Quaternion.identity, mapImage.transform); parachuteEchelons.Add(newEchelon.GetComponent <ParachuteBehavior>()); planner.AddEchelon(); makingHOC = false; StartCoroutine(InputEchelonName(newEchelon.GetComponent <EchelonBehavior>())); break; case EchelonType.HOC: newEchelon = Instantiate(HOCTemplate, node.gameObject.transform.position, Quaternion.identity, mapImage.transform); HOCs.Add(newEchelon.GetComponent <HOCBehavior>()); planner.AddHOC(); makingHOC = true; StartCoroutine(InputEchelonName(newEchelon.GetComponent <EchelonBehavior>())); break; case EchelonType.NPC: newEchelon = Instantiate(NPCTemplate, node.gameObject.transform.position, Quaternion.identity, mapImage.transform); NPCs.Add(newEchelon.GetComponent <EchelonBehavior>()); break; case EchelonType.Enemy: newEchelon = Instantiate(regularEnemyTemplate, node.gameObject.transform.position, Quaternion.identity, mapImage.transform); enemies.Add(newEchelon.GetComponent <EchelonBehavior>()); StartCoroutine(InputEnemyAttributes(newEchelon.GetComponent <EchelonBehavior>())); break; } EchelonBehavior behavior = newEchelon.GetComponent <EchelonBehavior>(); behavior.SetNode(node); allEchelons.Add(behavior); if (type == EchelonType.RegularGriffin || type == EchelonType.Parachute) { if (retreatedEchelons.Count > 0) { behavior.SetID(retreatedEchelons.Dequeue()); } else { behavior.SetID(regularEchelons.Count + parachuteEchelons.Count); } } else if (type == EchelonType.HOC) { if (retreatedHOCs.Count > 0) { behavior.SetID(retreatedHOCs.Dequeue()); } else { behavior.SetID(HOCs.Count); } } if (gameStateManager.factionMoving == FactionTurn.Blue) { if (behavior.GetFaction() == Faction.Blue) { if (type != EchelonType.NPC) { planner.AdjustAP(-1); } } } newEchelon.transform.localScale = new Vector3(node.GetComponent <RectTransform>().rect.width / 200, node.GetComponent <RectTransform>().rect.height / 200, 1); EventTrigger.Entry ClickEntry = new EventTrigger.Entry(); ClickEntry.eventID = EventTriggerType.PointerClick; ClickEntry.callback.AddListener(delegate { SelectEchelon(behavior); }); newEchelon.GetComponent <EventTrigger>().triggers.Add(ClickEntry); } }