Esempio n. 1
0
    public Vector3 GetLocationTrash(PlayerControllerPhom p, int i)
    {
        float CARD_SPACE = 15f;
        float z          = -1f + ((i - 1) * -1);

        Vector3 first     = locationTrash[(int)p.mSide].localPosition;
        int     totalCard = p.mCardTrash.FindAll(card => card.gameObject != null).Count;

        float firstX = first.x;

        if (totalCard == 2)
        {
            firstX = first.x - CARD_SPACE / 2;
        }
        else if (totalCard == 3)
        {
            firstX = first.x - CARD_SPACE;
        }
        else if (totalCard == 4)
        {
            firstX = first.x - CARD_SPACE - CARD_SPACE / 2;
        }

        return(new Vector3(firstX + (CARD_SPACE * i), first.y, z));
    }
Esempio n. 2
0
    public void UpdateInfo()
    {
        PlayerControllerPhom your = GameModelPhom.YourController;

        if (avatar != null)
        {
            avatar.Find("lbMoney").GetComponent <UILabel>().text = Utility.Convert.Chip(player.chip) + (player.mSide == ESide.You ? " Chip" : "");
            NGUITools.SetActive(btnPlus.gameObject, false);
        }

        if (timerCountDown != null)
        {
            UpdateLocationTimerCountDown();
        }

        if ((int)GameModelPhom.CurrentState <= (int)GameModelPhom.EGameState.waitingForReady)
        {
            if (player.PlayerState == PlayerControllerPhom.EPlayerState.ready && player != your)
            {
                if (imageReady == null)
                {
                    imageReady = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/ReadyAvatarPrefab"));
                    imageReady.transform.parent        = avatar;
                    imageReady.transform.localPosition = (player.mSide == ESide.You) ? new Vector3(376f, 0f, 0f) : Vector3.zero;
                    imageReady.transform.localScale    = Vector3.one;
                }
            }
        }

        if (GameModelPhom.CurrentState == GameModelPhom.EGameState.finalizing)
        {
            if (GameModelPhom.MiniState == GameModelPhom.EGameStateMini.summary_point)
            {
                ShowTinhDiem();
            }
            else if (GameModelPhom.MiniState == GameModelPhom.EGameStateMini.summary_result || GameModelPhom.MiniState == GameModelPhom.EGameStateMini.summary_exchange)
            {
                if (objTinhDiem != null)
                {
                    GameObject.Destroy(objTinhDiem);
                }
                ShowEffect();
            }
            else
            {
                if (objEffect != null)
                {
                    GameObject.Destroy(objEffect);
                }
                if (objLabelExchange != null)
                {
                    GameObject.Destroy(objLabelExchange);
                }
            }
        }
        CheckIcon();
    }
Esempio n. 3
0
    public Vector3 GetLocationHand(PlayerControllerPhom p, int i)
    {
        float   CARD_SPACE = 20f;
        Vector3 first      = locationHand[(int)p.mSide].localPosition;

        int totalCard =
            (p.mSide == ESide.You || p.mSide == ESide.Enemy_2) ?
            p.mCardHand.FindAll(card => card.gameObject != null).Count :
            p.mCardHand.FindAll(card => card.gameObject != null && card.originSide == card.currentSide).Count;

        float z = -1f + ((i - 1) * -1);

        if (p.mSide == ESide.You)
        {
            if (totalCard == 10)
            {
                CARD_SPACE = 82f;
            }
            else
            {
                CARD_SPACE = 90f;
            }

            if (totalCard < 9)
            {
                first.x = CARD_SPACE / 2 - (CARD_SPACE * totalCard / 2);
                //z -= 9 - totalCard;
            }

            return(new Vector3(first.x + (CARD_SPACE * i), first.y, z));
        }
        else if (p.mSide == ESide.Enemy_1 || p.mSide == ESide.Enemy_3)
        {
            if (GameModelPhom.CurrentState == GameModelPhom.EGameState.finalizing)
            {
                CARD_SPACE *= 1.5f;
            }

            float firstY = first.y + (CARD_SPACE * (totalCard / 2));
            if (totalCard / 2 == 0)
            {
                firstY -= CARD_SPACE / 2;
            }

            return(new Vector3(first.x, firstY - (CARD_SPACE * i), z));
        }
        else
        {
            float firstX = first.x - (CARD_SPACE * (totalCard / 2));
            if (totalCard / 2 == 0)
            {
                firstX += CARD_SPACE / 2;
            }

            return(new Vector3(firstX + (CARD_SPACE * i), first.y, z));
        }
    }
Esempio n. 4
0
 public Vector3 GetRotateHand(PlayerControllerPhom p)
 {
     if (p.mSide == ESide.Enemy_1 || p.mSide == ESide.Enemy_3)
     {
         return(new Vector3(0f, 0f, 90f));
     }
     else
     {
         return(Vector3.zero);
     }
 }
Esempio n. 5
0
 public void PlaySoundDisCard(PlayerControllerPhom currentPlayer, PlayerControllerPhom nextPlayer)
 {
     if (currentPlayer.mCardTrash.Count == 1 && currentPlayer.mCardTrash[0].parentCard.Rank.Value >= 10)
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.ToDanhBeGui, AudioManager.EPlayState.force);
     }
     if (currentPlayer.mCardTrash.Count >= 3 && nextPlayer.mCardTrash.Count == 3 && nextPlayer.mCardHand.FindAll(c => c.originSide != c.currentSide).Count == 0 && nextPlayer.mCardMelds.Count == 0)
     {
         AudioManager.Instance.Play(AudioManager.SoundEffect.AnDiKhongMom, AudioManager.EPlayState.force);
     }
 }
Esempio n. 6
0
    /// <summary>
    /// Khi người chơi thoát ra khỏi bàn
    /// </summary>
    public IEnumerator PlayerLeftOut(PlayerControllerPhom p)
    {
        while (GameModelPhom.DealCardDone == false)
        {
            yield return(new WaitForEndOfFrame());
        }

        foreach (ECard c in p.mCardHand)
        {
            c.SetColor();
        }
    }
Esempio n. 7
0
    public static CUIPlayerPhom Create(PlayerControllerPhom p, Transform parentTransform)
    {
        if (listNoSlot.ContainsKey(p.slotServer))
        {
            GameObject.Destroy(listNoSlot[p.slotServer]);
        }

        GameObject obj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/PlayerInfoPhomPrefab"));

        obj.name                    = "Player " + (int)p.mSide;
        obj.transform.parent        = parentTransform;
        obj.transform.localPosition = Vector3.zero;
        obj.transform.localScale    = Vector3.one;
        CUIPlayerPhom cui = obj.GetComponent <CUIPlayerPhom>();

        cui.player  = p;
        p.cuiPlayer = cui;

        p.AvatarTexture(delegate(Texture _texture) { if (cui != null)
                                                     {
                                                         cui.avatar.GetComponentInChildren <UITexture>().mainTexture = _texture;
                                                     }
                        });

        if (p.mSide == ESide.You)
        {
            //cui.avatar.GetComponentInChildren<UITexture>().enabled = false;
            NGUITools.SetActive(cui.avatar.gameObject, false);
            //GameObject.Destroy(cui.avatar.GetComponentInChildren<CUIHandle>().gameObject.collider);
            GameObject.Destroy(cui.GetComponentInChildren <UISprite>().gameObject);

            //cui.avatar.FindChild("lbMoney").GetComponent<UILabel>().pivot = UIWidget.Pivot.Left;
            //cui.avatar.FindChild("lbUsername").GetComponent<UILabel>().pivot = UIWidget.Pivot.Left;

            //cui.avatar.FindChild("lbMoney").transform.localPosition = new Vector3(-95f, -117f, -5f);
            //cui.avatar.FindChild("lbUsername").transform.localPosition = new Vector3(-95f, -97f, -5f);

            //cui.avatar.FindChild("lbUsername").transform.localScale = cui.avatar.FindChild("lbMoney").transform.localScale = new Vector3(19f, 19f, 1f);
            //cui.avatar.FindChild("lbUsername").GetComponent<UILabel>().width = cui.avatar.FindChild("lbMoney").GetComponent<UILabel>().width = 250;
            //cui.avatar.FindChild("lbMoney").GetComponent<UILabel>().color = Color.green;
            cui.gameObject.transform.FindChild("IconWarning").localPosition = new Vector3(35f, -46f, -5f);
            cui.gameObject.transform.FindChild("IconMaster").localPosition  = new Vector3(125f, -138f, -5f);
        }
        cui.avatar.Find("lbUsername").GetComponent <UILabel>().text = p.mSide == ESide.You ? (string.IsNullOrEmpty(GameManager.Instance.mInfo.FullName) ? p.username : GameManager.Instance.mInfo.FullName.Trim()) : p.username; //(p.mSide == ESide.You ? "Username: "******"") + p.username;

        cui.UpdateInfo();

        return(cui);
    }
Esempio n. 8
0
    public Vector3 GetLocationFulllaying(PlayerControllerPhom p, int indexMeld, int i)
    {
        float CARD_SPACE = 35f;

        float SPACE_MELD_HEIGHT = ECardTexture.CARD_HEIGHT * 4 / 5;

        Vector3 position = locationMelds[(int)p.mSide].localPosition;
        Vector3 meld_1 = position, meld_2 = position, meld_3 = position;

        if (p.mCardMelds.Count == 1)
        {
            meld_1.x -= p.mCardMelds[0].meld.Count / 2f + CARD_SPACE / 2f;
        }
        else if (p.mCardMelds.Count == 2)
        {
            int totalCardAllMeld = p.mCardMelds[0].meld.Count + p.mCardMelds[1].meld.Count;
            meld_1.x -= ((totalCardAllMeld - 1) / 2f * CARD_SPACE) + (SPACE_MELD_HEIGHT / 2f);
            meld_2.x  = meld_1.x + SPACE_MELD_HEIGHT + p.mCardMelds[0].meld.Count * CARD_SPACE;
        }
        else if (p.mCardMelds.Count == 3)
        {
            int totalCardAllMeld = p.mCardMelds[0].meld.Count + p.mCardMelds[1].meld.Count + p.mCardMelds[2].meld.Count;
            meld_1.x -= ((totalCardAllMeld) / 2f * CARD_SPACE) + (SPACE_MELD_HEIGHT / 2f);
            meld_2.x  = meld_1.x + SPACE_MELD_HEIGHT + p.mCardMelds[0].meld.Count * CARD_SPACE;
            meld_3.x  = meld_2.x + SPACE_MELD_HEIGHT + p.mCardMelds[1].meld.Count * CARD_SPACE;
        }

        Vector3 first;

        if (indexMeld == 1)
        {
            first = meld_2;
        }
        else if (indexMeld == 2)
        {
            first = meld_3;
        }
        else
        {
            first = meld_1;
        }

        float z = -15f + ((i - 1) * -1);

        first.y = -45f;

        return(new Vector3(first.x + (CARD_SPACE * i), first.y, z));
    }
Esempio n. 9
0
    public void UpdateButtonAddMeld()
    {
        while (listObjAddMeld.Count > 0)
        {
            GameObject.Destroy(listObjAddMeld[0].Value);
            listObjAddMeld.Remove(listObjAddMeld[0]);
        }

        if (GameModelPhom.game.listGiveCard.Count == 0)
        {
            return;
        }
        if (GameModelPhom.YourController.mCardMelds.Count == 0)
        {
            return;
        }

        if (GameModelPhom.game.ListClickCard.Count == 1 && GameModelPhom.game.listGiveCard.Find(gc => gc.cardId == GameModelPhom.game.ListClickCard[0].CardId) != null)
        #region CO BAN
        #endregion
        {
            #region ADVANCE
            foreach (GamePlayPhom.GiveCard give in GameModelPhom.game.listGiveCard.FindAll(gc => gc.cardId == GameModelPhom.game.ListClickCard[0].CardId))
            {
                PlayerControllerPhom p = GameModelPhom.GetPlayer(give.slotIndex);
                Meld meld      = p.GetMeld(give.meldResponse);
                int  indexMeld = p.mCardMelds.FindIndex(m => m == meld);

                int       side     = (int)GameModelPhom.GetPlayer(give.slotIndex).mSide;
                Transform trans    = GameModelPhom.game.mPlaymat.locationMelds[side];
                Vector3   position = GameModelPhom.game.mPlaymat.GetLocationMeld(GameModelPhom.GetPlayer(give.slotIndex), indexMeld, 2);
                position.z = -17;

                GameObject obj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/btAddMeldPrefab"));
                obj.GetComponent <UIButtonMessage>().target = GameModelPhom.game.gameObject; //SendTo Gameplay Method OnClickAddMeldCard
                UIContainerAnonymous contaniner = obj.AddComponent <UIContainerAnonymous>();
                contaniner.intermediary = give;

                obj.transform.parent        = trans.parent;
                obj.transform.localPosition = position;
                obj.transform.localScale    = Vector3.one;

                listObjAddMeld.Add(new KeyValuePair <GamePlayPhom.GiveCard, GameObject>(give, obj));
            }
            #endregion
        }
    }
Esempio n. 10
0
    public static PlayerChat Create(string chatContent, PlayerControllerPhom player)
    {
        if (chatContent.Length > 21)
        {
            chatContent = chatContent.Substring(0, 20) + "...";
        }

        GameObject obj = (GameObject)GameObject.Instantiate(Resources.Load("Prefabs/Gameplay/sfx/PlayerChatPrefab"));

        obj.name                    = "Chat Content";
        obj.transform.parent        = player.cuiPlayer.gameObject.transform;
        obj.transform.localPosition = new Vector3(player.mSide == ESide.Slot_1 ? -40f : 40f, 70f, -10f);
        obj.transform.localScale    = Vector3.one;
        obj.GetComponent <PlayerChat>().textChat.text = chatContent;
        obj.GetComponent <PlayerChat>().type          = player.mSide == ESide.Slot_1 ? Type.Brackets_Right : Type.Brackets_Left;
        obj.GetComponent <PlayerChat>().ReDraw();
        return(obj.GetComponent <PlayerChat>());
    }
Esempio n. 11
0
    public bool PlaySoundStealCard(PlayerControllerPhom currentPlayer, PlayerControllerPhom lastPlayer)
    {
        bool isStealCard = false;

        if (currentPlayer.mCardTrash.Count == 3 && lastPlayer.mCardTrash.Count >= 3)
        {
            AudioManager.Instance.Play(AudioManager.SoundEffect.AnChot, AudioManager.EPlayState.force);
            isStealCard = true;
        }
        else if (currentPlayer.mCardTrash.Count > 0 && currentPlayer.mCardTrash[currentPlayer.mCardTrash.Count - 1].parentCard.Rank.Value == lastPlayer.mCardTrash[lastPlayer.mCardTrash.Count - 1].parentCard.Rank.Value &&
                 currentPlayer.mCardTrash[currentPlayer.mCardTrash.Count - 1].originSide == currentPlayer.mCardTrash[currentPlayer.mCardTrash.Count - 1].currentSide
                 )
        {
            AudioManager.Instance.Play(AudioManager.SoundEffect.Cau, AudioManager.EPlayState.force);
            isStealCard = true;
        }
        else
        {
            AudioManager.Instance.Play(AudioManager.SoundEffect.AnCay, AudioManager.EPlayState.force);
            isStealCard = true;
        }
        return(isStealCard);
    }
    public override void OnPublicMessage(Electrotank.Electroserver5.Api.PublicMessageEvent e)
    {
        #region VIEW CONTENT CHAT

        if (e.UserName != GameManager.Instance.mInfo.username)
        {
            PlayerControllerPhom player = GameModelPhom.GetPlayer(e.UserName);
            if (player != null)
            {
                if (playerChats.ContainsKey(player))
                {
                    if (playerChats[player] != null)
                    {
                        playerChats[player].DestroyMe();
                    }
                    playerChats.Remove(player);
                }
                playerChats.Add(GameModelPhom.GetPlayer(e.UserName), PlayerChat.Create(e.Message, GameModelPhom.GetPlayer(e.UserName)));
            }
        }
        #endregion
        str = "[FF6600]" + e.UserName.ToUpper() + ":[-] " + e.Message + "\n";
        base.OnPublicMessage(e);
    }
Esempio n. 13
0
    public static void SetPlayer(int index, PlayerControllerPhom p)
    {
        if (p == null)
        {
            if (model._listPlayer[index] != null)
            {
                GameModelPhom.game.Listener.RegisterEventPlayerListChanged(model._listPlayer[index], true);

                model._listPlayer[index].Reset();

                if (model._listPlayer[index].cuiPlayer != null && model._listPlayer[index].cuiPlayer.gameObject)
                {
                    GameObject.Destroy(model._listPlayer[index].cuiPlayer.gameObject);
                }
            }
        }
        Debug.Log("Set model:" + index + ":p" + p);
        model._listPlayer[index] = p;

        if (p == null)
        {
            DrawInfoPlayerNoSlot();
        }
    }
Esempio n. 14
0
    private void Server_EventPluginMessageOnProcess(string command, string action, EsObject eso)
    {
        if (command == "getHandRobot")
        {
            IS_TYPE_FORCE_ROBOT = true;

            if (eso.variableExists("players"))
            {
                foreach (EsObject obj in eso.getEsObjectArray("players"))
                {
                    string username        = obj.getString("userName");
                    PlayerControllerPhom p = GameModelPhom.GetPlayer(username);
                    if (obj.getIntegerArray("hand").Length != p.mCardHand.Count)
                    {
                        Debug.LogWarning("Số lượng PhomCard không phù hợp giũa client và server: " + p.username);
                    }
                    else
                    {
                        if (p.mCardHand.FindAll(c => c.CardId == -1).Count == 0)
                        {
                            return;
                        }

                        foreach (int cardId in obj.getIntegerArray("hand"))
                        {
                            ECard PhomCard = p.mCardHand.Find(c => c.CardId == cardId);
                            if (PhomCard == null)
                            {
                                p.mCardHand.Find(c => c.CardId == -1).CardId = cardId;
                            }
                        }
                    }
                }
            }
        }
    }
Esempio n. 15
0
    public Vector3 GetLocationMeld(PlayerControllerPhom p, int indexMeld, int i)
    {
        float CARD_SPACE = 15f;

        float SPACE_MELD_HEIGHT = ECardTexture.CARD_HEIGHT * 2 / 3;

        Vector3 position = locationMelds[(int)p.mSide].localPosition;
        Vector3 meld_1 = position, meld_2 = position, meld_3 = position;

        if (p.mCardMelds.Count == 1 && p.mSide == ESide.You)
        {
            #region 1 MELD
            meld_1.x -= p.mCardMelds[0].meld.Count / 2f + CARD_SPACE / 2f;
            #endregion
        }
        else if (p.mCardMelds.Count == 2)
        {
            #region 2 MELDS
            if (p.mSide == ESide.Enemy_1 || p.mSide == ESide.Enemy_3)
            {
                meld_1 = new Vector3(position.x, position.y + SPACE_MELD_HEIGHT, position.z);
                meld_2 = new Vector3(position.x, position.y - SPACE_MELD_HEIGHT, position.z);
            }
            else if (p.mSide == ESide.Enemy_2)
            {
                meld_1 = new Vector3(position.x - CARD_SPACE * 4, position.y, position.z);
                meld_2 = new Vector3(position.x + CARD_SPACE * 4, position.y, position.z);
            }
            else
            {
                int totalCardAllMeld = p.mCardMelds[0].meld.Count + p.mCardMelds[1].meld.Count;
                meld_1.x -= ((totalCardAllMeld - 1) / 2f * CARD_SPACE) + (SPACE_MELD_HEIGHT / 2f);
                meld_2.x  = meld_1.x + SPACE_MELD_HEIGHT + p.mCardMelds[0].meld.Count * CARD_SPACE;
            }
            #endregion
        }
        else if (p.mCardMelds.Count == 3)
        {
            #region 3 MELDS
            if (p.mSide == ESide.Enemy_1)
            {
                meld_1.x -= p.mCardMelds[0].meld.Count == 3 ? (ECardTexture.CARD_WITH / 6) : (ECardTexture.CARD_WITH / 6 + CARD_SPACE);
                meld_2    = new Vector3(position.x + ECardTexture.CARD_WITH * 1.5f, position.y + SPACE_MELD_HEIGHT, position.z);
                meld_3    = new Vector3(position.x + ECardTexture.CARD_WITH * 1.5f, position.y - SPACE_MELD_HEIGHT, position.z);
            }
            else if (p.mSide == ESide.Enemy_3)
            {
                meld_1.x += ECardTexture.CARD_WITH / 6;
                meld_2    = new Vector3(position.x - ECardTexture.CARD_WITH * 1.5f, position.y + SPACE_MELD_HEIGHT, position.z);
                meld_3    = new Vector3(position.x - ECardTexture.CARD_WITH * 1.5f, position.y - SPACE_MELD_HEIGHT, position.z);
            }
            else if (p.mSide == ESide.Enemy_2)
            {
                meld_2 = new Vector3(position.x - CARD_SPACE * 4, position.y + ECardTexture.CARD_HEIGHT, position.z);
                meld_3 = new Vector3(position.x + CARD_SPACE * 4, position.y + ECardTexture.CARD_HEIGHT, position.z);
            }
            else
            {
                meld_2 = new Vector3(position.x - CARD_SPACE * 4, position.y - ECardTexture.CARD_HEIGHT, position.z);
                meld_3 = new Vector3(position.x + CARD_SPACE * 4, position.y - ECardTexture.CARD_HEIGHT, position.z);
            }
            #endregion
        }

        Vector3 first;
        if (indexMeld == 1)
        {
            first = meld_2;
        }
        else if (indexMeld == 2)
        {
            first = meld_3;
        }
        else
        {
            first = meld_1;
        }

        float z = -2f + ((i - 1) * -1);

        #region NUMBER CARD IN LINE
        int totalCard        = p.mCardMelds[indexMeld].meld.Count;
        int numberCardInLine = 5;

        if (p.mSide == ESide.You)
        {
            numberCardInLine = totalCard;
        }
        else
        {
            if (totalCard == 6)
            {
                numberCardInLine = 3;
            }
            else if (totalCard == 7 || totalCard == 8 || totalCard == 11 || totalCard == 12)
            {
                numberCardInLine = 4;
            }
        }

        if (i > numberCardInLine - 1)
        {
            i       -= numberCardInLine;
            first.y -= ECardTexture.CARD_HEIGHT * 2 / 5;
        }
        #endregion

        return(new Vector3(first.x + (CARD_SPACE * i), first.y, z));
    }