Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 3
0
 public void changeTargetAttacker()
 {
     if (selectedObject)
     {
         if (selectedObject.getAttacker())
         {
             colonySelected(selectedObject.getAttacker());
         }
     }
     else
     if (selectedColony)
     {
         if (selectedColony.getTarget())
         {
             objectSelected(selectedColony.getTarget());
         }
     }
 }
Ejemplo n.º 4
0
    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;
                }
            }
        }
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
    }