예제 #1
0
    public void CreateWanGangCard(int id)
    {
        Debug.Log("CreateWanGangCard id: " + id);

        int type = id / 100;

        id = id % 100;

        OtherSeat os = getOtherSeat(type);

        if (pengCardIdList.Contains(id))
        {
            Debug.Log("CreateWanGangCard id=" + id);
            int        index          = pengCardIdList.IndexOf(id);
            Vector3    wanGangCard    = (Vector3)pengCardPosList[index] + new Vector3(0, 0, 0 - offx);
            Quaternion wanGangCardRot = os != OtherSeat.Up ? Quaternion.Euler(-90, 90, 0) : Quaternion.Euler(-90, -90, 0);
            CreatePengGangCard(id % 100, wanGangCard, wanGangCardRot);
            pengCardIdList.RemoveAt(index);
            pengCardPosList.RemoveAt(index);
        }
    }
 public void Peng(OtherSeat nowPlay, int id)
 {
     peng(nowPlay, id);
     CreatePengHand();
 }
    /// <summary>
    /// 生成杠的四张牌
    /// </summary>
    /// <param name="nowPlay"></param>
    /// <param name="id"></param>
    /// <param name="handCard"></param>
    void gang(OtherSeat nowPlay, int id, bool isDarkGang)
    {
        //如果是暗杠
        if (isDarkGang)
        {
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.037f, 0, 0);
                startPosOffset      += new Vector3(0.037f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.02f, 0, 0.017f);
                startPosOffset      += new Vector3(0.02f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.037f, -0.017f, 0);
                startPosOffset      += new Vector3(0.037f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            gangCard1Pos = startPos;
            gangCard1Rot = Quaternion.Euler(-90, 0, 0);
            gangCard1    = CreatePengGangCard(id, handCardPrefab, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0.034f, 0.017f, 0);
            gangCard2Rot = Quaternion.Euler(90, 180, 0);
            gangCard2    = CreatePengGangCard(id, handCardPrefab, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(0.068f, 0.017f, 0);
            gangCard3Rot = Quaternion.Euler(90, 180, 0);
            gangCard3    = CreatePengGangCard(id, handCardPrefab, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(0.102f, 0.017f, 0);
            gangCard4Rot = Quaternion.Euler(90, 180, 0);
            gangCard4    = CreatePengGangCard(id, handCardPrefab, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsDarkGang = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            return;
        }
        switch (nowPlay)
        {
        //如果杠的是下家
        case OtherSeat.Down:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.066f, 0, 0);
                startPosOffset      += new Vector3(0.066f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.049f, 0, 0.017f);
                startPosOffset      += new Vector3(0.049f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.066f, -0.017f, 0);
                startPosOffset      += new Vector3(0.066f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            //生成杠的第一张牌
            gangCard1Pos = startPos + new Vector3(0, 0, -0.017f);
            gangCard1Rot = Quaternion.Euler(-90, 90, 0);
            gangCard1    = CreatePengGangCard(id, handCardPrefab, gangCard1Pos, gangCard1Rot);
            //生成杠的第二张牌
            gangCard2Pos = startPos + new Vector3(0.017f, 0, 0);
            gangCard2Rot = Quaternion.Euler(-90, 0, 0);
            gangCard2    = CreatePengGangCard(id, handCardPrefab, gangCard2Pos, gangCard2Rot);
            //生成杠的第三张牌
            gangCard3Pos = startPos + new Vector3(0.051f, 0, 0);
            gangCard3Rot = Quaternion.Euler(-90, 0, 0);
            gangCard3    = CreatePengGangCard(id, handCardPrefab, gangCard3Pos, gangCard3Rot);
            //生成杠的第四张牌
            gangCard4Pos = startPos + new Vector3(0.085f, 0, 0);
            gangCard4Rot = Quaternion.Euler(-90, 0, 0);
            gangCard4    = CreatePengGangCard(id, handCardPrefab, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsDown     = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        //如果杠的是对家
        case OtherSeat.Face:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.037f, 0, 0);
                startPosOffset      += new Vector3(0.037f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.02f, 0, 0.017f);
                startPosOffset      += new Vector3(0.02f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.037f, -0.017f, 0);
                startPosOffset      += new Vector3(0.037f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            gangCard1Pos = startPos;
            gangCard1Rot = Quaternion.Euler(-90, 0, 0);
            gangCard1    = CreatePengGangCard(id, handCardPrefab, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0.034f, 0, 0);
            gangCard2Rot = Quaternion.Euler(-90, 0, 0);
            gangCard2    = CreatePengGangCard(id, handCardPrefab, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(0.097f, 0, -0.017f);
            gangCard3Rot = Quaternion.Euler(-90, 90, 0);
            gangCard3    = CreatePengGangCard(id, handCardPrefab, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(0.114f, 0, 0);
            gangCard4Rot = Quaternion.Euler(-90, 0, 0);
            gangCard4    = CreatePengGangCard(id, handCardPrefab, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsFace     = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        //如果杠的是上家
        case OtherSeat.Up:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.037f, 0, 0);
                startPosOffset      += new Vector3(0.037f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.02f, 0, 0.017f);
                startPosOffset      += new Vector3(0.02f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.037f, -0.017f, 0);
                startPosOffset      += new Vector3(0.037f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            gangCard1Pos = startPos;
            gangCard1Rot = Quaternion.Euler(-90, 0, 0);
            gangCard1    = CreatePengGangCard(id, handCardPrefab, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0.034f, 0, 0);
            gangCard2Rot = Quaternion.Euler(-90, 0, 0);
            gangCard2    = CreatePengGangCard(id, handCardPrefab, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(0.068f, 0, 0);
            gangCard3Rot = Quaternion.Euler(-90, 0, 0);
            gangCard3    = CreatePengGangCard(id, handCardPrefab, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(0.131f, 0, -0.017f);
            gangCard4Rot = Quaternion.Euler(-90, 90, 0);
            gangCard4    = CreatePengGangCard(id, handCardPrefab, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsUp       = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        default:
            break;
        }
    }
 public void Gang(OtherSeat nowPlay, int id, bool isDarkGang)
 {
     gang(nowPlay, id, isDarkGang);
     CreateGangHand();
 }
    /// <summary>
    /// 生成碰的三张牌
    /// </summary>
    /// <param name="nowPlay"></param>
    /// <param name="id"></param>
    /// <param name="handCard"></param>
    void peng(OtherSeat nowPlay, int id)
    {
        switch (nowPlay)
        {
        //碰的是下家
        case OtherSeat.Down:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.066f, 0, 0);
                startPosOffset      += new Vector3(0.066f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos(); //更新碰时生成手动画的位置
                createFx_PengGangPos = SetFx_PengGangPos();       //更新碰时特效生成位置
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.049f, 0, 0.017f);
                startPosOffset      += new Vector3(0.049f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.066f, -0.017f, 0);
                startPosOffset      += new Vector3(0.066f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            //生成碰的第一张牌
            pengCard1Pos = startPos + new Vector3(0, 0, -0.017f);
            pengCard1Rot = Quaternion.Euler(-90, 90, 0);
            pengCard1    = CreatePengGangCard(id, handCardPrefab, pengCard1Pos, pengCard1Rot);
            //生成碰的第二张牌
            pengCard2Pos = startPos + new Vector3(0.017f, 0, 0);
            pengCard2Rot = Quaternion.Euler(-90, 0, 0);
            pengCard2    = CreatePengGangCard(id, handCardPrefab, pengCard2Pos, pengCard2Rot);
            //生成碰的第三张牌
            pengCard3Pos = startPos + new Vector3(0.051f, 0, 0);
            pengCard3Rot = Quaternion.Euler(-90, 0, 0);
            pengCard3    = CreatePengGangCard(id, handCardPrefab, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard1Pos);

            startPos       = pengCard3Pos;
            LastIsDown     = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        //碰的是对家
        case OtherSeat.Face:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.037f, 0, 0);
                startPosOffset      += new Vector3(0.037f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.02f, 0, 0.017f);
                startPosOffset      += new Vector3(0.02f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.037f, -0.017f, 0);
                startPosOffset      += new Vector3(0.037f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            pengCard1Pos = startPos;
            pengCard1Rot = Quaternion.Euler(-90, 0, 0);
            pengCard1    = CreatePengGangCard(id, handCardPrefab, pengCard1Pos, pengCard1Rot);

            pengCard2Pos = startPos + new Vector3(0.063f, 0, -0.017f);
            pengCard2Rot = Quaternion.Euler(-90, 90, 0);
            pengCard2    = CreatePengGangCard(id, handCardPrefab, pengCard2Pos, pengCard2Rot);

            pengCard3Pos = startPos + new Vector3(0.08f, 0, 0);
            pengCard3Rot = Quaternion.Euler(-90, 0, 0);
            pengCard3    = CreatePengGangCard(id, handCardPrefab, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard2Pos);

            startPos       = pengCard3Pos;
            LastIsFace     = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        //碰的是上家
        case OtherSeat.Up:
            if (LastIsDown || LastIsFace)
            {
                startPos            += new Vector3(0.037f, 0, 0);
                startPosOffset      += new Vector3(0.037f, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
                LastIsFace           = false;
            }
            else if (LastIsUp)
            {
                startPos            += new Vector3(0.02f, 0, 0.017f);
                startPosOffset      += new Vector3(0.02f, 0, 0.017f);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0.037f, -0.017f, 0);
                startPosOffset      += new Vector3(0.037f, -0.017f, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            pengCard1Pos = startPos;
            pengCard1Rot = Quaternion.Euler(-90, 0, 0);
            pengCard1    = CreatePengGangCard(id, handCardPrefab, pengCard1Pos, pengCard1Rot);

            pengCard2Pos = startPos + new Vector3(0.034f, 0, 0);
            pengCard2Rot = Quaternion.Euler(-90, 0, 0);
            pengCard2    = CreatePengGangCard(id, handCardPrefab, pengCard2Pos, pengCard2Rot);

            pengCard3Pos = startPos + new Vector3(0.097f, 0, -0.017f);
            pengCard3Rot = Quaternion.Euler(-90, 90, 0);
            pengCard3    = CreatePengGangCard(id, handCardPrefab, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard3Pos);

            startPos       = pengCard3Pos;
            LastIsUp       = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        default:
            break;
        }
    }
    /// <summary>
    /// 根据自身的位置获取方位
    /// </summary>
    /// <returns></returns>
    OtherSeat GetSeat(int currentSeat)
    {
        OtherSeat seat = OtherSeat.None;

        switch (currentSeat)
        {
        case 1:
        {
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_SouthPlayer))
            {
                seat = OtherSeat.Down;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_WestPlayer))
            {
                seat = OtherSeat.Face;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_NorthPlayer))
            {
                seat = OtherSeat.Up;
            }
            break;
        }

        case 2:
        {
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_EastPlayer))
            {
                seat = OtherSeat.Up;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_WestPlayer))
            {
                seat = OtherSeat.Down;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_NorthPlayer))
            {
                seat = OtherSeat.Face;
            }
            break;
        }

        case 3:
        {
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_EastPlayer))
            {
                seat = OtherSeat.Face;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_SouthPlayer))
            {
                seat = OtherSeat.Up;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_NorthPlayer))
            {
                seat = OtherSeat.Down;
            }
            break;
        }

        case 4:
        {
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_EastPlayer))
            {
                seat = OtherSeat.Down;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_SouthPlayer))
            {
                seat = OtherSeat.Face;
            }
            if (GameManager.m_instance.m_ProState.Equals(PlayerManager.m_instance.m_WestPlayer))
            {
                seat = OtherSeat.Up;
            }
            break;
        }
        }
        return(seat);
    }
예제 #7
0
    void gang(OtherSeat nowPlay, int id, bool isDarkGang)
    {
        float off = 0.0252f;

        //如果是暗杠
        if (isDarkGang)
        {
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(0 - offy, 0, offx / 2);
                startPosOffset      += new Vector3(0 - offy, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }

            gangCard1Pos = startPos + new Vector3(0, off, 0);
            gangCard1Rot = Quaternion.Euler(90, 180, 0);
            gangCard1    = CreatePengGangCard(id, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0 - offx, off, 0);
            gangCard2Rot = Quaternion.Euler(90, 180, 0);
            gangCard2    = CreatePengGangCard(id, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(0 - offx * 2, off, 0);
            gangCard3Rot = Quaternion.Euler(90, 180, 0);
            gangCard3    = CreatePengGangCard(id, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(0 - offx * 3, 0, 0);
            gangCard4Rot = Quaternion.Euler(-90, 0, 0);
            gangCard4    = CreatePengGangCard(id, gangCard4Pos, gangCard4Rot);


            startPos       = gangCard4Pos;
            LastIsDarkGang = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            return;
        }

        switch (nowPlay)
        {
        case OtherSeat.Up:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offy, 0, 0);
                startPosOffset      += new Vector3(0 - offy, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(-0.1045f, 0, offx / 2);
                startPosOffset      += new Vector3(-0.1045f, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offy, 0, 0);
                startPosOffset      += new Vector3(0 - offy, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            //生成杠的第一张牌
            gangCard1Pos = startPos + new Vector3(0, 0, 0 - offx / 2);
            gangCard1Rot = Quaternion.Euler(-90, -90, 0);
            gangCard1    = CreatePengGangCard(id, gangCard1Pos, gangCard1Rot);
            //生成杠的第二张牌
            gangCard2Pos = startPos + new Vector3(0 - offx / 2, 0, 0);
            gangCard2Rot = Quaternion.Euler(-90, 0, 0);
            gangCard2    = CreatePengGangCard(id, gangCard2Pos, gangCard2Rot);
            //生成杠的第三张牌
            gangCard3Pos = startPos + new Vector3(0 - offx * 3 / 2, 0, 0);
            gangCard3Rot = Quaternion.Euler(-90, 0, 0);
            gangCard3    = CreatePengGangCard(id, gangCard3Pos, gangCard3Rot);
            //生成杠的第四张牌
            gangCard4Pos = startPos + new Vector3(0 - offx * 5 / 2, 0, 0);
            gangCard4Rot = Quaternion.Euler(-90, 0, 0);
            gangCard4    = CreatePengGangCard(id, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsUp       = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        //如果杠的是对家
        case OtherSeat.Face:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(0 - offy, 0, offx / 2);
                startPosOffset      += new Vector3(0 - offy, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }

            gangCard1Pos = startPos;
            gangCard1Rot = Quaternion.Euler(-90, 0, 0);
            gangCard1    = CreatePengGangCard(id, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0 - offx / 2, 0, 0 - offx / 2);
            gangCard2Rot = Quaternion.Euler(-90, 90, 0);
            gangCard2    = CreatePengGangCard(id, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(-0.085f, 0, 0);
            gangCard3Rot = Quaternion.Euler(-90, 0, 0);
            gangCard3    = CreatePengGangCard(id, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(-0.120f, 0, 0);
            gangCard4Rot = Quaternion.Euler(-90, 0, 0);
            gangCard4    = CreatePengGangCard(id, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsFace     = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        case OtherSeat.Down:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(0 - offy, 0, offx / 2);
                startPosOffset      += new Vector3(0 - offy, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            gangCard1Pos = startPos;
            gangCard1Rot = Quaternion.Euler(-90, 0, 0);
            gangCard1    = CreatePengGangCard(id, gangCard1Pos, gangCard1Rot);

            gangCard2Pos = startPos + new Vector3(0 - offx, 0, 0);
            gangCard2Rot = Quaternion.Euler(-90, 0, 0);
            gangCard2    = CreatePengGangCard(id, gangCard2Pos, gangCard2Rot);

            gangCard3Pos = startPos + new Vector3(0 - offx * 2, 0, 0);
            gangCard3Rot = Quaternion.Euler(-90, 0, 0);
            gangCard3    = CreatePengGangCard(id, gangCard3Pos, gangCard3Rot);

            gangCard4Pos = startPos + new Vector3(0 - offx * 5 / 2, 0, 0 - offx / 2);
            gangCard4Rot = Quaternion.Euler(-90, 90, 0);
            gangCard4    = CreatePengGangCard(id, gangCard4Pos, gangCard4Rot);

            startPos       = gangCard4Pos;
            LastIsDown     = true;
            startPosOffset = gangCard4Pos - gangCard1Pos;
            break;

        default:
            break;
        }
    }
예제 #8
0
    void peng(OtherSeat nowPlay, int id)
    {
        switch (nowPlay)
        {
        case OtherSeat.Up:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offy, 0, 0);
                startPosOffset      += new Vector3(0 - offy, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(-0.1045f, 0, offx / 2);
                startPosOffset      += new Vector3(-0.1045f, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offy, 0, 0);
                startPosOffset      += new Vector3(0 - offy, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }

            //生成碰的第一张牌
            pengCard1Pos = startPos + new Vector3(0, 0, 0 - offx / 2);
            pengCard1Rot = Quaternion.Euler(-90, -90, 0);
            pengCard1    = CreatePengGangCard(id, pengCard1Pos, pengCard1Rot);
            //生成碰的第二张牌
            pengCard2Pos = startPos + new Vector3(0 - offx / 2, 0, 0);
            pengCard2Rot = Quaternion.Euler(-90, 0, 0);
            pengCard2    = CreatePengGangCard(id, pengCard2Pos, pengCard2Rot);
            //生成碰的第三张牌
            pengCard3Pos = startPos + new Vector3(0 - offx * 3 / 2, 0, 0);
            pengCard3Rot = Quaternion.Euler(-90, 0, 0);
            pengCard3    = CreatePengGangCard(id, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard1Pos);

            startPos       = pengCard3Pos;
            LastIsUp       = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        //碰的是对家
        case OtherSeat.Face:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(0 - offy, 0, offx / 2);
                startPosOffset      += new Vector3(0 - offy, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }
            pengCard1Pos = startPos;
            pengCard1Rot = Quaternion.Euler(-90, 0, 0);
            pengCard1    = CreatePengGangCard(id, pengCard1Pos, pengCard1Rot);

            pengCard2Pos = startPos + new Vector3(0 - offx / 2, 0, 0 - offx / 2);
            pengCard2Rot = Quaternion.Euler(-90, 90, 0);
            pengCard2    = CreatePengGangCard(id, pengCard2Pos, pengCard2Rot);

            pengCard3Pos = startPos + new Vector3(-0.085f, 0, 0);
            pengCard3Rot = Quaternion.Euler(-90, 0, 0);
            pengCard3    = CreatePengGangCard(id, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard2Pos);

            startPos       = pengCard3Pos;
            LastIsFace     = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        case OtherSeat.Down:
            if (LastIsUp || LastIsFace)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsUp             = false;
                LastIsFace           = false;
            }
            else if (LastIsDown)
            {
                startPos            += new Vector3(0 - offy, 0, offx / 2);
                startPosOffset      += new Vector3(0 - offy, 0, offx / 2);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDown           = false;
            }
            else if (LastIsDarkGang)
            {
                startPos            += new Vector3(0 - offx - space, 0, 0);
                startPosOffset      += new Vector3(0 - offx - space, 0, 0);
                createHandPos        = SetPengGangAnimSpawnPos();
                createFx_PengGangPos = SetFx_PengGangPos();
                LastIsDarkGang       = false;
            }

            pengCard1Pos = startPos;
            pengCard1Rot = Quaternion.Euler(-90, 0, 0);
            pengCard1    = CreatePengGangCard(id, pengCard1Pos, pengCard1Rot);

            pengCard2Pos = startPos + new Vector3(0 - offx, 0, 0);
            pengCard2Rot = Quaternion.Euler(-90, 0, 0);
            pengCard2    = CreatePengGangCard(id, pengCard2Pos, pengCard2Rot);

            pengCard3Pos = startPos + new Vector3(0 - offx * 1.5f, 0, 0 - offx / 2);
            pengCard3Rot = Quaternion.Euler(-90, 90, 0);
            pengCard3    = CreatePengGangCard(id, pengCard3Pos, pengCard3Rot);

            pengCardIdList.Add(id);
            pengCardPosList.Add(pengCard3Pos);

            startPos       = pengCard3Pos;
            LastIsDown     = true;
            startPosOffset = pengCard3Pos - pengCard1Pos;
            break;

        default:
            break;
        }
    }