protected IEnumerator movement(string AtkAnimStr, string walkAnimStr, float objectWaitingTime, float objectSpeed) { while (true) { bool move = true; if (movementPath.Count < 2) { if (isAttacking) { animator.SetBool(AtkAnimStr, true); if (targetObject.getAttacker()) { targetObject.getAttacker().attack(); move = false; yield return(new WaitForSeconds(objectWaitingTime)); } else { animator.SetBool(walkAnimStr, true); animator.SetBool(AtkAnimStr, false); isAttacking = false; } } if (move) { movementPath.Clear(); animator.SetBool(walkAnimStr, false); int endNode = findDestination(); List <Graph.Node> path = GameManager.getCurrentLevel().getGraphLiveObjects().getPath(actualNodeNumber, endNode); foreach (Graph.Node n in path) { movementPath.Enqueue(n); } yield return(new WaitForSeconds(objectWaitingTime)); animator.SetBool(walkAnimStr, true); } } if (move) { StartCoroutine(stepMovement(objectSpeed)); yield return(new WaitForSeconds(objectSpeed)); } } }
void OnMouseUp() { StopCoroutine(selectionCoroutine); if (cursor) { int attackers = cursor.GetComponent <StartAttackCursor>().attackers; Destroy(cursor.gameObject); if (obj.getAttacker() == null) { Colony colony = GameManager.getLevelGUI().instantiateColony(); colony.setTarget(obj); colony.setIsToBePlaced(false); } obj.getAttacker().addTermites(attackers); GameManager.getCurrentLevel().decreaseAvailableTermites(attackers); } }
public void changeTargetAttacker() { if (selectedObject) { if (selectedObject.getAttacker()) { colonySelected(selectedObject.getAttacker()); } } else if (selectedColony) { if (selectedColony.getTarget()) { objectSelected(selectedColony.getTarget()); } } }
public void OnDrag(PointerEventData eventData) { if (isDraggable) { if (contains) { cursor.transform.position = Input.mousePosition; RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, Mathf.Infinity, Costants.RAYCAST_MASK); if (hit.collider != null) { GenericObject obj = hit.collider.gameObject.transform.parent.GetComponent <EatableObject>(); if ((obj) && (obj.getAttacker())) { if (previousSelectedObject) { previousSelectedObject.deselect(ObjectSelection.Model.BoosterApplication); } previousSelectedObject = obj; previousSelectedColony = obj.getAttacker(); obj.select(ObjectSelection.Model.ColonyTarget); } else if (previousSelectedObject) { previousSelectedObject.deselect(ObjectSelection.Model.BoosterApplication); previousSelectedObject = null; previousSelectedColony = null; } } else if (previousSelectedObject) { previousSelectedObject.deselect(ObjectSelection.Model.BoosterApplication); previousSelectedObject = null; previousSelectedColony = null; } } } }
public void objectSelected(GenericObject selectedObject) { if (selectedColony) { colonyDeselected(); } if (this.selectedObject) { this.selectedObject.deselect(ObjectSelection.Model.InfoDisplay); } this.selectedObject = selectedObject; selectedObject.select(ObjectSelection.Model.InfoDisplay); objectInformationPanel.transform.Find("Title").gameObject.GetComponent <Text>().text = selectedObject.getCategory() + ": " + selectedObject.getName(); objectInformationPanel.transform.Find("Description").gameObject.GetComponent <Text>().text = selectedObject.getDescription(); if (selectedObject.getAttacker()) { objectInformationPanel.transform.Find("SelectAttackertButton").gameObject.GetComponent <Button>().interactable = true; objectInformationPanel.transform.Find("SelectAttackertButton/Text").gameObject.GetComponent <Text>().text = "ATTACKER"; } else { objectInformationPanel.transform.Find("SelectAttackertButton").gameObject.GetComponent <Button>().interactable = false; objectInformationPanel.transform.Find("SelectAttackertButton/Text").gameObject.GetComponent <Text>().text = "NO ATTACKER"; } int integrity = selectedObject.getIntegrity(); if (integrity < 0) { integrity = 0; } objectInformationPanel.transform.Find("Integrity").gameObject.GetComponent <Text>().text = "INTEGRITY: " + integrity + "%"; objectInformationPanel.SetActive(true); noInformationPanel.SetActive(false); }
public void objectSelected(GenericObject selectedObject) { if (selectedColony) colonyDeselected(); if (this.selectedObject) this.selectedObject.deselect(ObjectSelection.Model.InfoDisplay); this.selectedObject = selectedObject; selectedObject.select(ObjectSelection.Model.InfoDisplay); objectInformationPanel.transform.Find("Title").gameObject.GetComponent<Text>().text = selectedObject.getCategory() + ": " + selectedObject.getName(); objectInformationPanel.transform.Find("Description").gameObject.GetComponent<Text>().text = selectedObject.getDescription(); if (selectedObject.getAttacker()) { objectInformationPanel.transform.Find("SelectAttackertButton").gameObject.GetComponent<Button>().interactable = true; objectInformationPanel.transform.Find("SelectAttackertButton/Text").gameObject.GetComponent<Text>().text = "ATTACKER"; } else { objectInformationPanel.transform.Find("SelectAttackertButton").gameObject.GetComponent<Button>().interactable = false; objectInformationPanel.transform.Find("SelectAttackertButton/Text").gameObject.GetComponent<Text>().text = "NO ATTACKER"; } int integrity = selectedObject.getIntegrity(); if (integrity < 0) integrity = 0; objectInformationPanel.transform.Find("Integrity").gameObject.GetComponent<Text>().text = "INTEGRITY: " + integrity + "%"; objectInformationPanel.SetActive(true); noInformationPanel.SetActive(false); }