Exemplo n.º 1
0
    private void Start()
    {
        draggable     = transform.parent.GetComponent <Draggable>();
        card_instance = transform.parent.GetComponent <CardGOInstance>();

        this.control = GameObject.FindGameObjectWithTag("Control").GetComponent <Serverino>().control;
    }
Exemplo n.º 2
0
    /// <summary>
    /// Dada a posição pos, obtém-se a instância da carta.
    /// Para isso, é necessário encontrar o go que possui a CardGOInstance, e retornar seu atributo card.
    /// </summary>
    /// <param name="pos">Posição que se deseja saber a carta </param>
    /// <returns>Instância da carta da posição. Null se ela não existir</returns>
    public Card getCardByPosition(Position pos)
    {
        Transform      card_position_transform = findCardPositionGOinField(pos);
        CardGOInstance card_instance           = findCardInstanceInTransform(card_position_transform);

        if (card_instance)
        {
            return(card_instance.card);
        }
        return(null);
    }
Exemplo n.º 3
0
    /// <summary>
    /// Remove a instância da carta na posição do campo, e atualiza o gameobject da posição para empty (possibilitando que novas cartas sejam jogadas
    /// naquela posição)
    /// </summary>
    /// <param name="pos">Posição da carta (linha, coluna) que será removida</param>
    public void removeCard(Position pos)
    {
        Transform      transform     = findCardPositionGOinField(pos);
        CardGOInstance card_instance = this.findCardInstanceInTransform(transform);

        if (card_instance)
        {
            UnityEngine.Object.Destroy(card_instance.gameObject);
            if (transform.GetComponent <DropZone>())
            {
                transform.GetComponent <DropZone>().setEmpty(true);
            }
        }
    }
Exemplo n.º 4
0
    public void OnDrop(PointerEventData eventData)
    {
        Draggable d = eventData.pointerDrag.GetComponent <Draggable>();

        if (d != null && d.canBeMoved == true && server.control.isPlayerTurn())
        {
            CardGOInstance cardInstance = eventData.pointerDrag.GetComponent <CardGOInstance>();
            Card           card         = cardInstance.card;

            if (card.isMagic())
            {
                if (server.tryPlayMagicWithoutTarget(card.getID()))
                {
                    server.control.playMagic(card);
                }
            }
        }
    }
Exemplo n.º 5
0
    /// <summary>
    /// Retorna a instância da carta da posição no campo.
    /// </summary>
    /// <param name="card_position_transform"> GO que tem como filho um GO com informações da carta na posição específica</param>
    /// <returns>CardInstance da transform da posição da carta no campo. Null se não tiver cartas ali</returns>
    //
    private CardGOInstance findCardInstanceInTransform(Transform card_position_transform)
    {
        //se não tiver filhos, não existe nenhuma carta nessa posição.
        if (card_position_transform.childCount <= 0)
        {
            return(null);
        }

        Transform card_transform = card_position_transform.GetChild(0);

        if (card_transform)
        {
            CardGOInstance card_instance = card_transform.GetComponent <CardGOInstance>();
            if (card_instance)
            {
                return(card_instance);
            }
        }
        return(null);
    }
Exemplo n.º 6
0
    public void playCreature(PointerEventData eventData, Draggable d)
    {
        CardGOInstance cardInstance = eventData.pointerDrag.GetComponent <CardGOInstance>();
        Card           card         = cardInstance.card;

        int      player_side    = this.getPlayerId();
        Position field_position = getCardPosition(player_side);

        //se o servidor deixar ele jogar a cartita;
        if (card.isCreature() && server.tryPlayCharacter(card, field_position, d.hand_index))
        {
            d.parentToReturnTo = this.transform;
            d.cardIs           = "played";
            empty = false;

            cardInstance.setFieldPosition(transform.name, field_position);
            server.playerPlayCreature(card, field_position);
            //addCreatureAttributes(d.gameObject, card);
        }
    }
Exemplo n.º 7
0
    public void createCard(Card card, Position pos, int player_id)
    {
        if (getCardByPosition(pos) != null)
        {
            return;
        }

        card.setPlayerId(player_id);

        //instância uma nova carta
        GameObject card_go = (GameObject)UnityEngine.Object.Instantiate(card_prefab, Vector3.zero, new Quaternion(0, 0, 0, 0));

        CardGOInstance card_instance = card_go.GetComponent <CardGOInstance>();

        card_instance.setControlReference();
        card_instance.setCard(card);
        card_instance.setCardImage();
        string go_name = this.getGameObjectCardPosition(pos);

        card_instance.setFieldPosition(go_name, pos);

        card_go.AddComponent <CardArrowDrop>();
        card_go.AddComponent <EffectTargetUI>();
    }