예제 #1
0
    /// 卡牌位置变更
    public void MoveCardPosEnum(int cardUId, RoomCardPosEnum toPosEnum)
    {
        CardControl cc = GetCardControl(cardUId);

        // if(cc.LastPosEnum == toPosEnum) return;
        if (cc.LastPosEnum != RoomCardPosEnum.None)
        {
            if (cardPosList.ContainsKey(cc.LastPosEnum))
            {
                int last = cardPosList[cc.LastPosEnum].IndexOf(cardUId);
                if (last != -1)
                {
                    cardPosList[cc.LastPosEnum].RemoveAt(last);
                }
            }
        }
        if (toPosEnum != RoomCardPosEnum.None)
        {
            if (!cardPosList.ContainsKey(toPosEnum))
            {
                cardPosList.Add(toPosEnum, new List <int>());
            }
            cardPosList[toPosEnum].Add(cardUId);
        }
        int       playerUId = GetCardPlayer(cardUId) == null ? -1 : GetCardPlayer(cardUId).playerData.UUID;
        Transform cardItem  = cc.GetItem().transform;

        cardItem.SetParent(roomControl.GetTransByPos(toPosEnum, cc.cardData, playerUId), true);
        cardItem.localScale    = new Vector3(1, 1, 1);
        cardItem.localRotation = Quaternion.identity;
        cc.MoveCard(roomControl.GetCardPos(cc.LastPosEnum, cc.cardData, playerUId), roomControl.GetCardPos(toPosEnum, cc.cardData, playerUId), toPosEnum, onMoveCompleted);
    }
예제 #2
0
파일: CardControl.cs 프로젝트: muyifc/Boast
 /// from,to = position
 public void MoveCard(Vector3 from, Vector3 to, RoomCardPosEnum toPosEnum, System.Action <int> onMoveCompleted)
 {
     if (moveCoroutine != null)
     {
         CoroutineManager.Instance.StopCoroutine(moveCoroutine);
     }
     GetItem().transform.position = from;
     this.onMoveCompleted         = onMoveCompleted;
     moveCoroutine = CoroutineManager.Instance.StartCoroutine(move(to));
     LastPosEnum   = toPosEnum;
     cardItem.ChangePosEnum();
     setScale();
 }
예제 #3
0
    /// 根据位置获取所在父级
    public Transform GetTransByPos(RoomCardPosEnum posEnum, Card cardData, int playerUId = -1)
    {
        Transform target = null;

        switch (posEnum)
        {
        case RoomCardPosEnum.PublicDesk:
            target = GetRoomDesk();
            break;

        case RoomCardPosEnum.PlayerHand:
            PlayerControl pc = PlayerManager.Instance.GetPlayer(playerUId);
            if (pc != null)
            {
                if (cardData.IsT <Animals>())
                {
                    target = pc.GetCardAnimal();
                }
                else
                {
                    target = pc.GetCardHand();
                }
            }
            break;

        case RoomCardPosEnum.PlayerLibrary:
            pc = PlayerManager.Instance.GetPlayer(playerUId);
            if (pc != null)
            {
                target = pc.GetCardLibrary();
            }
            break;

        case RoomCardPosEnum.TmpRound:
            break;

        case RoomCardPosEnum.EndRound:
            target = roomItem.GetCardEndRound();
            break;

        case RoomCardPosEnum.WillDestroy:
            target = roomItem.GetWillDestroy();
            break;
        }
        return(target);
    }
예제 #4
0
    /// 舞台中卡牌的对应坐标
    public Vector3 GetCardPos(RoomCardPosEnum posEnum, Card cardData, int playerUId = -1)
    {
        Transform target = GetTransByPos(posEnum, cardData, playerUId);

        if (target != null)
        {
            CardLayoutData layoutData = target.GetComponent <CardLayoutData>();
            if (layoutData != null)
            {
                return(layoutData.GetNextPos());
            }
            else
            {
                return(target.position);
            }
        }
        return(GetRoomItem().transform.position);
    }
예제 #5
0
파일: CardControl.cs 프로젝트: muyifc/Boast
 public void Init(Card card)
 {
     cardData    = card;
     LastPosEnum = RoomCardPosEnum.None;
 }